# Note: Makefile is built automatically from Makefile.in
#
-# $Id: GNUmakefile.in,v 1.1 2001/12/01 11:22:57 jongfoster Exp $
+# $Id: GNUmakefile.in,v 1.12 2002/03/07 15:28:27 swa Exp $
#
# Written by and Copyright (C) 2001 the SourceForge
# IJBSWA team. http://ijbswa.sourceforge.net
# Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# $Log: GNUmakefile.in,v $
+# Revision 1.12 2002/03/07 15:28:27 swa
+# more informative
+#
+# Revision 1.11 2002/03/06 14:33:18 sarantis
+# Use proper temp file, not "abc".
+#
+# Revision 1.10 2002/03/06 14:19:35 sarantis
+# Cleanup PID_FILE_PATH from redhat-dist target
+#
+# Revision 1.9 2002/03/05 17:31:11 morcego
+# Search for docbook.dsl. Should solve portability problems for SuSe.
+#
+# Revision 1.8 2002/03/05 14:07:42 morcego
+# configure now detects rpm topdir, and change GNUmakefile acordingly
+# (based on sugestion by Sarantis Paskalis)
+#
+# Revision 1.7 2002/03/05 13:43:28 morcego
+# Checking for text browser, so redhat-dok can work.
+#
+# Revision 1.6 2002/03/05 13:10:51 morcego
+# Changes to implement redhat-dok (Hal Burgiss)
+# Changes to make it work on other distros and out-of-the-shelf configurations
+#
+# Revision 1.5 2002/02/27 15:30:39 hal9
+# Reset $(RPM_PACKAGEV) to 1 (was 2)
+#
+# Revision 1.4 2002/01/17 21:44:04 jongfoster
+# Adding urlmatch.[ch]
+#
+# Revision 1.3 2002/01/04 15:26:08 oes
+# Added tarball-src target
+#
+# Revision 1.2 2001/12/30 14:07:31 steudten
+# - Add signal handling (unix)
+# - Add SIGHUP handler (unix)
+# - Add creation of pidfile (unix)
+# - Add action 'top' in rc file (RH)
+# - Add entry 'SIGNALS' to manpage
+# - Add exit message to logfile (unix)
+#
# Revision 1.1 2001/12/01 11:22:57 jongfoster
# Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of
# make break in a more obvious way.
VERSION_MAJOR = @VERSION_MAJOR@
VERSION_MINOR = @VERSION_MINOR@
VERSION_POINT = @VERSION_POINT@
+CODE_STATUS = @CODE_STATUS@
VERSION = $(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_POINT)
# will automatically be postfixed with -$(RPM_PACKAGEV) in the SPECfile
RPM_VERSION = $(VERSION)
-RPM_PACKAGEV = 2
+RPM_PACKAGEV = 1
#############################################################################
LD = @CC@
RM = rm -f
STRIP_PROG = strip
-SED = sed
+SED = sed
CAT = cat
RPM = rpm
-MV = mv
+MV = mv
TAR = tar
MAKE = make
+LN = ln
+WDUMP = @WDUMP@ -dump
+JADEBIN = @JADEBIN@
+DB = $(JADEBIN) -t sgml -ihtml -D.. -d ldpOK.dsl\#html
+DKPREFIX = @DKPREFIX@
# Program to do LF->CRLF
#
#############################################################################
TAR_ARCH = /tmp/ijbswa-$(RPM_VERSION).tar.gz
-RPM_BASE = /usr/src/redhat
+RPM_BASE = @RPM_BASE@
#############################################################################
# Filenames and libraries
C_SRC = actions.c cgi.c cgiedit.c cgisimple.c deanimate.c encode.c \
errlog.c filters.c gateway.c jbsockets.c jcc.c killpopup.c \
- list.c loadcfg.c loaders.c miscutil.c parsers.c ssplit.c
+ list.c loadcfg.c loaders.c miscutil.c parsers.c ssplit.c \
+ urlmatch.c
C_OBJS = $(C_SRC:.c=.@OBJEXT@)
C_HDRS = $(C_SRC:.c=.h) project.h actionlist.h
# Phony targets
#############################################################################
.PHONY: all inifiles redhat-dist redhat-upload solaris-dist suse-dist \
-suse-upload win-dist tarball-dist dok webserver clean clobber tags install
+suse-upload win-dist tarball-dist dok redhat-dok webserver clean clobber tags \
+install
#############################################################################
#############################################################################
redhat-dist:
- @for dir in RPMS SRPMS BUILD SOURCES SPECS; do \
+ for dir in RPMS SRPMS BUILD SOURCES SPECS; do \
if [ ! -w $(RPM_BASE)/$$dir ]; then \
$(ECHO) "$(RPM_BASE)/$$dir is not writable for you. Maybe try as root."; \
- exit; \
+ $(ECHO) "Or add a suitable path to .rpmmacros like."; \
+ $(ECHO) "%_topdir /home/foo/rpm-build"; \
+ exit 1; \
fi; \
- done ; \
- $(MAKE) clobber; \
- [ -f $(TAR_ARCH) ] && $(RM) $(TAR_ARCH); \
- $(CAT) junkbuster-rh.spec | \
- $(SED) 's/^Version:.*/Version: $(RPM_VERSION)/g;s/^Release:.*/Release: $(RPM_PACKAGEV)/g' > abc && \
- $(MV) -f abc junkbuster-rh.spec; \
- $(CAT) junkbuster.init | \
- $(SED) 's#JB_PID=.*/\(.*\.pid\).*#JB_PID=@PID_FILE_PATH@/\1#g' > abc && \
- $(MV) -f abc junkbuster.init; \
- $(TAR) --exclude "CVS" --exclude "junkbuster-suse.spec" -cvzf $(TAR_ARCH) . ; \
- $(RPM) --clean -ta $(TAR_ARCH); \
- [ -f $(TAR_ARCH) ] && $(RM) $(TAR_ARCH)
+ done; \
+
+ $(MAKE) clobber
+ if [ -f $(TAR_ARCH) ]; then $(RM) $(TAR_ARCH); fi
+
+ TMPFILE=$$(mktemp -q /tmp/$(PROGRAM).XXXXXX); \
+ if $(SED) -e 's/^\(Version:\).*/\1 $(RPM_VERSION)/g' \
+ -e 's/^\(Release:\).*/\1 $(RPM_PACKAGEV)/g' \
+ junkbuster-rh.spec > $$TMPFILE ; then \
+ $(MV) -f $$TMPFILE junkbuster-rh.spec; \
+ else \
+ $(ECHO) "Could not set version info in specfile."; \
+ exit 1;\
+ fi
+
+ $(TAR) --exclude "CVS" --exclude "junkbuster-suse.spec" -czf $(TAR_ARCH) .
+ $(RPM) --clean -ta $(TAR_ARCH)
+ if [ -f $(TAR_ARCH) ]; then $(RM) $(TAR_ARCH); fi
#
# anonymously ncftps the rpms to sourceforge
# verify that i'm root needs to be done
rm -f ../ijbswa.tar.gz
# verify all version strings, FLAGS, etc. in the spec file
- cat junkbuster-suse.spec | sed 's/^Version:.*/Version: $(RPM_VERSION)/g' | sed 's/^Release:.*/Release: $(RPM_PACKAGEV)/g' > abc && mv -f abc junkbuster-suse.spec
+ sed 's/^\(Version:\).*/\1: $(RPM_VERSION)/g; \
+ s/^\(Release:\).*/\1 $(RPM_PACKAGEV)/g' junkbuster-suse.spec > $(TMPFILE) && mv -f $(TMPFILE) junkbuster-suse.spec
tar --exclude "CVS" --exclude "junkbuster-rh.spec" -cvzf ../ijbswa.tar.gz .
# verify all files in their correct location needs to be done
# never use buildroot to define the location inside the spec
# converts doc/source/*.sgml into html, text and man pages
#
#############################################################################
-dok:
+dok: doc/source/ldpOK.dsl
mkdir -p doc/text doc/man
# user manual
rm -rf doc/webserver/user-manual
- cd doc/source && db2html -s ldp.dsl user-manual.sgml && mv user-manual ../webserver
- cd doc/source && db2html -s ldp.dsl --nochunks user-manual.sgml > tmp.html && lynx -dump tmp.html > ../text/user-manual.txt && rm -rf tmp.html user-manual
+ cd doc/source && db2html -s ldpOK.dsl user-manual.sgml && mv user-manual ../webserver
+ cd doc/source && db2html -s ldpOK.dsl --nochunks user-manual.sgml > tmp.html && lynx -dump tmp.html > ../text/user-manual.txt && rm -rf tmp.html user-manual
## developer manual
rm -rf doc/webserver/developer-manual
- cd doc/source && db2html -s ldp.dsl developer-manual.sgml && mv developer-manual ../webserver
- cd doc/source && db2html -s ldp.dsl --nochunks developer-manual.sgml > tmp.html && lynx -dump tmp.html > ../text/developer-manual.txt && rm -rf tmp.html developer-manual
+ cd doc/source && db2html -s ldpOK.dsl developer-manual.sgml && mv developer-manual ../webserver
+ cd doc/source && db2html -s ldpOK.dsl --nochunks developer-manual.sgml > tmp.html && lynx -dump tmp.html > ../text/developer-manual.txt && rm -rf tmp.html developer-manual
## faq
rm -rf doc/webserver/faq
- cd doc/source && db2html -s ldp.dsl faq.sgml && mv faq ../webserver
- cd doc/source && db2html -s ldp.dsl --nochunks faq.sgml > tmp.html && lynx -dump tmp.html > ../text/faq.txt && rm -rf tmp.html faq
+ cd doc/source && db2html -s ldpOK.dsl faq.sgml && mv faq ../webserver
+ cd doc/source && db2html -s ldpOK.dsl --nochunks faq.sgml > tmp.html && lynx -dump tmp.html > ../text/faq.txt && rm -rf tmp.html faq
+
+redhat-dok: doc/source/ldpOK.dsl
+ mkdir -p doc/text doc/man doc/source/user-manual \
+ doc/source/developer-manual doc/source/faq
+## user manual
+ rm -rf doc/webserver/user-manual
+ cd doc/source/user-manual && $(DB) ../user-manual.sgml && cd .. &&\
+ mv user-manual ../webserver
+ cd doc/source && $(DB) -V nochunks user-manual.sgml > tmp.html && \
+ $(WDUMP) tmp.html > ../text/user-manual.txt && rm -rf tmp.html \
+ user-manual
+## developer manual
+ rm -rf doc/webserver/developer-manual
+ cd doc/source/developer-manual && $(DB) ../developer-manual.sgml &&\
+ cd .. && mv developer-manual ../webserver
+ cd doc/source && $(DB) -V nochunks developer-manual.sgml > tmp.html && \
+ $(WDUMP) tmp.html > ../text/developer-manual.txt && rm -rf tmp.html \
+ developer-manual
+## faq
+ rm -rf doc/webserver/faq
+ cd doc/source/faq && $(DB) ../faq.sgml && cd .. && mv faq ../webserver
+ cd doc/source && $(DB) -V nochunks faq.sgml > tmp.html && $(WDUMP) \
+ tmp.html > ../text/faq.txt && rm -rf tmp.html faq
+
+doc/source/ldpOK.dsl:
+ if [ "$(DKPREFIX)" != "none" ]; then \
+ sed -e "s@/usr/share/sgml/docbook/dsssl-stylesheets@$(DKPREFIX)@g" doc/source/ldp.dsl > doc/source/ldpOK.dsl; \
+ else \
+ cp doc/source/ldp.dsl doc/source/ldpOK.dsl; \
+ fi
#############################################################################
#
#############################################################################
webserver:
@$(ECHO) -------------------------------------------------------
- @$(ECHO) You have run make dok before, right?
+ @$(ECHO) You have run make dok/redhat-dok before, right?
@$(ECHO) Note that this command scps all stuff to the webserver,
@$(ECHO) it will not remove obsolete documents.
@$(ECHO) -------------------------------------------------------
miscutil.@OBJEXT@: miscutil.c miscutil.h config.h
parsers.@OBJEXT@: parsers.c parsers.h config.h $(PROJECT_H_DEPS) errlog.h encode.h filters.h jbsockets.h jcc.h loadcfg.h loaders.h miscutil.h ssplit.h
ssplit.@OBJEXT@: ssplit.c ssplit.h config.h miscutil.h
+urlmatch.@OBJEXT@: urlmatch.c urlmatch.h config.h $(PROJECT_H_DEPS) errlog.h miscutil.h ssplit.h
# GNU regex
gnu_regex.@OBJEXT@: gnu_regex.c gnu_regex.h config.h
$(RM) a.out core $(OBJS) $(W32_FILES) $(W32_INIS)
clobber: clean
- $(RM) $(PROGRAM) cscope.* logfile *.pdb *.lib *.exp `find . -name tags` TAGS junkbuster.log config.cache
+ $(RM) $(PROGRAM) cscope.* logfile *.pdb *.lib *.exp `find . -name tags` TAGS junkbuster.log config.cache *~ *.tar.gz
tags: $(SRCS) $(HDRS)
etags $(SRCS) $(HDRS)
+tarball-src: clobber
+ $(LN) -s current ../ijb-$(VERSION)-$(CODE_STATUS)
+ $(TAR) -C.. -cvhzf ijb-$(VERSION)-$(CODE_STATUS)-src.tar.gz ijb-$(VERSION)-$(CODE_STATUS)
+ $(RM) ../ijb-$(VERSION)-$(CODE_STATUS)
+
install: all
#
# FIXME: This is a dirty hack to have an install target