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