Makefile
上传用户:seven77cht
上传日期:2007-01-04
资源大小:486k
文件大小:15k
源码类别:

浏览器

开发平台:

Unix_Linux

  1. # $Header: /home/amb/wwwoffle/RCS/Makefile 2.70.1.1 2000/04/02 15:27:07 amb Exp $
  2. #
  3. # WWWOFFLE - World Wide Web Offline Explorer - Version 2.5e.
  4. #
  5. # Program Makefile.
  6. #
  7. # Written by Andrew M. Bishop
  8. #
  9. # This file Copyright 1996,97,98,99,2000 Andrew M. Bishop
  10. # It may be distributed under the GNU Public License, version 2, or
  11. # any higher version.  See section COPYING of the GNU Public license
  12. # for conditions under which this file may be redistributed.
  13. #
  14. ########
  15. LOCALHOST=localhost:8080
  16. INSTDIR=/usr/local
  17. SPOOLDIR=/var/spool/wwwoffle
  18. CONFDIR=/var/spool/wwwoffle
  19. # For Cygwin (win32).
  20. #INSTDIR=/wwwoffle
  21. #SPOOLDIR=/wwwoffle/spool
  22. #CONFDIR=/wwwoffle
  23. # For German language web pages and documentation.
  24. #LANG=de
  25. # For French language web pages and documentation.
  26. #LANG=fr
  27. # For Spanish language web pages and documentation.
  28. #LANG=es
  29. # For Russian language web pages and documentation.
  30. #LANG=ru
  31. # For Polish language web pages and documentation.
  32. #LANG=pl
  33. # For Italian language web pages and documentation.
  34. #LANG=it
  35. ########
  36. CC=gcc
  37. CFLAGS=-O2 -Wall -g
  38. # This is used in the FreeBSD port (http://www.freebsd.org/ports/).
  39. #CFLAGS=-O2 -Wall
  40. LD=gcc
  41. LDFLAGS=-g
  42. # For HP/UX this is a good idea.
  43. #LDFLAGS=
  44. # This is used in the FreeBSD port (http://www.freebsd.org/ports/).
  45. #LDFLAGS=-s
  46. # Optimal flex options for a very fast but large HTML parser.
  47. LEX=flex -i -L -pp -B -F -8
  48. # Use this if you have flex but want a smaller but slower HTML parser.
  49. #LEX=flex -i -L -pp -B
  50. # Use this if you don't have flex.
  51. #LEX=lex -i -L
  52. ########
  53. INCLUDE=
  54. LIBRARY=
  55. # For Solaris you need the following instead.
  56. #LIBRARY=-lnsl -lsocket
  57. COMPILE=$(CC) -c $(CFLAGS)
  58. LINK=$(LD) $(LDFLAGS)
  59. INSTALL=install
  60. # For Solaris you need the following instead.
  61. #INSTALL=/usr/ucb/install
  62. ########
  63. all : programs html
  64. ########
  65. install       : install_binary       install_doc       install_cache install_html install_config
  66. install-win32 : install_binary-win32 install_doc-win32 install_cache install_html install_config install_fixup-win32
  67. ########
  68. clean :
  69. -rm -f wwwoffle.conf.install wwwoffle.conf.man.install
  70. -rm -f wwwoffle wwwoffled wwwoffle-tools upgrade-cache endian-cache
  71. -rm -f core *.o *~
  72. -rm -f html.c htmlmodify.c messages.c xml.c vrml.c
  73. cd testprogs && $(MAKE) clean
  74. ########
  75. programs : wwwoffled wwwoffle wwwoffle-tools upgrade-cache endian-cache
  76. ########
  77. test-programs : programs
  78. cd testprogs && $(MAKE)
  79. ########
  80. DOC_PARSERS=document.o 
  81.     html.o xml.o vrml.o javaclass.o
  82. ####
  83. WWWOFFLE_OBJ=wwwoffle.o 
  84.      refresh.o messages.o parse.o spool.o 
  85.      $(DOC_PARSERS)
  86.      config-startup.o errors.o io.o misc.o proto-none.o sockets.o md5.o
  87. wwwoffle : $(WWWOFFLE_OBJ)
  88. $(LINK) $(WWWOFFLE_OBJ) -o $@ $(LIBRARY)
  89. ####
  90. WWWOFFLED_OBJ=wwwoffled.o wwwoffles.o 
  91.       http.o ftp.o finger.o ssl.o 
  92.       $(DOC_PARSERS) 
  93.       gifmodify.o htmlmodify.o 
  94.       connect.o control.o configedit.o htdig.o index.o messages.o monitor.o parse.o purge.o refresh.o spool.o 
  95.       config.o errors.o io.o misc.o proto.o sockets.o md5.o
  96. wwwoffled : $(WWWOFFLED_OBJ)
  97. $(LINK) $(WWWOFFLED_OBJ) -o $@ $(LIBRARY)
  98. ####
  99. WWWOFFLE_TOOLS_OBJ=wwwoffle-tools.o 
  100.            spool.o 
  101.            config-startup.o errors.o io.o misc.o proto-none.o sockets.o md5.o
  102. wwwoffle-tools : $(WWWOFFLE_TOOLS_OBJ)
  103. $(LINK) $(WWWOFFLE_TOOLS_OBJ) -o $@ $(LIBRARY)
  104. ####
  105. UPGRADE_OBJ=upgrade-cache.o 
  106.     config-startup.o errors.o io.o misc.o proto-none.o sockets.o md5.o
  107. upgrade-cache : $(UPGRADE_OBJ)
  108. $(LINK) $(UPGRADE_OBJ) -o $@ $(LIBRARY)
  109. ENDIAN_OBJ=endian-cache.o 
  110.    spool.o 
  111.    config-startup.o errors.o io.o misc.o proto-none.o sockets.o md5.o
  112. endian-cache : $(ENDIAN_OBJ)
  113. $(LINK) $(ENDIAN_OBJ) -o $@ $(LIBRARY)
  114. ####
  115. %.o:%.c
  116. $(COMPILE) $< -o $@ $(INCLUDE)
  117. wwwoffle.o   : wwwoffle.c   wwwoffle.h misc.h config.h errors.h sockets.h         document.h version.h
  118. wwwoffled.o  : wwwoffled.c  wwwoffle.h misc.h config.h errors.h sockets.h                    version.h
  119. wwwoffles.o  : wwwoffles.c  wwwoffle.h misc.h config.h errors.h sockets.h proto.h document.h
  120. wwwoffle-tools.o : wwwoffle-tools.c wwwoffle.h misc.h errors.h
  121. $(COMPILE) wwwoffle-tools.c -o $@ $(INCLUDE) -DSPOOL_DIR="$(SPOOLDIR)"
  122. upgrade-cache.o  : upgrade-cache.c  wwwoffle.h misc.h errors.h
  123. endian-cache.o   : endian-cache.c   wwwoffle.h misc.h errors.h
  124. http.o       : http.c       wwwoffle.h misc.h config.h errors.h sockets.h proto.h
  125. ftp.o        : ftp.c        wwwoffle.h misc.h config.h errors.h sockets.h proto.h
  126. finger.o     : finger.c     wwwoffle.h misc.h config.h errors.h sockets.h proto.h
  127. ssl.o        : ssl.c        wwwoffle.h misc.h config.h errors.h sockets.h proto.h
  128. document.o   : document.c   wwwoffle.h misc.h config.h errors.h           proto.h document.h
  129. html.o       : html.c     wwwoffle.h misc.h config.h errors.h                   document.h
  130. xml.o        : xml.c     wwwoffle.h misc.h config.h errors.h                   document.h
  131. vrml.o       : vrml.c     wwwoffle.h misc.h config.h errors.h                   document.h
  132. javaclass.o  : javaclass.c  wwwoffle.h misc.h          errors.h                   document.h
  133. gifmodify.o  : gifmodify.c  wwwoffle.h misc.h config.h errors.h                   document.h
  134. htmlmodify.o : htmlmodify.c wwwoffle.h misc.h config.h errors.h                   document.h
  135. configedit.o : configedit.c wwwoffle.h misc.h config.h errors.h
  136. connect.o    : connect.c    wwwoffle.h misc.h config.h errors.h sockets.h
  137. control.o    : control.c    wwwoffle.h misc.h config.h errors.h sockets.h
  138. htdig.o      : htdig.c     wwwoffle.h misc.h          errors.h           proto.h
  139. index.o      : index.c      wwwoffle.h misc.h config.h errors.h
  140. messages.o   : messages.c   wwwoffle.h misc.h config.h errors.h                              version.h
  141. monitor.o    : monitor.c    wwwoffle.h misc.h config.h
  142. parse.o      : parse.c      wwwoffle.h misc.h config.h errors.h           proto.h
  143. purge.o      : purge.c      wwwoffle.h misc.h config.h errors.h           proto.h
  144. refresh.o    : refresh.c    wwwoffle.h misc.h config.h errors.h sockets.h
  145. spool.o      : spool.c      wwwoffle.h misc.h config.h errors.h
  146. config.o     : config.c     wwwoffle.h misc.h config.h errors.h sockets.h proto.h
  147. $(COMPILE) config.c -o $@ $(INCLUDE) -DSPOOL_DIR="$(SPOOLDIR)" -DCONF_DIR="$(CONFDIR)"
  148. errors.o     : errors.c                       config.h errors.h
  149. io.o         : io.c         wwwoffle.h misc.h          errors.h
  150. misc.o       : misc.c                  misc.h config.h                    proto.h
  151. proto.o      : proto.c                 misc.h                             proto.h
  152. sockets.o    : sockets.c                               errors.h sockets.h
  153. md5.o        : md5.c md5.h
  154. config-startup.o : config.c     wwwoffle.h misc.h config.h errors.h sockets.h proto.h
  155. $(COMPILE) config.c -o $@ $(INCLUDE) -DSPOOL_DIR="$(SPOOLDIR)" -DCONF_DIR="$(CONFDIR)" -DSTARTUP_ONLY
  156. proto-none.o     : proto.c                 misc.h                             proto.h
  157. $(COMPILE) proto.c  -o $@ $(INCLUDE) -DNO_PROTOCOLS
  158. ####
  159. html.c : html.l
  160. $(LEX) -Phtml_yy html.l
  161. @mv lex.html_yy.c html.c
  162. htmlmodify.c : htmlmodify.l
  163. $(LEX) -Phtmlmodify_yy htmlmodify.l
  164. @mv lex.htmlmodify_yy.c htmlmodify.c
  165. xml.c : xml.l
  166. $(LEX) -Pxml_yy xml.l
  167. @mv lex.xml_yy.c xml.c
  168. vrml.c : vrml.l
  169. $(LEX) -Pvrml_yy vrml.l
  170. @mv lex.vrml_yy.c vrml.c
  171. messages.c : messages.l
  172. $(LEX) -Pmsg_yy messages.l
  173. @mv lex.msg_yy.c messages.c
  174. ########
  175. html : html/FAQ.html
  176. @true
  177. html/FAQ.html : FAQ FAQ-html.pl
  178. -perl FAQ-html.pl < FAQ > FAQ.html
  179. -[ -f FAQ.html -a -s FAQ.html ] && mv FAQ.html html/FAQ.html
  180. [ ! -f FAQ.html ] || rm FAQ.html
  181. ########
  182. install_binary : programs
  183. [ -x $(INSTDIR)/bin ] || $(INSTALL) -d -m 755 $(INSTDIR)/bin
  184. $(INSTALL) -c -m 755 wwwoffle $(INSTDIR)/bin
  185. $(INSTALL) -c -m 755 wwwoffle-tools $(INSTDIR)/bin
  186. ln -sf wwwoffle-tools $(INSTDIR)/bin/wwwoffle-ls
  187. ln -sf wwwoffle-tools $(INSTDIR)/bin/wwwoffle-mv
  188. ln -sf wwwoffle-tools $(INSTDIR)/bin/wwwoffle-rm
  189. ln -sf wwwoffle-tools $(INSTDIR)/bin/wwwoffle-read
  190. ln -sf wwwoffle-tools $(INSTDIR)/bin/wwwoffle-write
  191. [ -x $(INSTDIR)/sbin ] || $(INSTALL) -d -m 755 $(INSTDIR)/sbin
  192. $(INSTALL) -c -m 755 wwwoffled $(INSTDIR)/sbin
  193. install_binary-win32 : programs
  194. [ -x $(INSTDIR)/bin ] || $(INSTALL) -d -m 755 $(INSTDIR)/bin
  195. $(INSTALL) -c -m 755 wwwoffle.exe $(INSTDIR)/bin
  196. $(INSTALL) -c -m 755 wwwoffle-tools.exe $(INSTDIR)/bin
  197. $(INSTALL) -c -m 755 wwwoffle-tools.exe $(INSTDIR)/bin/wwwoffle-ls.exe
  198. $(INSTALL) -c -m 755 wwwoffle-tools.exe $(INSTDIR)/bin/wwwoffle-mv.exe
  199. $(INSTALL) -c -m 755 wwwoffle-tools.exe $(INSTDIR)/bin/wwwoffle-rm.exe
  200. $(INSTALL) -c -m 755 wwwoffle-tools.exe $(INSTDIR)/bin/wwwoffle-read.exe
  201. $(INSTALL) -c -m 755 wwwoffle-tools.exe $(INSTDIR)/bin/wwwoffle-write.exe
  202. $(INSTALL) -c -m 755 wwwoffled.exe $(INSTDIR)/bin
  203. $(INSTALL) -c -m 755 upgrade-config.pl $(INSTDIR)/bin
  204. $(INSTALL) -c -m 755 cygwin1.dll $(INSTDIR)/bin
  205. install_doc :
  206. [ -x $(INSTDIR)/man ] || $(INSTALL) -d -m 755 $(INSTDIR)/man
  207. [ -x $(INSTDIR)/man/man1 ] || $(INSTALL) -d -m 755 $(INSTDIR)/man/man1
  208. $(INSTALL) -c -m 644 wwwoffle.man $(INSTDIR)/man/man1/wwwoffle.1
  209. [ -x $(INSTDIR)/man/man5 ] || $(INSTALL) -d -m 755 $(INSTDIR)/man/man5
  210. sed -e 's%SPOOLDIR%$(SPOOLDIR)%' -e 's%CONFDIR%$(CONFDIR)%' < wwwoffle.conf.man > wwwoffle.conf.man.install
  211. $(INSTALL) -c -m 644 wwwoffle.conf.man.install $(INSTDIR)/man/man5/wwwoffle.conf.5
  212. [ -x $(INSTDIR)/man/man8 ] || $(INSTALL) -d -m 755 $(INSTDIR)/man/man8
  213. $(INSTALL) -c -m 644 wwwoffled.man $(INSTDIR)/man/man8/wwwoffled.8
  214. [ -x $(INSTDIR)/doc/wwwoffle ] || $(INSTALL) -d -m 755 $(INSTDIR)/doc/wwwoffle
  215. for file in CHANGES.CONF CONVERT COPYING FAQ INSTALL NEWS README* UPGRADE ; do 
  216.   $(INSTALL) -c -m 644 $$file $(INSTDIR)/doc/wwwoffle/$$file ;
  217. done
  218. [ "x$(LANG)" = "x" ] || [ ! -d lang-$(LANG) ] || ( cd lang-$(LANG) && 
  219.   for file in CHANGES.CONF CONVERT COPYING FAQ INSTALL NEWS README* UPGRADE ; do 
  220.     [ ! -f $$file ] || $(INSTALL) -c -m 644 $$file $(INSTDIR)/doc/wwwoffle/$$file-$(LANG) ;
  221.   done )
  222. install_doc-win32 :
  223. [ -x $(INSTDIR)/doc ] || $(INSTALL) -d -m 755 $(INSTDIR)/doc
  224. for file in CHANGES.CONF COPYING FAQ INSTALL NEWS README* ; do 
  225.   $(INSTALL) -c -m 644 $$file $(INSTDIR)/doc/$$file ;
  226. done
  227. $(INSTALL) -c -m 644 README.win32 $(CONFDIR)/README.win32
  228. [ "x$(LANG)" = "x" ] || [ ! -d lang-$(LANG) ] || ( cd lang-$(LANG) && 
  229.   for file in CHANGES.CONF COPYING FAQ INSTALL NEWS README* ; do 
  230.     [ ! -f $$file ] || $(INSTALL) -c -m 644 $$file $(INSTDIR)/doc/wwwoffle/$$file-$(LANG) ;
  231.   done )
  232. install_cache : endian-cache
  233. @[ ! -d $(SPOOLDIR) -o -d $(SPOOLDIR)/http ] || 
  234.  (echo "WWWOFFLE: " ;
  235.   echo "WWWOFFLE: You MUST upgrade the existing cache before you can use this version." ;
  236.   echo "WWWOFFLE: Read the file UPGRADE for details." ;
  237.   echo "WWWOFFLE: " ;
  238.   exit 1 )
  239. @([ ! -d $(SPOOLDIR) -o -d $(SPOOLDIR)/prevtime1 ] || ./endian-cache > /dev/null 2>&1 ) || 
  240.  (echo "WWWOFFLE: " ;
  241.   echo "WWWOFFLE: You MUST convert the existing cache to the correct endian format." ;
  242.   echo "WWWOFFLE: Read the file CONVERT for details." ;
  243.   echo "WWWOFFLE: " ;
  244.   exit 0 )
  245. [ -x $(SPOOLDIR) ] || $(INSTALL) -d -m 750 $(SPOOLDIR)
  246. [ -x $(SPOOLDIR)/http ] || $(INSTALL) -d -m 750 $(SPOOLDIR)/http
  247. [ -x $(SPOOLDIR)/outgoing ] || $(INSTALL) -d -m 750 $(SPOOLDIR)/outgoing
  248. [ -x $(SPOOLDIR)/monitor ] || $(INSTALL) -d -m 750 $(SPOOLDIR)/monitor
  249. [ -x $(SPOOLDIR)/lasttime ] || $(INSTALL) -d -m 750 $(SPOOLDIR)/lasttime
  250. [ -x $(SPOOLDIR)/prevtime1 ] || $(INSTALL) -d -m 750 $(SPOOLDIR)/prevtime1
  251. @echo 'GET http://www.gedanken.demon.co.uk/wwwoffle/version-2.5/user.html HTTP/1.0'        > $(SPOOLDIR)/outgoing/Owwwoffle-user ;
  252.  echo 'Host: www.gedanken.demon.co.uk'                                                    >> $(SPOOLDIR)/outgoing/Owwwoffle-user ;
  253.  echo 'Accept: */*'                                                                       >> $(SPOOLDIR)/outgoing/Owwwoffle-user ;
  254.  echo ''                                                                                  >> $(SPOOLDIR)/outgoing/Owwwoffle-user ;
  255.  awk 'BEGIN{printf("http://www.gedanken.demon.co.uk/wwwoffle/version-2.5/user.html");}'    > $(SPOOLDIR)/outgoing/Uwwwoffle-user < /dev/null
  256. @echo 'GET http://www.gedanken.demon.co.uk/wwwoffle/version-2.5/browser.html HTTP/1.0'     > $(SPOOLDIR)/outgoing/Owwwoffle-browser ;
  257.  echo 'Host: www.gedanken.demon.co.uk'                                                    >> $(SPOOLDIR)/outgoing/Owwwoffle-browser ;
  258.  echo 'Accept: */*'                                                                       >> $(SPOOLDIR)/outgoing/Owwwoffle-browser ;
  259.  echo ''                                                                                  >> $(SPOOLDIR)/outgoing/Owwwoffle-browser ;
  260.  awk 'BEGIN{printf("http://www.gedanken.demon.co.uk/wwwoffle/version-2.5/browser.html");}' > $(SPOOLDIR)/outgoing/Uwwwoffle-browser < /dev/null
  261. install_html : html
  262. @[ ! -x $(SPOOLDIR)/html.old ] || 
  263.  (echo "WWWOFFLE: " ;
  264.   echo "WWWOFFLE: There is already a directory $(SPOOLDIR)/html.old - remove it and re-run make" ;
  265.   echo "WWWOFFLE: " ;
  266.   exit 1 )
  267. [ ! -x $(SPOOLDIR)/html ] || mv $(SPOOLDIR)/html $(SPOOLDIR)/html.old
  268. [ -x $(SPOOLDIR)/html ] || mkdir $(SPOOLDIR)/html
  269. tar cf $(SPOOLDIR)/html.tar html && cd $(SPOOLDIR) && tar xpf html.tar && rm html.tar
  270. [ "x$(LANG)" = "x" ] || [ ! -d lang-$(LANG) ] || ( cd lang-$(LANG) && 
  271.   tar cf $(SPOOLDIR)/html.tar html && cd $(SPOOLDIR) && tar xpf html.tar && rm html.tar )
  272. cd $(SPOOLDIR)/html && ./fixup-install.sh $(SPOOLDIR) $(LOCALHOST) && rm ./fixup-install.sh
  273. # Now fix the permissions that tar preserved, we needed to use 'tar xpf' to get round root's umask.
  274. # These two will fail unless you are root, that is OK because the owner is already you.
  275. -chown -R 0 $(SPOOLDIR)/html > /dev/null 2>&1
  276. -chgrp -R 0 $(SPOOLDIR)/html > /dev/null 2>&1
  277. install_config :
  278. sed -e 's%SPOOLDIR%$(SPOOLDIR)%' -e 's%CONFDIR%$(CONFDIR)%' < wwwoffle.conf > wwwoffle.conf.install
  279. [ -x $(CONFDIR) ] || $(INSTALL) -d -m 750 $(CONFDIR)
  280. @[ ! -f $(CONFDIR)/wwwoffle.conf ] || 
  281.  (echo "WWWOFFLE: " ;
  282.   echo "WWWOFFLE: There is already a configuration file $(CONFDIR)/wwwoffle.conf." ;
  283.   echo "WWWOFFLE: Run 'perl upgrade-config.pl $(CONFDIR)/wwwoffle.conf' to upgrade it." ;
  284.   echo "WWWOFFLE: " )
  285. [  ! -f $(CONFDIR)/wwwoffle.conf ] || $(INSTALL) -c -m 640 wwwoffle.conf.install $(CONFDIR)/wwwoffle.conf.install
  286. [    -f $(CONFDIR)/wwwoffle.conf ] || $(INSTALL) -c -m 640 wwwoffle.conf.install $(CONFDIR)/wwwoffle.conf
  287. install_fixup-win32:
  288. for file in $(INSTDIR)/doc/* $(CONFDIR)/README.win32 ; do 
  289.   [ -f $$file ] && awk '{print $$0 "r";}' < $$file > $$file.txt && rm -f $$file ;
  290. done
  291. rm -f $(SPOOLDIR)/html/index.html && ln $(SPOOLDIR)/html/Welcome.html $(SPOOLDIR)/html/index.html
  292. cp ./contrib-win32/*.bat $(INSTDIR)
  293. ########