Merge changes from CUPS 1.4svn-r7874.
[thirdparty/cups.git] / scheduler / Makefile
1 #
2 # "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $"
3 #
4 #   Scheduler Makefile for the Common UNIX Printing System (CUPS).
5 #
6 #   Copyright 2007-2008 by Apple Inc.
7 #   Copyright 1997-2007 by Easy Software Products, all rights reserved.
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
16 include ../Makedefs
17
18 CUPSDOBJS =     \
19                 auth.o \
20                 banners.o \
21                 cert.o \
22                 classes.o \
23                 client.o \
24                 conf.o \
25                 dirsvc.o \
26                 env.o \
27                 main.o \
28                 ipp.o \
29                 listen.o \
30                 job.o \
31                 log.o \
32                 network.o \
33                 policy.o \
34                 printers.o \
35                 process.o \
36                 quotas.o \
37                 removefile.o \
38                 select.o \
39                 server.o \
40                 statbuf.o \
41                 subscriptions.o \
42                 sysman.o
43 LIBOBJS =       \
44                 filter.o \
45                 mime.o \
46                 type.o
47 LIB32OBJS       = $(LIBOBJS:.o=.32.o)
48 LIB64OBJS       = $(LIBOBJS:.o=.64.o)
49 COBJS   =       \
50                 $(CUPSDOBJS) \
51                 $(LIBOBJS) \
52                 $(LIB32OBJS) \
53                 $(LIB64OBJS) \
54                 cupsfilter.o \
55                 cups-deviced.o \
56                 cups-lpd.o \
57                 cups-polld.o \
58                 testdirsvc.o \
59                 testlpd.o \
60                 testmime.o \
61                 testspeed.o \
62                 testsub.o \
63                 util.o
64 CXXOBJS =       \
65                 cups-driverd.o
66 OBJS    =       \
67                 $(COBJS) \
68                 $(CXXOBJS)
69 LIBTARGETS =    \
70                 $(LIBCUPSMIME) \
71                 $(LIB32CUPSMIME) \
72                 $(LIB64CUPSMIME) \
73                 libcupsmime.a \
74                 testmime
75
76 TARGETS =       \
77                 $(LIBTARGETS) \
78                 cupsd \
79                 cupsfilter \
80                 cups-deviced \
81                 cups-driverd \
82                 cups-lpd \
83                 cups-polld \
84                 testdirsvc \
85                 testlpd \
86                 testspeed \
87                 testsub
88
89
90 #
91 # Make everything...
92 #
93
94 all:            $(TARGETS)
95
96
97 #
98 # Make library targets...
99 #
100
101 libs:           $(LIBTARGETS)
102
103
104 #
105 # Make unit tests...
106 #
107
108 unittests:
109
110
111 #
112 # Clean all object files...
113 #
114
115 clean:
116         $(RM) $(OBJS)
117         $(RM) $(TARGETS) convert
118         $(RM) libcupsmime.so libcupsmime.sl libcupsmime.dylib
119         $(RM) -r 32bit 64bit
120
121
122 #
123 # Update dependencies (without system header dependencies...)
124 #
125
126 depend:
127         touch Dependencies.tmp Dependencies.tmplib
128         makedepend -Y -I.. -fDependencies.tmp $(COBJS:.o=.c) \
129                 $(CXXOBJS:.o=.cxx) >/dev/null 2>&1
130         makedepend -Y -I.. -fDependencies.tmplib $(LIBOBJS:.o=.c) >/dev/null 2>&1
131         $(RM) Dependencies
132         cp Dependencies.tmp Dependencies
133         sed -E -e '1,$$s/^([^.]+)\.o:/\1\.32.o: \1\.c /' \
134                 Dependencies.tmplib >>Dependencies
135         sed -E -e '1,$$s/^([^.]+)\.o:/\1\.64.o: \1\.c /' \
136                 Dependencies.tmplib >>Dependencies
137         $(RM) Dependencies.tmp Dependencies.tmplib
138
139
140 #
141 # Install all targets...
142 #
143
144 install:        all install-data install-headers install-libs install-exec
145
146
147 #
148 # Install data files...
149 #
150
151 install-data:
152         echo Creating $(SERVERBIN)/driver...
153         $(INSTALL_DIR) -m 755 $(SERVERBIN)/driver
154         echo Creating $(SERVERROOT)...
155         $(INSTALL_DIR) -m 755 $(SERVERROOT)
156         -chgrp $(CUPS_GROUP) $(SERVERROOT)
157         echo Creating $(SERVERROOT)/interfaces...
158         $(INSTALL_DIR) -m 755 $(SERVERROOT)/interfaces
159         -chgrp $(CUPS_GROUP) $(SERVERROOT)/interfaces
160         echo Creating $(SERVERROOT)/ppd...
161         $(INSTALL_DIR) -m 755 $(SERVERROOT)/ppd
162         -chgrp $(CUPS_GROUP) $(SERVERROOT)/ppd
163         -if test "x`uname`" != xDarwin; then \
164                 echo Creating $(SERVERROOT)/ssl...; \
165                 $(INSTALL_DIR) -m 700 $(SERVERROOT)/ssl; \
166                 chgrp $(CUPS_GROUP) $(SERVERROOT)/ssl || true; \
167                 echo Creating $(STATEDIR)...; \
168                 $(INSTALL_DIR) -m 755 $(STATEDIR); \
169                 echo Creating $(STATEDIR)/certs...; \
170                 $(INSTALL_DIR) -m 511 $(STATEDIR)/certs; \
171                 chgrp $(CUPS_PRIMARY_SYSTEM_GROUP) $(STATEDIR)/certs || true; \
172         fi
173         echo Creating $(LOGDIR)...
174         $(INSTALL_DIR) -m 755 $(LOGDIR)
175         echo Creating $(REQUESTS)...
176         $(INSTALL_DIR) -m 710 $(REQUESTS)
177         -chgrp $(CUPS_GROUP) $(REQUESTS)
178         echo Creating $(REQUESTS)/tmp...
179         $(INSTALL_DIR) -m 1770 $(REQUESTS)/tmp
180         -chgrp $(CUPS_GROUP) $(REQUESTS)/tmp
181         echo Creating $(CACHEDIR)...
182         $(INSTALL_DIR) -m 775 $(CACHEDIR)
183         -chgrp $(CUPS_GROUP) $(CACHEDIR)
184 #       echo Creating $(CACHEDIR)/ppd...
185 #       $(INSTALL_DIR) -m 755 $(CACHEDIR)/ppd
186 #       -chgrp $(CUPS_GROUP) $(CACHEDIR)/ppd
187
188
189 #
190 # Install programs...
191 #
192
193 install-exec:
194         echo Installing programs in $(SBINDIR)...
195         $(INSTALL_DIR) -m 755 $(SBINDIR)
196         $(INSTALL_BIN) cupsd $(SBINDIR)
197         $(INSTALL_BIN) cupsfilter $(SBINDIR)
198         -if test "x`uname`" = xDarwin; then \
199                 $(INSTALL_DIR) $(BUILDROOT)/System/Library/Printers/Libraries; \
200                 $(LN) $(sbindir)/cupsfilter $(BUILDROOT)/System/Library/Printers/Libraries/convert; \
201         fi
202         echo Installing programs in $(SERVERBIN)/daemon...
203         $(INSTALL_DIR) -m 755 $(SERVERBIN)
204         $(INSTALL_DIR) -m 755 $(SERVERBIN)/daemon
205         $(INSTALL_BIN) cups-deviced $(SERVERBIN)/daemon
206         $(INSTALL_BIN) cups-driverd $(SERVERBIN)/daemon
207         $(INSTALL_BIN) cups-lpd $(SERVERBIN)/daemon
208         $(INSTALL_BIN) cups-polld $(SERVERBIN)/daemon
209         if test "x$(SYMROOT)" != "x"; then \
210                 $(INSTALL_DIR) $(SYMROOT); \
211                 for file in $(TARGETS); do \
212                         cp $$file $(SYMROOT); \
213                 done \
214         fi
215
216
217 #
218 # Install headers...
219 #
220
221 install-headers:
222         echo Installing header files in $(INCLUDEDIR)/cups...
223         $(INSTALL_DIR) -m 755 $(INCLUDEDIR)/cups
224         $(INSTALL_DATA) mime.h $(INCLUDEDIR)/cups
225
226
227 #
228 # Install libraries...
229 #
230
231 install-libs: $(INSTALLSTATIC) $(INSTALL32) $(INSTALL64)
232         echo Installing libraries in $(LIBDIR)...
233         $(INSTALL_DIR) -m 755 $(LIBDIR)
234         $(INSTALL_LIB) $(LIBCUPSMIME) $(LIBDIR)
235         if test $(LIBCUPSMIME) = "libcupsmime.so.1" -o $(LIBCUPSMIME) = "libcupsmime.sl.1"; then \
236                 $(RM) $(LIBDIR)/`basename $(LIBCUPSMIME) .1`; \
237                 $(LN) $(LIBCUPSMIME) $(LIBDIR)/`basename $(LIBCUPSMIME) .1`; \
238         fi
239         if test $(LIBCUPSMIME) = "libcupsmime.1.dylib"; then \
240                 $(RM) $(LIBDIR)/libcupsmime.dylib; \
241                 $(LN) $(LIBCUPSMIME) $(LIBDIR)/libcupsmime.dylib; \
242         fi
243         if test "x$(SYMROOT)" != "x"; then \
244                 $(INSTALL_DIR) $(SYMROOT); \
245                 cp $(LIBCUPSMIME) $(SYMROOT); \
246         fi
247
248 installstatic:
249         $(INSTALL_DIR) -m 755 $(LIBDIR)
250         $(INSTALL_LIB) libcupsmime.a $(LIBDIR)
251         $(RANLIB) $(LIBDIR)/libcupsmime.a
252
253 install32bit:
254         echo Installing libraries in $(LIB32DIR)...
255         $(INSTALL_DIR) -m 755 $(LIB32DIR)
256         $(INSTALL_LIB) 32bit/libcupsmime.so.1 $(LIB32DIR)/libcupsmime.so.1
257         $(LN) libcupsmime.so.1 $(LIB32DIR)/libcupsmime.so
258
259 install64bit:
260         echo Installing libraries in $(LIB64DIR)...
261         $(INSTALL_DIR) -m 755 $(LIB64DIR)
262         $(INSTALL_LIB) 64bit/libcupsmime.so.1 $(LIB64DIR)/libcupsmime.so.1
263         $(LN) libcupsmime.so.1 $(LIB64DIR)/libcupsmime.so
264
265
266 #
267 # Uninstall the scheduler...
268 #
269
270 uninstall: $(UNINSTALL32) $(UNINSTALL64)
271         $(RM) $(SBINDIR)/cupsd
272         $(RM) $(SBINDIR)/cupsfilter
273         $(RM) $(SERVERBIN)/daemon/cups-deviced
274         $(RM) $(SERVERBIN)/daemon/cups-driverd
275         $(RM) $(SERVERBIN)/daemon/cups-lpd
276         $(RM) $(SERVERBIN)/daemon/cups-polld
277         $(RM) $(BUILDROOT)/System/Library/Printers/Libraries/convert
278         -$(RMDIR) $(STATEDIR)/certs
279         -$(RMDIR) $(STATEDIR)
280         -$(RMDIR) $(SERVERROOT)/ppd
281         -$(RMDIR) $(SERVERROOT)/interfaces
282         -$(RMDIR) $(SERVERROOT)
283         -$(RMDIR) $(SERVERBIN)/driver
284         -$(RMDIR) $(SERVERBIN)/daemon
285         -$(RMDIR) $(SERVERBIN)
286         -$(RMDIR) $(SBINDIR)
287         -$(RMDIR) $(REQUESTS)/tmp
288         -$(RMDIR) $(REQUESTS)
289         -$(RMDIR) $(LOGDIR)
290         -$(RMDIR) $(CACHEDIR)
291         $(RM) $(LIBDIR)/libcupsmime.1.dylib
292         $(RM) $(LIBDIR)/libcupsmime.a
293         $(RM) $(LIBDIR)/libcupsmime.dylib
294         $(RM) $(LIBDIR)/libcupsmime_s.a
295         $(RM) $(LIBDIR)/libcupsmime.sl
296         $(RM) $(LIBDIR)/libcupsmime.sl.1
297         $(RM) $(LIBDIR)/libcupsmime.so
298         $(RM) $(LIBDIR)/libcupsmime.so.1
299         -$(RMDIR) $(LIBDIR)
300         $(RM) $(INCLUDEDIR)/cups/mime.h
301         -$(RMDIR) $(INCLUDEDIR)/cups
302
303 uninstall32bit:
304         $(RM) $(LIB32DIR)/libcupsmime.so
305         $(RM) $(LIB32DIR)/libcupsmime.so.1
306         -$(RMDIR) $(LIB32DIR)
307
308 uninstall64bit:
309         $(RM) $(LIB64DIR)/libcupsmime.so
310         $(RM) $(LIB64DIR)/libcupsmime.so.1
311         -$(RMDIR) $(LIB64DIR)
312
313
314 #
315 # Automatic API help files...
316 #
317
318 apihelp:
319         mxmldoc --section "Programming" \
320                 --title "MIME API" \
321                 --css ../doc/cups-printable.css \
322                 --header api-mime.header --intro api-mime.shtml \
323                 mime.h $(LIBOBJS:.o=.c) >../doc/help/api-mime.html
324
325 framedhelp:
326         mxmldoc --framed api-mime \
327                 --section "Programming" \
328                 --title "MIME API" \
329                 --css ../doc/cups-printable.css \
330                 --header api-mime.header --intro api-mime.shtml \
331                 mime.h $(LIBOBJS:.o=.c)
332
333
334 #
335 # Make the scheduler executable, "cupsd".
336 #
337
338 cupsd:  $(CUPSDOBJS) $(LIBCUPSMIME) ../cups/$(LIBCUPS)
339         echo Linking $@...
340         $(CC) $(LDFLAGS) -o cupsd $(CUPSDOBJS) -L. -lcupsmime \
341                 $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \
342                 $(LIBPAPER) $(LIBMALLOC) $(CUPSDLIBS) $(DNSSDLIBS) $(LIBS) \
343                 $(LIBGSSAPI) $(LIBWRAP)
344
345 cupsd-static:   $(CUPSDOBJS) libcupsmime.a ../cups/libcups.a
346         echo Linking $@...
347         $(CC) $(LDFLAGS) -o cupsd-static $(CUPSDOBJS) libcupsmime.a \
348                 $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \
349                 ../cups/libcups.a $(COMMONLIBS) $(LIBZ) $(LIBPAPER) \
350                 $(LIBMALLOC) $(CUPSDLIBS) $(DNSSDLIBS) $(LIBGSSAPI) \
351                 $(LIBWRAP)
352
353
354 #
355 # Make the cupsfilter utility.
356 #
357
358 cupsfilter:     cupsfilter.o $(LIBCUPSMIME) ../cups/$(LIBCUPS)
359         echo Linking $@...
360         $(CC) $(LDFLAGS) -o cupsfilter cupsfilter.o -L. -lcupsmime $(LIBS)
361         $(RM) convert
362         $(LN) cupsfilter convert
363
364
365 #
366 # Make the device daemon, "cups-deviced".
367 #
368
369 cups-deviced:   cups-deviced.o util.o ../cups/$(LIBCUPS)
370         echo Linking $@...
371         $(CC) $(LDFLAGS) -o cups-deviced cups-deviced.o util.o $(LIBS)
372
373
374 #
375 # Make the driver daemon, "cups-driverd".
376 #
377
378 cups-driverd:   cups-driverd.o util.o ../cups/$(LIBCUPS) ../ppdc/$(LIBCUPSPPDC)
379         echo Linking $@...
380         $(CXX) $(LDFLAGS) -o cups-driverd cups-driverd.o util.o \
381                 -L../ppdc -lcupsppdc $(LIBS)
382
383
384 #
385 # Make the line printer daemon, "cups-lpd".
386 #
387
388 cups-lpd:       cups-lpd.o ../cups/$(LIBCUPS)
389         echo Linking $@...
390         $(CC) $(LDFLAGS) -o cups-lpd cups-lpd.o $(LIBS)
391
392
393 #
394 # Make the polling daemon, "cups-polld".
395 #
396
397 cups-polld:     cups-polld.o ../cups/$(LIBCUPS)
398         echo Linking $@...
399         $(CC) $(LDFLAGS) -o cups-polld cups-polld.o $(LIBS)
400
401
402 #
403 # libcupsmime.so.1, libcupsmime.sl.1
404 #
405
406 libcupsmime.so.1 libcupsmime.sl.1:      $(LIBOBJS)
407         echo Linking $@...
408         $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LIBS)
409         $(RM) `basename $@ .1`
410         $(LN) $@ `basename $@ .1`
411
412
413 #
414 # 32bit/libcupsmime.so.1
415 #
416
417 32bit/libcupsmime.so.1: $(LIB32OBJS)
418         echo Linking 32-bit $@...
419         -mkdir 32bit
420         $(DSO) $(ARCH32FLAGS) $(DSO32FLAGS) -o $@ $(LIB32OBJS) $(LIBS)
421         $(RM) 32bit/libcupsmime.so
422         $(LN) libcupsmime.so.1 32bit/libcupsmime.so
423
424
425 #
426 # 64bit/libcupsmime.so.1
427 #
428
429 64bit/libcupsmime.so.1: $(LIB64OBJS)
430         echo Linking 64-bit $@...
431         -mkdir 64bit
432         $(DSO) $(ARCH64FLAGS) $(DSO64FLAGS) -o $@ $(LIB64OBJS) $(LIBS)
433         $(RM) 64bit/libcupsmime.so
434         $(LN) libcupsmime.so.1 64bit/libcupsmime.so
435
436
437 #
438 # libcupsmime.1.dylib
439 #
440
441 libcupsmime.1.dylib:    $(LIBOBJS) libcupsmime.exp
442         echo Linking $@...
443         $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \
444                 -install_name $(libdir)/$@ \
445                 -current_version 1.0.0 \
446                 -compatibility_version 1.0.0 \
447                 -exported_symbols_list libcupsmime.exp \
448                 $(LIBOBJS) $(LIBS)
449         $(RM) libcupsmime.dylib
450         $(LN) $@ libcupsmime.dylib
451
452
453 #
454 # libcupsmime_s.a
455 #
456
457 libcupsmime_s.a:        $(LIBOBJS)
458         echo Creating $@...
459         $(DSO) $(DSOFLAGS) -o libcupsmime_s.o $(LIBOBJS) $(LIBS)
460         $(RM) $@
461         $(AR) $(ARFLAGS) $@ libcupsmime_s.o
462
463
464 #
465 # libcupsmime.la
466 #
467
468 libcupsmime.la:    $(LIBOBJS)
469         echo Linking $@...
470         $(CC) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) -rpath $(LIBDIR) \
471                 -version-info 1:0 $(LIBS)
472
473
474 #
475 # libcupsmime.a
476 #
477
478 libcupsmime.a:  $(LIBOBJS)
479         echo Archiving $@...
480         $(RM) $@
481         $(AR) $(ARFLAGS) $@ $(LIBOBJS)
482         $(RANLIB) $@
483
484
485 #
486 # Make the test program, "testdirsvc".
487 #
488
489 testdirsvc:     testdirsvc.o
490         echo Linking $@...
491         $(CC) $(LDFLAGS) -o testdirsvc testdirsvc.o $(COMMONLIBS) $(NETLIBS)
492
493
494 #
495 # Make the test program, "testlpd".
496 #
497
498 testlpd:        testlpd.o ../cups/libcups.a cups-lpd
499         echo Linking $@...
500         $(CC) $(LDFLAGS) -o testlpd testlpd.o ../cups/libcups.a \
501                 $(COMMONLIBS) $(LIBZ) $(SSLLIBS) $(LIBGSSAPI)
502
503
504 #
505 # testmime
506 #
507
508 testmime:       testmime.o libcupsmime.a ../cups/libcups.a
509         echo Linking $@...
510         $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testmime.o libcupsmime.a \
511                 ../cups/libcups.a $(COMMONLIBS) $(LIBZ) $(SSLLIBS) $(LIBGSSAPI)
512         echo Running MIME tests...
513         ./testmime
514
515
516 #
517 # Make the test program, "testspeed".
518 #
519
520 testspeed:      testspeed.o ../cups/libcups.a
521         echo Linking $@...
522         $(CC) $(LDFLAGS) -o testspeed testspeed.o ../cups/libcups.a \
523                 $(SSLLIBS) $(COMMONLIBS) $(LIBZ) $(LIBGSSAPI)
524
525
526 #
527 # Make the test program, "testsub".
528 #
529
530 testsub:        testsub.o ../cups/libcups.a
531         echo Linking $@...
532         $(CC) $(LDFLAGS) -o testsub testsub.o ../cups/libcups.a \
533                 $(SSLLIBS) $(COMMONLIBS) $(LIBZ) $(LIBGSSAPI)
534
535
536 #
537 # Dependencies...
538 #
539   
540 include Dependencies
541
542
543 #
544 # End of "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $".
545 #