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