1#
2# "$Id: Makefile 11093 2013-07-03 20:48:42Z msweet $"
3#
4#   CGI makefile for CUPS.
5#
6#   Copyright 2007-2012 by Apple Inc.
7#   Copyright 1997-2006 by Easy Software Products.
8#
9#   These coded instructions, statements, and computer programs are the
10#   property of Apple Inc. and are protected by Federal copyright
11#   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
12#   which should have been included with this file.  If this file is
13#   file is missing or damaged, see the license at "http://www.cups.org/".
14#
15
16include ../Makedefs
17
18LIBOBJS	=	\
19		help-index.o \
20		html.o \
21		ipp-var.o \
22		search.o \
23		template.o \
24		var.o
25OBJS	=	\
26		$(LIBOBJS) \
27		admin.o \
28		classes.o \
29		help.o \
30		jobs.o \
31		makedocset.o \
32		printers.o \
33		testcgi.o \
34		testhi.o \
35		testtemplate.o \
36		websearch.o
37CGIS	=	\
38		admin.cgi \
39		classes.cgi \
40		help.cgi \
41		jobs.cgi \
42		printers.cgi
43LIBTARGETS =	\
44		libcupscgi.a \
45		$(LIBCUPSCGI) \
46		websearch
47
48UNITTARGETS =	\
49		testcgi \
50		testhi \
51		testtemplate
52
53TARGETS	=	\
54		$(LIBTARGETS) \
55		$(CGIS)
56
57
58#
59# Make all targets...
60#
61
62all:	$(TARGETS)
63
64
65#
66# Make library targets...
67#
68
69libs:		$(LIBTARGETS) $(UNITTESTS)
70
71
72#
73# Make unit tests...
74#
75
76unittests:	$(UNITTARGETS)
77
78
79#
80# Clean all object files...
81#
82
83clean:
84	$(RM) $(OBJS) $(TARGETS) $(UNITTARGETS) makedocset
85	$(RM) libcupscgi.so libcupscgi.sl libcupscgi.dylib
86
87
88#
89# Update dependencies (without system header dependencies...)
90#
91
92depend:
93	$(CC) -MM $(ALL_CFLAGS) $(OBJS:.o=.c) >Dependencies
94
95
96#
97# Install all targets...
98#
99
100install:	all install-data install-headers install-libs install-exec
101
102
103#
104# Install data files...
105#
106
107install-data:
108
109
110#
111# Install programs...
112#
113
114install-exec:
115	$(INSTALL_DIR) -m 755 $(SERVERBIN)/cgi-bin
116	for file in $(CGIS); do \
117		$(INSTALL_BIN) $$file $(SERVERBIN)/cgi-bin; \
118	done
119	if test "x$(SYMROOT)" != "x"; then \
120		$(INSTALL_DIR) $(SYMROOT); \
121		for file in $(CGIS); do \
122			cp $$file $(SYMROOT); \
123			dsymutil $(SYMROOT)/$$file; \
124		done \
125	fi
126
127
128#
129# Install headers...
130#
131
132install-headers:
133	echo Installing header files in $(INCLUDEDIR)/cups...
134	$(INSTALL_DIR) -m 755 $(INCLUDEDIR)/cups
135	$(INSTALL_DATA) cgi.h $(INCLUDEDIR)/cups
136	$(INSTALL_DATA) help-index.h $(INCLUDEDIR)/cups
137
138
139#
140# Install libraries...
141#
142
143install-libs: $(INSTALLSTATIC)
144	echo Installing libraries in $(LIBDIR)...
145	$(INSTALL_DIR) -m 755 $(LIBDIR)
146	$(INSTALL_LIB) $(LIBCUPSCGI) $(LIBDIR)
147	if test $(LIBCUPSCGI) = "libcupscgi.so.1" -o $(LIBCUPSCGI) = "libcupscgi.sl.1"; then \
148		$(RM) $(LIBDIR)/`basename $(LIBCUPSCGI) .1`; \
149		$(LN) $(LIBCUPSCGI) $(LIBDIR)/`basename $(LIBCUPSCGI) .1`; \
150	fi
151	if test $(LIBCUPSCGI) = "libcupscgi.1.dylib"; then \
152		$(RM) $(LIBDIR)/libcupscgi.dylib; \
153		$(LN) $(LIBCUPSCGI) $(LIBDIR)/libcupscgi.dylib; \
154	fi
155	if test "x$(SYMROOT)" != "x"; then \
156		$(INSTALL_DIR) $(SYMROOT); \
157		cp $(LIBCUPSCGI) $(SYMROOT); \
158		dsymutil $(SYMROOT)/$(LIBCUPSCGI); \
159	fi
160
161installstatic:
162	$(INSTALL_DIR) -m 755 $(LIBDIR)
163	$(INSTALL_LIB) -m 755 libcupscgi.a $(LIBDIR)
164	$(RANLIB) $(LIBDIR)/libcupscgi.a
165	$(CHMOD) 555 $(LIBDIR)/libcupscgi.a
166
167
168#
169# Uninstall all targets...
170#
171
172uninstall:
173	for file in $(CGIS); do \
174		$(RM) $(SERVERBIN)/cgi-bin/$$file; \
175	done
176	-$(RMDIR) $(SERVERBIN)/cgi-bin
177	$(RM) $(LIBDIR)/libcupscgi.1.dylib
178	$(RM) $(LIBDIR)/libcupscgi.a
179	$(RM) $(LIBDIR)/libcupscgi.dylib
180	$(RM) $(LIBDIR)/libcupscgi_s.a
181	$(RM) $(LIBDIR)/libcupscgi.sl
182	$(RM) $(LIBDIR)/libcupscgi.sl.1
183	$(RM) $(LIBDIR)/libcupscgi.so
184	$(RM) $(LIBDIR)/libcupscgi.so.1
185	-$(RMDIR) $(LIBDIR)
186	$(RM) $(INCLUDEDIR)/cups/cgi.h
187	$(RM) $(INCLUDEDIR)/cups/help-index.h
188	-$(RMDIR) $(INCLUDEDIR)/cups
189
190
191#
192# Automatic API help files...
193#
194
195apihelp:
196	mxmldoc --section "Programming" \
197		--title "CGI API" \
198		--css ../doc/cups-printable.css \
199		--header api-cgi.header --intro api-cgi.shtml \
200		cgi.h help-index.h $(LIBOBJS:.o=.c) >../doc/help/api-cgi.html
201	mxmldoc --tokens help/api-cgi.html api-cgi.xml >../doc/help/api-cgi.tokens
202	$(RM) api-cgi.xml
203
204framedhelp:
205	mxmldoc --framed api-cgi \
206		--section "Programming" \
207		--title "CGI API" \
208		--css ../doc/cups-printable.css \
209		--header api-cgi.header --intro api-cgi.shtml \
210		cgi.h help-index.h $(LIBOBJS:.o=.c)
211
212
213#
214# libcupscgi.so.1, libcupscgi.sl.1
215#
216
217libcupscgi.so.1 libcupscgi.sl.1:	$(LIBOBJS)
218	echo Linking $@...
219	$(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LIBS)
220	$(RM) `basename $@ .1`
221	$(LN) $@ `basename $@ .1`
222
223
224#
225# libcupscgi.1.dylib
226#
227
228libcupscgi.1.dylib:	$(LIBOBJS) libcupscgi.exp
229	echo Linking $@...
230	$(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \
231		-install_name $(libdir)/$@ \
232		-current_version 1.0.0 \
233		-compatibility_version 1.0.0 \
234		-exported_symbols_list libcupscgi.exp \
235		$(LIBOBJS) $(LIBS)
236	$(RM) libcupscgi.dylib
237	$(LN) $@ libcupscgi.dylib
238
239
240#
241# libcupscgi_s.a
242#
243
244libcupscgi_s.a:	$(LIBOBJS)
245	echo Creating $@...
246	$(DSO) $(DSOFLAGS) -o libcupscgi_s.o $(LIBOBJS) $(LIBS)
247	$(RM) $@
248	$(AR) $(ARFLAGS) $@ libcupscgi_s.o
249
250
251#
252# libcupscgi.la
253#
254
255libcupscgi.la:    $(LIBOBJS)
256	echo Linking $@...
257	$(CC) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) -rpath $(LIBDIR) \
258		-version-info 1:0 $(LIBS)
259
260
261#
262# libcupscgi.a
263#
264
265libcupscgi.a:	$(LIBOBJS)
266	echo Archiving $@...
267	$(RM) $@
268	$(AR) $(ARFLAGS) $@ $(LIBOBJS)
269	$(RANLIB) $@
270
271
272#
273# admin.cgi
274#
275
276admin.cgi:	admin.o ../Makedefs ../cups/$(LIBCUPS) $(LIBCUPSCGI)
277	echo Linking $@...
278	$(CC) $(LDFLAGS) -o $@ admin.o -lcupscgi $(LIBS)
279
280
281#
282# classes.cgi
283#
284
285classes.cgi:	classes.o ../Makedefs ../cups/$(LIBCUPS) $(LIBCUPSCGI)
286	echo Linking $@...
287	$(CC) $(LDFLAGS) -o $@ classes.o -lcupscgi $(LIBS)
288
289
290#
291# help.cgi
292#
293
294help.cgi:	help.o ../Makedefs ../cups/$(LIBCUPS) $(LIBCUPSCGI)
295	echo Linking $@...
296	$(CC) $(LDFLAGS) -o $@ help.o -lcupscgi $(LIBS)
297
298
299#
300# jobs.cgi
301#
302
303jobs.cgi:	jobs.o ../Makedefs ../cups/$(LIBCUPS) $(LIBCUPSCGI)
304	echo Linking $@...
305	$(CC) $(LDFLAGS) -o $@ jobs.o -lcupscgi $(LIBS)
306
307
308#
309# makedocset
310#
311
312makedocset:	makedocset.o ../Makedefs libcupscgi.a ../cups/$(LIBCUPSSTATIC)
313	echo Linking $@...
314	$(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ makedocset.o libcupscgi.a \
315		../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(SSLLIBS) $(DNSSDLIBS) \
316		$(LIBZ) $(LIBGSSAPI)
317
318
319#
320# printers.cgi
321#
322
323printers.cgi:	printers.o ../Makedefs ../cups/$(LIBCUPS) $(LIBCUPSCGI)
324	echo Linking $@...
325	$(CC) $(LDFLAGS) -o $@ printers.o -L. -lcupscgi $(LIBS)
326
327
328#
329# testcgi
330#
331
332testcgi:	testcgi.o ../Makedefs libcupscgi.a ../cups/$(LIBCUPSSTATIC)
333	echo Linking $@...
334	$(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testcgi.o libcupscgi.a \
335		../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(SSLLIBS) $(DNSSDLIBS) \
336		$(LIBZ) $(LIBGSSAPI)
337	echo Testing CGI API...
338	./testcgi
339
340
341#
342# testhi
343#
344
345testhi:	testhi.o ../Makedefs libcupscgi.a ../cups/$(LIBCUPSSTATIC)
346	echo Linking $@...
347	$(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testhi.o libcupscgi.a \
348		../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(SSLLIBS) $(DNSSDLIBS) \
349		$(LIBZ) $(LIBGSSAPI)
350	echo Testing help index API...
351	./testhi
352
353
354#
355# testtemplate
356#
357
358testtemplate:	testtemplate.o ../Makedefs libcupscgi.a ../cups/$(LIBCUPSSTATIC)
359	echo Linking $@...
360	$(CC) $(LDFLAGS) -o $@ testtemplate.o libcupscgi.a ../cups/$(LIBCUPSSTATIC) \
361		$(COMMONLIBS) $(SSLLIBS) $(DNSSDLIBS) $(LIBZ) $(LIBGSSAPI)
362
363
364#
365# websearch
366#
367
368websearch:	websearch.o ../Makedefs libcupscgi.a ../cups/$(LIBCUPSSTATIC)
369	echo Linking $@...
370	$(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ websearch.o libcupscgi.a \
371		../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(SSLLIBS) $(DNSSDLIBS) \
372		$(LIBZ) $(LIBGSSAPI)
373
374
375#
376# Dependencies...
377#
378
379include Dependencies
380
381
382#
383# End of "$Id: Makefile 11093 2013-07-03 20:48:42Z msweet $".
384#
385