set make correctly
[privoxy.git] / GNUmakefile.in
index 8b26f0c..a764f0e 100644 (file)
@@ -1,9 +1,9 @@
 # Note:  Makefile is built automatically from Makefile.in
 #
-# $Id: GNUmakefile.in,v 1.26 2002/03/24 15:36:02 swa Exp $
+# $Id: GNUmakefile.in,v 1.40 2002/03/28 04:22:44 hal9 Exp $
 #
 # Written by and Copyright (C) 2001 the SourceForge
-# Privoxy team.  http://ijbswa.sourceforge.net
+# Privoxy team. http://www.privoxy.org/
 #
 # Based on the Internet Junkbuster originally written
 # by and Copyright (C) 1997 Anonymous Coders and 
 # Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #
 
+#############################################################################
+# Set make command correctly
+#############################################################################
+@SET_MAKE@
+
 #############################################################################
 # Version number (for RPM)
 #############################################################################
@@ -75,6 +80,9 @@ JADEBIN    = @JADEBIN@
 DB         = $(JADEBIN) -t sgml -ihtml -D.. -d ldpOK.dsl\#html
 DB2HTML    = @DB2HTML@
 DKPREFIX   = @DKPREFIX@
+MAN2HTML   = @MAN2HTML@
+G2H_CMD    = groff -mandoc -Thtml
+TARGET_OS  = @host@
 
 # Program to do LF->CRLF
 #
@@ -104,6 +112,14 @@ C_SRC  = actions.c cgi.c cgiedit.c cgisimple.c deanimate.c encode.c \
 C_OBJS = $(C_SRC:.c=.@OBJEXT@)
 C_HDRS = $(C_SRC:.c=.h) project.h actionlist.h
 
