1# $LynxId: makefile.in,v 1.31 2012/08/12 23:55:17 tom Exp $
2# Make WWW under unix for a.n.other unix system (bsd)
3# Use this as a template
4
5# For W3 distribution, machine type for subdirectories
6WWW_MACH	= Implementation
7WWWINC		= $(top_srcdir)/WWW/Library/Implementation
8
9ECHO =		@DONT_ECHO_CC@
10LFLAGS =
11
12prefix		= @prefix@
13exec_prefix	= @exec_prefix@
14datarootdir	= @datarootdir@
15top_srcdir	= @top_srcdir@
16srcdir		= @srcdir@
17VPATH		= $(srcdir)
18
19LYFLAGS		= # FIXME: set in parent makefile
20
21CC		= @CC@
22DEFS		= @DEFS@
23EXTRA_CPPFLAGS	= @EXTRA_CPPFLAGS@
24CPPFLAGS	= @CPPFLAGS@
25
26AR		= @AR@
27ARFLAGS		= @ARFLAGS@
28
29RANLIB		= @RANLIB@
30
31o		= .@OBJEXT@
32x		= @EXEEXT@
33
34INTLDIR_CPPFLAGS= @INTLDIR_CPPFLAGS@ -I$(top_srcdir)/intl
35
36CPP		= @CPP@
37CPPOPTS		= $(DEFS) $(LYFLAGS) \
38		-I../../.. \
39		-I../../../src \
40		-I$(top_srcdir) \
41		-I$(top_srcdir)/src \
42		$(INTLDIR_CPPFLAGS) -I$(WWWINC) $(EXTRA_CPPFLAGS) $(CPPFLAGS)
43
44LY_CFLAGS	= @CFLAGS@
45CFLAGS		= $(CPPOPTS) $(LY_CFLAGS)
46
47LINT		= @LINT@
48LINTOPTS	=
49
50CTAGS		= @CTAGS@
51
52# Directory for installed binary:
53BINDIR		= @bindir@
54
55# Where is the W3 object library to be installed (not normally done)?
56#_________________ OK if normal W3 distribution
57# Where is the WWW source root?
58WWW = $(top_srcdir)/WWW
59
60#  Where should temporary (object) files go?
61WTMP = ../..
62
63# (Version.make)
64VC = 2.14
65#______________________________________________________________________
66# (originally CommonMakefile)
67
68#  If this env var is set to something else Some makes will use that instead
69SHELL = @CONFIG_SHELL@
70
71#	.h files are distributed but originally are made from the
72#	self-documenting hypertext files.
73
74.SUFFIXES: .h .html
75.html.h:
76#	- chmod +w $*.h
77	www -w90 -na -to text/x-c $*.html > $*.h
78#	chmod -w $*.h
79
80# If this is actually run in a subdirectory,
81#
82# WWW = ../../..
83# WWW = ../..	For [cernlib] build in this directory
84
85CMN = $(WWW)/Library/Implementation/
86
87# Where shall we put the objects and built library?
88
89LOB = .
90
91# Only needed if HTWAIS.c is to be compiled. Put into your Makefile.include
92#  uncomment these and fill in WAISINC for adding direct wais access
93#  to Lynx.
94@MAKE_WAIS@HTWAIS_c = $(CMN)/HTWAIS.c
95@MAKE_WAIS@HTWAIS_o = $(LOB)/HTWAIS$o
96@MAKE_WAIS@WAIS = YES
97#WAISINC = -I../../../../freeWAIS-0.202/ir
98@MAKE_WAIS@WAISCFLAGS = -DDIRECT_WAIS
99#
100
101# add -DNEW_GATEWAY here for the new gateway config stuff
102CFLAGS2 = $(CFLAGS) $(LYFLAGS) $(WAISCFLAGS) -I$(CMN) -DACCESS_AUTH
103
104COMPILE	= $(ECHO) $(CC) $(CFLAGS2) -c
105
106COMMON = $(LOB)/HTParse$o $(LOB)/HTAccess$o $(LOB)/HTTP$o \
107	$(LOB)/HTFile$o	$(LOB)/HTBTree$o $(LOB)/HTFTP$o $(LOB)/HTTCP$o \
108	$(LOB)/SGML$o $(LOB)/HTMLDTD$o $(LOB)/HTChunk$o \
109	$(LOB)/HTPlain$o \
110	$(LOB)/HTMLGen$o \
111	$(LOB)/HTAtom$o $(LOB)/HTAnchor$o $(LOB)/HTStyle$o \
112	$(LOB)/HTList$o $(LOB)/HTString$o \
113	$(LOB)/HTRules$o $(LOB)/HTFormat$o  $(LOB)/HTMIME$o \
114	$(LOB)/HTNews$o  $(LOB)/HTGopher$o \
115	$(LOB)/HTTelnet$o $(LOB)/HTFinger$o $(LOB)/HTWSRC$o $(HTWAIS_o) \
116	$(LOB)/HTAAUtil$o $(LOB)/HTAABrow$o \
117	$(LOB)/HTGroup$o \
118	$(LOB)/HTAAProt$o \
119	$(LOB)/HTAssoc$o  $(LOB)/HTLex$o    $(LOB)/HTUU$o \
120
121CFILES = $(CMN)HTParse.c $(CMN)HTAccess.c $(CMN)HTTP.c $(CMN)HTFile.c \
122	$(CMN)HTBTree.c \
123	$(CMN)HTFTP.c	$(CMN)HTTCP.c	  $(CMN)SGML.c \
124	$(CMN)HTMLDTD.c \
125	$(CMN)HTPlain.c	\
126	$(CMN)HTMLGen.c \
127	$(CMN)HTChunk.c $(CMN)HTAtom.c    $(CMN)HTAnchor.c $(CMN)HTStyle.c \
128	$(CMN)HTList.c  $(CMN)HTString.c  $(CMN)HTRules.c \
129	$(CMN)HTFormat.c $(CMN)HTMIME.c \
130	$(CMN)HTNews.c  $(CMN)HTGopher.c  $(CMN)HTTelnet.c \
131	$(CMN)HTFinger.c $(HTWAIS_c)	  $(CMN)HTWSRC.c \
132	$(CMN)HTAABrow.c \
133	$(CMN)HTGroup.c  \
134	$(CMN)HTAAProt.c \
135	$(CMN)HTAssoc.c  $(CMN)HTLex.c    $(CMN)HTUU.c
136
137HFILES = $(CMN)HTParse.h $(CMN)HTAccess.h $(CMN)HTTP.h $(CMN)HTFile.h \
138	$(CMN)HTBTree.h $(CMN)HTFTP.h $(CMN)HTTCP.h \
139	$(CMN)SGML.h $(CMN)HTML.h $(CMN)HTMLDTD.h $(CMN)HTChunk.h \
140	$(CMN)HTPlain.h	\
141	$(CMN)HTFWriter.h	$(CMN)HTMLGen.h \
142	$(CMN)HTStream.h \
143	$(CMN)HTAtom.h $(CMN)HTAnchor.h $(CMN)HTStyle.h \
144	$(CMN)HTList.h \
145	$(CMN)HTString.h $(CMN)HTRules.h \
146	$(CMN)HTFormat.h $(CMN)HTInit.h \
147	$(CMN)HTMIME.h $(CMN)HTNews.h \
148	$(CMN)HTGopher.h \
149	$(CMN)HTUtils.h $(CMN)www_tcp.h $(CMN)HText.h \
150	$(CMN)HTTelnet.h $(CMN)HTFinger.h \
151	$(CMN)HTWAIS.h  $(CMN)HTWSRC.h \
152	$(CMN)HTAABrow.h \
153	$(CMN)HTGroup.h  \
154	$(CMN)HTAAProt.h \
155	$(CMN)HTAssoc.h  $(CMN)HTLex.h    $(CMN)HTUU.h
156
157C_SRC		= $(COMMON:$o=.c)
158
159all : $(LOB)/libwww.a
160
161lint:
162	$(LINT) $(LINTOPTS) $(CPPOPTS) $(C_SRC) 2>&1 |tee ../../../lint.libwww
163
164.SUFFIXES: $o .i .h .html
165
166.c$o:
167	@RULE_CC@
168	@ECHO_CC@$(CC) $(CPPOPTS) $(CFLAGS) -c $(srcdir)/$*.c
169
170.c.i:
171	@RULE_CC@
172	@ECHO_CC@$(CPP) -C $(CPPOPTS) $(srcdir)/$*.c >$@
173
174depend :
175	makedepend -fmakefile -- $(CFLAGS) -- $(CFILES)
176
177#	Library
178#
179#  On SGI, ranlib is unnecessary and does not exist so we ignore errors
180# for that step
181$(LOB)/libwww.a : $(COMMON)
182	$(AR) $(ARFLAGS) $(LOB)/libwww.a $(COMMON)
183	-$(RANLIB) $(LOB)/libwww.a
184
185#	Clean up everything generatable except final products
186clean :
187	rm -f core *.core *.leaks *.[oi] *.bak tags TAGS
188	rm -f dtd_util$x
189	rm -f $(LOB)/*$o
190
191distclean : clean
192	@echo made $@
193
194tags:
195	$(CTAGS) *.[ch]
196
197#			Common code
198#			-----------
199
200$(LOB)/HTList$o : $(CMN)HTList.c $(CMN)HTUtils.h $(CMN)HTList.h
201	$(COMPILE) $(CMN)HTList.c
202
203$(LOB)/HTAnchor$o : $(CMN)HTAnchor.c $(CMN)HTUtils.h $(CMN)HTList.h
204	$(COMPILE) $(CMN)HTAnchor.c
205
206$(LOB)/HTFormat$o : $(CMN)HTFormat.c $(CMN)HTUtils.h $(CMN)HTList.h
207	$(COMPILE) $(CMN)HTFormat.c
208
209$(LOB)/HTMIME$o : $(CMN)HTMIME.c $(CMN)HTUtils.h $(CMN)HTList.h
210	$(COMPILE) $(CMN)HTMIME.c
211
212$(LOB)/HTNews$o : $(CMN)HTNews.c $(CMN)HTUtils.h $(CMN)HTList.h\
213	 $(CMN)HTMLDTD.h
214	$(COMPILE) $(CMN)HTNews.c
215
216$(LOB)/HTGopher$o : $(CMN)HTGopher.c $(CMN)HTUtils.h $(CMN)HTList.h \
217	 $(CMN)HTMLDTD.h
218	$(COMPILE) $(CMN)HTGopher.c
219
220$(LOB)/HTTelnet$o : $(CMN)HTTelnet.c $(CMN)HTUtils.h $(CMN)HTTelnet.h $(CMN)../../../userdefs.h
221	$(COMPILE) $(CMN)HTTelnet.c
222
223$(LOB)/HTFinger$o : $(CMN)HTFinger.c $(CMN)HTUtils.h $(CMN)HTList.h \
224	$(CMN)HTMLDTD.h
225	$(COMPILE) $(CMN)HTFinger.c
226
227$(LOB)/HTStyle$o : $(CMN)HTStyle.c $(CMN)HTUtils.h
228	$(COMPILE) $(CMN)HTStyle.c
229
230$(LOB)/HTAtom$o : $(CMN)HTAtom.c $(CMN)HTUtils.h $(CMN)HTList.h
231	$(COMPILE) $(CMN)HTAtom.c
232
233$(LOB)/HTChunk$o : $(CMN)HTChunk.c $(CMN)HTUtils.h
234	$(COMPILE) $(CMN)HTChunk.c
235
236$(LOB)/HTString$o : $(CMN)HTString.c $(CMN)HTUtils.h $(CMN)Version.make
237	$(COMPILE) -DVC=\"$(VC)\" $(CMN)HTString.c
238
239$(LOB)/HTRules$o : $(CMN)HTRules.c $(CMN)HTUtils.h $(CMN)Version.make \
240	 $(CMN)HTAAProt.h
241	$(COMPILE) -DVC=\"$(VC)\" $(CMN)HTRules.c
242
243$(LOB)/SGML$o : $(CMN)SGML.c $(CMN)HTUtils.h $(CMN)UCAux.h
244	$(COMPILE) $(CMN)SGML.c
245
246$(LOB)/HTMLGen$o : $(CMN)HTMLGen.c $(CMN)HTUtils.h $(CMN)HTMLDTD.h
247	$(COMPILE) $(CMN)HTMLGen.c
248
249$(LOB)/HTMLDTD$o : $(CMN)HTMLDTD.c $(CMN)SGML.h
250	$(COMPILE) $(CMN)HTMLDTD.c
251
252$(LOB)/HTPlain$o : $(CMN)HTPlain.c $(CMN)HTPlain.h $(CMN)HTStream.h \
253	 $(CMN)UCAux.h
254	$(COMPILE) $(CMN)HTPlain.c
255
256$(LOB)/HTWAIS$o : $(CMN)HTWAIS.c $(CMN)HTUtils.h $(CMN)HTList.h
257	$(COMPILE) $(WAISINC) $(CMN)HTWAIS.c
258
259$(LOB)/HTWSRC$o : $(CMN)HTWSRC.c $(CMN)HTUtils.h $(CMN)HTList.h
260	$(COMPILE) $(CMN)HTWSRC.c
261
262#	Access Authorization
263
264$(LOB)/HTAAUtil$o : $(CMN)HTAAUtil.c $(CMN)HTAAUtil.h \
265	 $(CMN)HTUtils.h $(CMN)HTString.h
266	$(COMPILE) $(CMN)HTAAUtil.c
267
268$(LOB)/HTGroup$o : $(CMN)HTGroup.c $(CMN)HTGroup.h \
269	 $(CMN)HTAAUtil.h \
270	 $(CMN)HTAssoc.h $(CMN)HTLex.h
271	$(COMPILE) $(CMN)HTGroup.c
272
273$(LOB)/HTAABrow$o : $(CMN)HTAABrow.c $(CMN)HTAABrow.h \
274	 $(CMN)HTAAUtil.h $(CMN)HTUU.h \
275	 $(CMN)HTUtils.h $(CMN)HTString.h \
276	 $(CMN)HTParse.h $(CMN)HTList.h \
277	 $(CMN)HTAssoc.h
278	$(COMPILE) $(CMN)HTAABrow.c
279
280$(LOB)/HTAAProt$o : $(CMN)HTAAProt.c $(CMN)HTAAProt.h \
281	 $(CMN)HTUtils.h $(CMN)HTAAUtil.h \
282	 $(CMN)HTAssoc.h $(CMN)HTLex.h
283	$(COMPILE) $(CMN)HTAAProt.c
284
285$(LOB)/HTAssoc$o : $(CMN)HTAssoc.c $(CMN)HTAssoc.h \
286	$(CMN)HTUtils.h $(CMN)HTString.h $(CMN)HTList.h
287	$(COMPILE) $(CMN)HTAssoc.c
288
289$(LOB)/HTLex$o : $(CMN)HTLex.c $(CMN)HTLex.h $(CMN)HTUtils.h
290	$(COMPILE) $(CMN)HTLex.c
291
292$(LOB)/HTUU$o : $(CMN)HTUU.c $(CMN)HTUU.h $(CMN)HTUtils.h
293	$(COMPILE) $(CMN)HTUU.c
294
295
296#	Communications & Files
297
298$(LOB)/HTTP$o : $(CMN)HTTP.c $(CMN)HTUtils.h $(CMN)HTAABrow.h
299	$(COMPILE) $(CMN)HTTP.c
300
301$(LOB)/HTTCP$o : $(CMN)HTTCP.c $(CMN)HTUtils.h
302	$(COMPILE) $(CMN)HTTCP.c
303
304$(LOB)/HTFile$o : $(CMN)HTFile.c $(CMN)HTUtils.h \
305	 $(CMN)HTMLDTD.h
306	$(COMPILE) $(CMN)HTFile.c
307
308$(LOB)/HTBTree$o : $(CMN)HTBTree.c $(CMN)HTUtils.h
309	$(COMPILE) $(CMN)HTBTree.c
310
311$(LOB)/HTFTP$o : $(CMN)HTFTP.c $(CMN)HTUtils.h
312	$(COMPILE) $(CMN)HTFTP.c
313
314$(LOB)/HTAccess$o : $(CMN)HTAccess.c $(CMN)HTUtils.h
315	$(COMPILE) $(CMN)HTAccess.c
316
317$(LOB)/HTParse$o : $(CMN)HTParse.c $(CMN)HTUtils.h
318	$(COMPILE) $(CMN)HTParse.c
319
320$(LOB)/HTVMS_WaisUI$o : $(CMN)HTVMS_WaisUI.c $(CMN)HTUtils.h
321	$(COMPILE) $(CMN)HTVMS_WaisUI.c
322
323$(LOB)/HTDOS$o : $(CMN)HTDOS.c $(CMN)HTUtils.h
324	$(COMPILE) $(CMN)HTDOS.c
325
326# Utilities
327$(LOB)/dtd_util$o : $(CMN)dtd_util.c $(CMN)HTUtils.h
328	$(COMPILE) $(CMN)dtd_util.c
329
330DTD_UTIL = $(LOB)/dtd_util$o $(LOB)/HTMLDTD$o
331
332sources: dtd_util$x src0_HTMLDTD.txt src1_HTMLDTD.txt
333	-rm -f *_HTMLDTD.h
334	./dtd_util$x -l src0_HTMLDTD.txt -s -c -o src0_HTMLDTD.h
335	./dtd_util$x -l src1_HTMLDTD.txt -t -c -o src1_HTMLDTD.h
336	./dtd_util$x -l src0_HTMLDTD.txt -s -h -o hdr_HTMLDTD.h
337
338dtd_util$x: $(DTD_UTIL)
339	$(CC) $(CC_OPTS) $(LDFLAGS) -o $@  $(DTD_UTIL) $(LIBS)
340
341check: dtd_util$x
342	@echo "** comparing builtin src0_HTMLDTD.txt"
343	./dtd_util$x >HTMLDTD.log
344	-diff -u src0_HTMLDTD.txt HTMLDTD.log
345
346	@echo "** comparing reloaded src0_HTMLDTD.txt"
347	./dtd_util$x -l src0_HTMLDTD.txt >HTMLDTD.log
348	-diff -u src0_HTMLDTD.txt HTMLDTD.log
349
350	@echo "** comparing header generated from builtin"
351	./dtd_util$x -s -h -o HTMLDTD.log
352	-diff -u hdr_HTMLDTD.h HTMLDTD.log
353	./dtd_util$x -t -h -o HTMLDTD.log
354	-diff -u hdr_HTMLDTD.h HTMLDTD.log
355
356	@echo "** comparing header generated by load"
357	./dtd_util$x -s -h -o HTMLDTD.log -l src0_HTMLDTD.txt
358	-diff -u hdr_HTMLDTD.h HTMLDTD.log
359	./dtd_util$x -t -h -o HTMLDTD.log -l src1_HTMLDTD.txt
360	-diff -u hdr_HTMLDTD.h HTMLDTD.log
361
362	@echo "** comparing strict source generated from builtin"
363	./dtd_util$x -s -c -o HTMLDTD.log
364	-diff -u src0_HTMLDTD.h HTMLDTD.log
365
366	@echo "** comparing strict source generated by load"
367	./dtd_util$x -s -c -o HTMLDTD.log -l src0_HTMLDTD.txt
368	-diff -u src0_HTMLDTD.h HTMLDTD.log
369
370	@echo "** comparing tagsoup source generated from builtin"
371	./dtd_util$x -t -c -o HTMLDTD.log
372	-diff -u src1_HTMLDTD.h HTMLDTD.log
373
374	@echo "** comparing tagsoup source generated by load"
375	./dtd_util$x -t -c -o HTMLDTD.log -l src1_HTMLDTD.txt
376	-diff -u src1_HTMLDTD.h HTMLDTD.log
377
378# DO NOT DELETE THIS LINE -- make depend depends on it.
379