CommonMakefile
上传用户:zlh9724
上传日期:2007-01-04
资源大小:1991k
文件大小:12k
源码类别:

浏览器

开发平台:

Unix_Linux

  1. # Makefile for WorldWideWeb    Arena browser (www)
  2. #
  3. # (c) CERN 1990, 1991 -- see Copyright.html for conditions
  4. #
  5. # This file should be invariant between systems.
  6. # DEPENDENCIES NOT COMPLETE @@
  7. #
  8. # make Compile and link the software (private version)
  9. # make install Copy it into the system (implies make)
  10. # make update Copy installed version into installed version
  11. # make uninstall Unlink installed version from the system
  12. # make clean Remove intermediate files
  13. # make cleanall Remove intremediate files and products
  14. #
  15. # Macros required to be defined already for make:
  16. #
  17. # CC The C compiler
  18. # CFLAGS Flags for $(CC)
  19. # LFLAGS Flags for ld
  20. # WWW Root of WWW source tree
  21. #
  22. # Macros needed for make install:
  23. #
  24. # BINDIR Directory for installed binary
  25. #______________________________________________________________________
  26. #  If this env var is set to something else Some makes will use that instead
  27. SHELL = /bin/sh
  28. # If this is actually run in a subdirectory.
  29. #
  30. # WWW = ../../..
  31. # If it is run in this directory:
  32. #
  33. # WWW = ../.. For [cernlib] build in this directory
  34. ARENA =  $(WWW)/Arena/Implementation/
  35. LMD = $(WWW)/Arena/Defaults
  36. CMN = $(WWW)/Library/Implementation/
  37. DEFAULTS = $(WWW)/Arena/Defaults
  38. CFLAGS2 = $(CFLAGS) -I$(CMN) -I$(ARENA)
  39. CERNLIBBIN = $(WWW)/bin
  40. # WTMP is either WWW or /tmp for example. It allows the 
  41. # machine-dependent files to be put in a separate tree so that
  42. # - The source tree can be read-only
  43. # - The source tree can be shared across platforms
  44. #
  45. USELIBDIR = $(WTMP)/Library/$(WWW_MACH)
  46. # XLIBDIR = /usr/lib/X11
  47. JPEGDIR = ../../Image/jpeg
  48. PNGDIR = ../../Image/libpng
  49. ZLIBDIR = ../../Image/zlib
  50. OBJ = $(WTMP)/Arena/$(WWW_MACH)
  51. BIN = $(WWW)/Arena/$(WWW_MACH)
  52. OE = $(OBJ)/.created
  53. WWWLIB = -L$(USELIBDIR) -lwww
  54. XLIB = -L$(XLIBDIR) -lX11
  55. JPEGLIB = $(JPEGDIR)/$(WWW_MACH)/libjpeg.a
  56. PNGLIB = $(PNGDIR)/$(WWW_MACH)/libpng.a
  57. ZLIB = $(ZLIBDIR)/$(WWW_MACH)/libz.a
  58. OBJS = $(OBJ)/www.o $(OBJ)/display.o 
  59.   $(OBJ)/scrollbar.o $(OBJ)/toolbar.o $(OBJ)/entities.o $(OBJ)/forms.o 
  60.   $(OBJ)/status.o $(OBJ)/html.o $(OBJ)/parsehtml.o 
  61.   $(OBJ)/image.o $(OBJ)/gif.o $(OBJ)/bridge.o 
  62.   $(OBJ)/mailcap.o $(OBJ)/XGetHClrs.o $(OBJ)/util.o 
  63.   $(OBJ)/math.o $(OBJ)/editor.o $(OBJ)/icon.o $(OBJ)/history.o 
  64.   $(OBJ)/jpeg.o $(OBJ)/dither.o $(OBJ)/style.o $(OBJ)/x11.o $(OBJ)/png.o 
  65.   $(OBJ)/menu.o $(OBJ)/tools.o $(OBJ)/neweditor.o $(OBJ)/popup.o 
  66.   $(OBJ)/parsecommand.o
  67. # Final main product
  68. PROD = arena 
  69. SOURCES = $(ARENA)www.c $(ARENA)display.c 
  70.   $(ARENA)scrollbar.c $(ARENA)toolbar.c $(ARENA)entities.c forms.c 
  71.   $(ARENA)status.c $(ARENA)html.c $(ARENA)parsehtml.c 
  72.   $(ARENA)image.c $(ARENA)gif.c bridge.c 
  73.   $(ARENA)mailcap.c $(ARENA)XGetHClrs.c util.c 
  74.   $(ARENA)math.c $(ARENA)editor.c $(ARENA)icon.c $(ARENA)history.c 
  75.   $(ARENA)jpeg.c $(ARENA)dither.c $(ARENA)style.c $(ARENA)x11.c 
  76.   $(ARENA)png.o $(ARENA)menu.o $(ARENA)tools.o $(ARENA)neweditor.c 
  77.   $(ARENA)popup.c $(ARENA)parsecommand.c
  78. INCLUDES = $(ARENA)www.h $(ARENA)bridge.h $(ARENA)neweditor.h
  79. SPECIFIC =  
  80. $(ARENA)apollo_m68k/Makefile 
  81. $(ARENA)decstation/Makefile 
  82. $(ARENA)next/Makefile 
  83. $(ARENA)pc-nfs/makefile 
  84. $(ARENA)pc-nfs/README 
  85. $(ARENA)pc-nfs/topc 
  86. $(ARENA)rs6000/Makefile 
  87. $(ARENA)sgi/Makefile 
  88. $(ARENA)snake/Makefile 
  89. $(ARENA)sun3/Makefile 
  90. $(ARENA)sun4/Makefile 
  91. $(ARENA)sun4-sol2/Makefile 
  92. $(ARENA)unix/Makefile 
  93. $(ARENA)vax_ultrix/Makefile 
  94. $(ARENA)vax_ultrix_cc/Makefile 
  95. $(ARENA)vms/descrip.mms 
  96. $(ARENA)vms/setup.com
  97. # Bug: This path, if relative, is taken relative to the directory
  98. # in which this makefile is, not the pwd.  This screws up the 
  99. # recursive invocation
  100. all: $(BIN)/$(PROD) 
  101. #$(BIN)/jpeg
  102. #arena: $(OBJS) $(USELIBDIR)/libwww.a
  103. $(BIN)/$(PROD) : $(OBJS) $(USELIBDIR)/libwww.a
  104. $(CC) -o $@ $(OBJS) $(LFLAGS) $(JPEGLIB) $(PNGLIB) $(ZLIB) $(XLIB) $(WWWLIB) $(OTHERLIB) 
  105. $(USELIBDIR)/libwww.a :
  106. @echo You must get and make the WWWLibrary product first! $(USELIBDIR)
  107. (cd $(WWW)/Library/$(WWW_MACH) && $(MAKE))
  108. lib :
  109. (cd $(WWW)/Library/$(WWW_MACH) && $(MAKE))
  110. # Make a copy of the binary and documentation on this machine
  111. install : $(PROD)
  112. cp $(PROD) $(BINDIR)/$(PROD)
  113. - mkdir /usr/local
  114. - mkdir /usr/local/lib
  115. - mkdir /usr/local/lib/WWW
  116. cp $(DEFAULTS)/*.html /usr/local/lib/WWW
  117. # Link system to the binary and documentation in this tree
  118. link : Works/$(PROD)
  119. ln -s `pwd`/$(PROD) $(BINDIR)/$(PROD)
  120. - mkdir /usr/local
  121. - mkdir /usr/local/lib
  122. ln -s $(DEFAULTS) /usr/local/lib/WWW
  123. uninstall :
  124. rm $(BINDIR)/$(PROD)
  125. rm -r /usr/local/lib/WWW
  126. # Clean up everything generatable except final products
  127. # Including obj directory UNLESS there is anything else in it
  128. clean :
  129. rm $(OBJ)/.created $(OBJ)/*.o
  130. -rmdir $(OBJ)
  131. # Clean up everything generatable including final products
  132. cleanall : clean
  133. rm $(PROD)
  134. # Binary release
  135. #
  136. # Must be done on anonymous FTP server!
  137. #
  138. #  This makefile does not knw how to make $(PROD)_$(VL) so that trying
  139. #  to make binay or asis on a weird machine doesn't try to build $(PROD)!
  140. binary : $(PROD)_$(VL)
  141. -mkdir /mnt/www0/pub/www/bin/$(WWW_MACH)
  142. cp $(PROD)_$(VL) /mnt/www0/pub/www/bin/$(WWW_MACH)/$(PROD)_$(VL)
  143. # ASIS installation
  144. # -----------------
  145. # Can only happen on an allocated ASIS development machine and
  146. # with uid of the controlling user for the project.
  147. #
  148. asis : /asis/share/usr.local/lib/WWW/default.html 
  149. /asis/specific/$(ASIS_MACH)/usr.local/bin/$(PROD)
  150. touch asis
  151. echo ASIS distribution is now up-to-date.
  152. /asis/specific/$(ASIS_MACH)/usr.local/bin/$(PROD) : $(PROD)_$(VL)
  153. cp $(PROD)_$(VL) /asis/specific/$(ASIS_MACH)/usr.local/bin/$(PROD)_$(VL)
  154. rm -f /asis/specific/$(ASIS_MACH)/usr.local/bin/$(PROD)
  155. ln -s $(PROD)_$(VL) 
  156. /asis/specific/$(ASIS_MACH)/usr.local/bin/$(PROD)
  157. /asis/share/usr.local/lib/WWW/default.html : $(DEFAULTS)/cern.html
  158. - mkdir /asis/share/usr.local/lib/WWW
  159. cp $(DEFAULTS)/*.html /asis/share/usr.local/lib/WWW
  160. cp $(DEFAULTS)/cern.html /asis/share/usr.local/lib/WWW/default.html
  161. cp $(DEFAULTS)/default.html /asis/share/usr.local/lib/WWW/top.html
  162. # CERNLIB installation
  163. # --------------------
  164. # Assuming the cernlib-style directory structure
  165. # Warning: Not suitable for machine-shared file structure.
  166. #
  167. cernlib : $(PROD)
  168. - mkdir $(CERNLIBBIN)
  169. cp $(PROD) $(CERNLIBBIN)
  170. #_________________________________________________________________________
  171. # Compiling the Objects (Dependenies incomplete)
  172. # Check directory exists
  173. $(OE) :
  174. -mkdir $(WTMP)
  175. -mkdir $(WTMP)/Arena
  176. -mkdir $(WTMP)/Arena/$(WWW_MACH)
  177. touch $(OE)
  178. #
  179. $(OBJ)/www.o : $(OE) $(ARENA)www.c
  180. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)www.c
  181. $(OBJ)/file.o : $(OE) $(ARENA)file.c
  182. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)file.c
  183. $(OBJ)/display.o : $(OE) $(ARENA)display.c
  184. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)display.c
  185. $(OBJ)/scrollbar.o : $(OE) $(ARENA)scrollbar.c
  186. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)scrollbar.c
  187. $(OBJ)/toolbar.o : $(OE) $(ARENA)toolbar.c
  188. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)toolbar.c
  189. $(OBJ)/entities.o : $(OE) $(ARENA)entities.c
  190. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)entities.c
  191. $(OBJ)/forms.o : $(OE) $(ARENA)forms.c
  192. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)forms.c
  193. $(OBJ)/status.o : $(OE) $(ARENA)status.c
  194. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)status.c
  195. $(OBJ)/html.o : $(OE) $(ARENA)html.c
  196. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)html.c
  197. $(OBJ)/parsehtml.o : $(OE) $(ARENA)parsehtml.c
  198. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)parsehtml.c
  199. $(OBJ)/http.o : $(OE) $(ARENA)http.c
  200. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)http.c
  201. $(OBJ)/cache.o : $(OE) $(ARENA)cache.c
  202. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)cache.c
  203. $(OBJ)/image.o : $(OE) $(ARENA)image.c
  204. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)image.c
  205. $(OBJ)/gif.o : $(OE) $(ARENA)gif.c
  206. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)gif.c
  207. $(OBJ)/bridge.o : $(OE) $(ARENA)bridge.c
  208. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)bridge.c
  209. $(OBJ)/strptime.o : $(OE) $(ARENA)strptime.c
  210. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)strptime.c
  211. $(OBJ)/mailcap.o : $(OE) $(ARENA)mailcap.c
  212. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)mailcap.c
  213. $(OBJ)/XGetHClrs.o : $(OE) $(ARENA)XGetHClrs.c
  214. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)XGetHClrs.c
  215. $(OBJ)/util.o : $(OE) $(ARENA)util.c
  216. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)util.c
  217. $(OBJ)/math.o : $(OE) $(ARENA)math.c
  218. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)math.c
  219. $(OBJ)/editor.o : $(OE) $(ARENA)editor.c
  220. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)editor.c
  221. $(OBJ)/icon.o : $(OE) $(ARENA)icon.c 
  222. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)icon.c 
  223. $(OBJ)/history.o : $(OE) $(ARENA)history.c 
  224. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)history.c 
  225. $(OBJ)/dither.o : $(OE) $(ARENA)dither.c 
  226. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)dither.c 
  227. $(OBJ)/jpeg.o : $(OE) $(ARENA)jpeg.c 
  228. $(CC) -c -o $@ $(CFLAGS2) -I$(JPEGDIR)/Implementation $(ARENA)jpeg.c 
  229. $(OBJ)/style.o : $(OE) $(ARENA)style.c 
  230. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)style.c 
  231. $(OBJ)/neweditor.o : $(OE) $(ARENA)neweditor.c
  232. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)neweditor.c
  233. $(OBJ)/popup.o : $(OE) $(ARENA)popup.c
  234. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)popup.c
  235. $(OBJ)/parsecommand.o : $(OE) $(ARENA)parsecommand.c
  236. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)parsecommand.c
  237. # $(OBJ)/skyblue.o : $(OE) $(ARENA)skyblue.c $(ARENA)skyblue.h
  238. #  $(CC) -c -o $@ $(CFLAGS2) $(ARENA)skyblue.c 
  239. # $(OBJ)/constraints.o : $(OE) $(ARENA)constraints.c $(ARENA)skyblue.h
  240. #  $(CC) -c -o $@ $(CFLAGS2) $(ARENA)constraints.c 
  241. $(OBJ)/x11.o : $(OE) $(ARENA)x11.c
  242. $(CC) -c -o $@ $(CFLAGS2) $(ARENA)x11.c 
  243. $(OBJ)/png.o : $(OE) $(ARENA)png.c
  244. $(CC) -c -o $@ $(CFLAGS2) -I$(PNGDIR)/Implementation -I$(ZLIBDIR)/Implementation $(ARENA)png.c 
  245. $(OBJ)/menu.o : $(OE) $(ARENA)menu.c
  246. $(CC) -c -o $@ $(CFLAGS2) -I$(PNGDIR)/Implementation -I$(ZLIBDIR)/Implementation $(ARENA)menu.c 
  247. $(OBJ)/tools.o : $(OE) $(ARENA)tools.c
  248. $(CC) -c -o $@ $(CFLAGS2) -I$(PNGDIR)/Implementation -I$(ZLIBDIR)/Implementation $(ARENA)tools.c 
  249. # W3 Source + documentation release
  250. # ---------------------------------
  251. distribute :  /mnt/www0/pub/www/README.txt /mnt/www0/pub/www/Copyright.txt
  252. (cd $(WWW)/.. && WWW=WWW ABS=`pwd`/ $(MAKE) $(MFLAGS) 
  253. -f WWW/Arena/Implementation/CommonMakefile 
  254. /mnt/www0/pub/www/src/WWWArena_$(VL).tar.Z)
  255. (cd ../Implementation; cvs tag 
  256.     `sed -e 's/V. = /v/' Version.make | sed -e 's?.?/?'` )
  257. echo Distribution of Line Mode version $(VC) up to date.
  258. # THIS MUST BE BUILT FROM THE DIRECTORY ABOVE WWW ! USE distribute above!
  259. /mnt/www0/pub/www/src/WWWArena_$(VL).tar.Z : $(SOURCES) $(LMD)/line-mode-guide.txt
  260. tar cf /mnt/www0/pub/www/src/WWWArena_$(VL).tar 
  261.     $(SOURCES)  $(LMD)/line-mode-guide.txt 
  262.     $(WWW)/Arena/*/Makefile 
  263.     $(WWW)/Arena/vms/descrip.mms $(WWW)/Arena/vms/build_multinet.com 
  264.             $(WWW)/Arena/vms/setup.com      
  265. compress /mnt/www0/pub/www/src/WWWArena_$(VL).tar
  266. # Hypertext supplied in text format
  267. # ---------------------------------
  268. $(WWW)/README.txt : $(WWW)/../README.html
  269. www -n -p66 http://info.cern.ch/hypertext/README.html 
  270. > $(WWW)/README.txt
  271. /mnt/www0/pub/www/README.txt : $(WWW)/README.txt
  272. cp $(WWW)/README.txt /mnt/www0/pub/www/README.txt
  273. $(WWW)/Copyright.txt : $(WWW)/../Copyright.html
  274. www -n -p66 http://info.cern.ch/hypertext/Copyright.html 
  275. > $(WWW)/Copyright.txt
  276. /mnt/www0/pub/www/Copyright.txt : $(WWW)/Copyright.txt
  277. cp $? $@
  278. # Line Mode Manual
  279. #
  280. QUICKGUIDE = 
  281. $(LMD)/QuickGuide.html 
  282. $(LMD)/Commands.html 
  283.     $(LMD)/SourceExamples.html 
  284. $(LMD)/CommandLine.html 
  285. $(LMD)/Shortcuts.html 
  286.     $(LMD)/VMS_Shortcuts.html 
  287. $(LMD)/Installation.html 
  288.     $(LMD)/Installation_VMS.html 
  289.     $(LMD)/Installation_VMS_NewTCP.html 
  290.     $(LMD)/Distribution.html 
  291.     $(LMD)/Porting.html 
  292.     $(LMD)/MachineTypes.html 
  293.     $(LMD)/InstallNotSU.html 
  294.     $(LMD)/Path.html 
  295.     $(LMD)/LoginScript.html 
  296. $(LMD)/Customisation.html 
  297.     $(LMD)/EnvVariables.html 
  298.     $(LMD)/GlobalV.html 
  299.     $(LMD)/NewsServer.html 
  300. $(LMD)/Bugs.html 
  301. $(LMD)/Features.html
  302. doc : /mnt/www0/pub/www/doc/line-mode-guide.txt
  303. echo line mode browser guide exists.
  304. /mnt/www0/pub/www/doc/line-mode-guide.txt : $(LMD)/line-mode-guide.txt
  305. cp $? $@
  306. $(LMD)/line-mode-guide.txt : $(QUICKGUIDE)
  307. -rm $@
  308. for i in $(QUICKGUIDE) ; do www -n -na -p66 $$i >> $@; done