+CONFIG_FILES = config trust \
+               default.action \
+               basic.action intermediate.action advanced.action \
+               default.filter \
+               templates/*
+
+DOC_FILES = AUTHORS LICENSE README ChangeLog doc/text/* privoxy.1
+
 W32_SRC   = @WIN_ONLY@w32log.c w32taskbar.c win32.c
 W32_FILES = @WIN_ONLY@w32.res
 W32_OBJS  = @WIN_ONLY@$(W32_SRC:.c=.@OBJEXT@) $(W32_FILES)
@@ -258,15 +274,99 @@ redhat-upload:
      # w3m http://sourceforge.net/project/admin/editpackages.php?group_id=11118
 
 #############################################################################
-# sun solaris  distribution
+# generic distribution
+#############################################################################
+
+gen-dist:
+       @$(ECHO) ""
+       @$(ECHO) "You have run autoconf && autoheader && ./configure right?"
+       @$(ECHO) ""
+       $(MAKE) $(PROGRAM)
+       $(STRIP_PROG) $(PROGRAM)
+       $(LN) -s current ../privoxy-$(VERSION)-$(CODE_STATUS)
+# add program
+       $(TAR) -C.. -cvhf privoxy-$(TARGET_OS)-$(VERSION)-$(CODE_STATUS)-src.tar privoxy-$(VERSION)-$(CODE_STATUS)/$(PROGRAM)
+# add config files
+       for foo in $(CONFIG_FILES); do \
+               $(TAR) -C.. --exclude "CVS" --exclude "#*" --exclude ".#*" --exclude ".cvsignore" -uvhf privoxy-$(TARGET_OS)-$(VERSION)-$(CODE_STATUS)-src.tar privoxy-$(VERSION)-$(CODE_STATUS)/$$foo; \
+       done; 
+# add documentation
+       for foo in $(DOC_FILES); do \
+               $(TAR) -C.. --exclude "CVS" --exclude "#*" --exclude ".#*" --exclude ".cvsignore" -uvhf privoxy-$(TARGET_OS)-$(VERSION)-$(CODE_STATUS)-src.tar privoxy-$(VERSION)-$(CODE_STATUS)/$$foo; \
+       done; 
+# and zip the archive
+       $(RM) ../privoxy-$(VERSION)-$(CODE_STATUS)
+       $(GZIP_PROG) privoxy-$(TARGET_OS)-$(VERSION)-$(CODE_STATUS)-src.tar
+       @$(ECHO) Distribution with binary created.
+
+# anonymously ncftps the tarball to sourceforge
+gen-upload:
+       ncftpput -u anonymous -p ijbswa-developers@lists.sourceforge.net upload.sourceforge.net /incoming privoxy-$(TARGET_OS)-$(VERSION)-$(CODE_STATUS)-src.tar.gz
+       @$(ECHO) -------------------------------------------------------
+       @$(ECHO) Now goto
+       @$(ECHO) http://sourceforge.net/project/admin/editpackages.php?group_id=11118
+       @$(ECHO) ... and release the files.
+       @$(ECHO) -------------------------------------------------------
+
+# use with care
+gen-clean:
+       $(RM) privoxy-$(TARGET_OS)-$(VERSION)-$(CODE_STATUS)-src.tar*
+
+#############################################################################
+# solaris distribution
 #############################################################################
-solaris-dist:
+solaris-dist: gen-dist
+       @$(ECHO) Done.
+# anonymously ncftps the tarball to sourceforge
+solaris-upload: gen-upload
+       @$(ECHO) Done.
+# use with care
+solaris-clean: gen-clean
+       @$(ECHO) Done.
+
+#############################################################################
+# hpux distribution
+#############################################################################
+hpux-dist:
+       @$(ECHO) coming soon. 
+hpux-upload:
        @$(ECHO) coming soon. 
 
 #############################################################################
-# suse distribution (need to be root to build)
+# debian distribution
 #############################################################################
+debian-dist:
+       @$(ECHO) coming soon. 
+debian-upload:
+       @$(ECHO) coming soon. 
 
+#############################################################################
+# macosx distribution
+#############################################################################
+macosx-dist:
+       @$(ECHO) coming soon. 
+macosx-upload:
+       @$(ECHO) coming soon. 
+
+#############################################################################
+# amiga distribution
+#############################################################################
+amiga-dist:
+       @$(ECHO) coming soon. 
+amiga-upload:
+       @$(ECHO) coming soon. 
+
+#############################################################################
+# freebsd distribution
+#############################################################################
+freebsd-dist:
+       @$(ECHO) coming soon. 
+freebsd-upload:
+       @$(ECHO) coming soon. 
+
+#############################################################################
+# suse distribution. works fine. no need to be root. 
+#############################################################################
 suse-dist:
        for dir in RPMS SRPMS BUILD SOURCES SPECS; do \
                if [ ! -w $(RPM_BASE)/$$dir ]; then \
@@ -281,7 +381,7 @@ suse-dist:
        if [ -f $(TAR_ARCH) ]; then $(RM) $(TAR_ARCH); fi
 
        TMPFILE=$$(mktemp -q /tmp/$(PROGRAM).XXXXXX); \
-       if $(SED) -e 's/^\(Version:\).*/\1 $(RPM_VERSION)/g' \
+       if $(SED) -e 's/^\(Version:\).*/\1 $(RPM_VERSIO)/g' \
              -e 's/^\(Release:\).*/\1 $(RPM_PACKAGEV)/g' \
               privoxy-suse.spec > $$TMPFILE ; then \
       $(MV) -f $$TMPFILE privoxy-suse.spec; \
@@ -338,13 +438,24 @@ win-dist:
 #############################################################################
 # Tarball distribution
 #############################################################################
-tarball-dist:
-       @make clean
-       make $(PROGRAM) 
-#      remove all objects and create the tarball with the binary
-       cd .. && $(RM) ijb/a.out ijb/core ijb/*.@OBJEXT@ && tar --exclude "ijb/CVS" -cvzf ../privoxy-distribution-$(VERSION).tar.gz current/
-       chmod a+r ../../privoxy-distribution-$(VERSION).tar.gz
-       @$(ECHO) Tarball with binary created.
+tarball-dist: clobber
+       $(LN) -s current ../privoxy-$(VERSION)-$(CODE_STATUS)
+       $(TAR) -C.. --exclude "CVS" --exclude "#*" --exclude ".#*" --exclude ".cvsignore" -cvhzf privoxy-$(VERSION)-$(CODE_STATUS)-src.tar.gz privoxy-$(VERSION)-$(CODE_STATUS)
+       $(RM) ../privoxy-$(VERSION)-$(CODE_STATUS)
+       @$(ECHO) Tarball (without any binary) created.
+
+# anonymously ncftps the tarball to sourceforge
+tarball-upload:
+       ncftpput -u anonymous -p ijbswa-developers@lists.sourceforge.net upload.sourceforge.net /incoming privoxy-$(VERSION)-$(CODE_STATUS)-src.tar.gz
+       @$(ECHO) -------------------------------------------------------
+       @$(ECHO) Now goto
+       @$(ECHO) http://sourceforge.net/project/admin/editpackages.php?group_id=11118
+       @$(ECHO) ... and release the files.
+       @$(ECHO) -------------------------------------------------------
+
+# handle with care
+tarball-clean:
+       $(RM) privoxy-$(VERSION)-$(CODE_STATUS)-src.tar.gz
 
 #############################################################################
 #
@@ -353,7 +464,7 @@ tarball-dist:
 # converts doc/source/*.sgml into html, text and man pages
 #
 #############################################################################
-dok: doc/source/ldpOK.dsl
+dok: doc/source/ldpOK.dsl man2html-swa
        mkdir -p doc/text doc/man
 #  user manual
        rm -rf doc/webserver/user-manual
@@ -367,8 +478,21 @@ dok: doc/source/ldpOK.dsl
        rm -rf doc/webserver/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
+## kludge to force recreation on next run. Rodgrigo?
+       @rm -f doc/source/ldpOK.dsl
+
+man2html-swa:
+       mkdir -p doc/webserver/man-page
+       if [ "$(MAN2HTML)" != "false" ]; then \
+               $(ECHO) "<html><head><title>Privoxy|Doc/Man page</title><link rel=\"stylesheet\" type=\"text/css\" href=\"../p_web.css\"></head><body><H2>NAME</H2>" > doc/webserver/man-page/privoxy-man-page.html; \
+               man ./privoxy.1 | $(MAN2HTML) -bare \
+                >> doc/webserver/man-page/privoxy-man-page.html; \
+               $(ECHO) "</body></html>" >> doc/webserver/man-page/privoxy-man-page.html; \
+     else \
+          $(MAKE) groff2html; \
+       fi
 
-redhat-dok: doc/source/ldpOK.dsl
+redhat-dok: doc/source/ldpOK.dsl man2html
        mkdir -p doc/text doc/man doc/source/user-manual \
           doc/source/developer-manual doc/source/faq
 ##  user manual
@@ -390,6 +514,9 @@ redhat-dok: doc/source/ldpOK.dsl
        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
+## kludge to force recreation on next run. Rodgrigo?
+       @rm -f doc/source/ldpOK.dsl
+
 
 doc/source/ldpOK.dsl:
        if [ "$(DKPREFIX)" != "none" ]; then \
@@ -398,6 +525,21 @@ doc/source/ldpOK.dsl:
                cp doc/source/ldp.dsl doc/source/ldpOK.dsl; \
        fi
 
+# For those with man2html ala RH7's.
+man2html:
+       mkdir -p doc/webserver/man-page
+       if [ "$(MAN2HTML)" != "false" ]; then \
+               $(MAN2HTML) privoxy.1 |grep -v "^Content-type" > doc/webserver/man-page/privoxy-man-page.html; \
+           perl -pi -e 's/<A .*Contents<\/A>//; s/<A .*man2html<\/A>/man2html/' doc/webserver/man-page/privoxy-man-page.html; \
+     else \
+          $(MAKE) groff2html; \
+       fi
+
+# Otherwise we get plain groff conversion.
+groff2html:
+       $(G2H_CMD) ./privoxy.1 > doc/webserver/man-page/privoxy-man-page.html
+
+
 #############################################################################
 #
 # Webserver
@@ -465,7 +607,7 @@ w32log.@OBJEXT@: w32log.c errlog.h config.h jcc.h loadcfg.h miscutil.h pcre/pcre
 w32taskbar.@OBJEXT@: w32taskbar.c config.h w32log.h w32taskbar.h
 win32.@OBJEXT@: win32.c config.h jcc.h loadcfg.h pcre/pcre.h pcre/pcreposix.h pcrs.h project.h w32log.h win32.h
 
-w32.res: w32.rc w32res.h icons/ico00001.ico icons/ico00002.ico icons/ico00003.ico icons/ico00004.ico icons/ico00005.ico icons/ico00006.ico icons/ico00007.ico icons/ico00008.ico icons/idle.ico icons/junkbust.ico config.h
+w32.res: w32.rc w32res.h icons/ico00001.ico icons/ico00002.ico icons/ico00003.ico icons/ico00004.ico icons/ico00005.ico icons/ico00006.ico icons/ico00007.ico icons/ico00008.ico icons/idle.ico icons/privoxy.ico config.h
        windres -D__MINGW32__=0.2 -O coff -i $< -o $@
 
 # AmigaOS
@@ -480,20 +622,14 @@ $(PROGRAM): $(OBJS) $(W32_FILES)
        $(LD) $(LDFLAGS) -o $(PROGRAM) $(OBJS) $(LIBS)
 
 clean:
-       $(RM) a.out core $(OBJS) $(W32_FILES) $(W32_INIS)
+       $(RM) a.out core $(OBJS) $(W32_FILES) $(W32_INIS) $(PROGRAM) junkbuster
 
 clobber: clean
-       $(RM) $(PROGRAM) cscope.* logfile *.pdb *.lib *.exp `find . -name tags` `find . -name TAGS` config.status config.h.in config.log junkbuster.log
-privoxy.log config.cache *~ *.tar.gz configure
+       $(RM) $(PROGRAM) cscope.* logfile *.pdb *.lib *.exp `find . -name tags` `find . -name TAGS` config.status config.h.in config.log junkbuster.log privoxy.log config.cache *~ *.tar.gz configure
 
 tags: $(SRCS) $(HDRS)
        etags $(SRCS) $(HDRS)
 
-tarball-src: clobber
-       $(LN) -s current ../privoxy-$(VERSION)-$(CODE_STATUS)
-       $(TAR) -C.. -cvhzf privoxy-$(VERSION)-$(CODE_STATUS)-src.tar.gz privoxy-$(VERSION)-$(CODE_STATUS)
-       $(RM) ../privoxy-$(VERSION)-$(CODE_STATUS)
-
 install: all
        #
        # FIXME: This is a dirty hack to have an install target
@@ -519,6 +655,48 @@ install: all
 ## end:
 
 # $Log: GNUmakefile.in,v $
+# Revision 1.40  2002/03/28 04:22:44  hal9
+# More on man2html stuff.
+#
+# Revision 1.39  2002/03/28 01:04:14  hal9
+# More man2html stuff for docs.
+#
+# Revision 1.38  2002/03/27 16:02:30  swa
+# have a generic target
+#
+# Revision 1.37  2002/03/27 15:30:26  swa
+# have a consistent appearance
+#
+# Revision 1.36  2002/03/27 14:58:08  swa
+# can be used by mutilple targets
+#
+# Revision 1.35  2002/03/27 14:53:19  swa
+# added solaris-dist
+#
+# Revision 1.34  2002/03/27 10:30:11  swa
+# we want a html man file on the webserver
+#
+# Revision 1.33  2002/03/27 03:05:35  hal9
+# Added man2html target for docs (redhat-dok only for now)
+#
+# Revision 1.32  2002/03/26 22:29:54  swa
+# we have a new homepage!
+#
+# Revision 1.31  2002/03/26 14:00:18  swa
+# fixed make tarball, tarball-dist, tarball-clean
+#
+# Revision 1.30  2002/03/25 12:52:25  swa
+# new targets
+#
+# Revision 1.29  2002/03/24 17:03:55  jongfoster
+# Name change
+#
+# Revision 1.28  2002/03/24 16:19:48  swa
+# configure needs to be generated.
+#
+# Revision 1.27  2002/03/24 16:13:57  swa
+# generated files are a nono in cvs
+#
 # Revision 1.26  2002/03/24 15:36:02  swa
 # did not build.
 #