]> git.ipfire.org Git - thirdparty/cups.git/blob - scheduler/Makefile
Merge changes from CUPS 1.6svn-r10310.
[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 avahi.o \
21 banners.o \
22 cert.o \
23 classes.o \
24 client.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 timeout.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 500 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 done \
228 fi
229
230
231 #
232 # Install headers...
233 #
234
235 install-headers:
236 echo Installing header files in $(INCLUDEDIR)/cups...
237 $(INSTALL_DIR) -m 755 $(INCLUDEDIR)/cups
238 $(INSTALL_DATA) mime.h $(INCLUDEDIR)/cups
239
240
241 #
242 # Install libraries...
243 #
244
245 install-libs: $(INSTALLSTATIC)
246 echo Installing libraries in $(LIBDIR)...
247 $(INSTALL_DIR) -m 755 $(LIBDIR)
248 $(INSTALL_LIB) $(LIBCUPSMIME) $(LIBDIR)
249 if test $(LIBCUPSMIME) = "libcupsmime.so.1" -o $(LIBCUPSMIME) = "libcupsmime.sl.1"; then \
250 $(RM) $(LIBDIR)/`basename $(LIBCUPSMIME) .1`; \
251 $(LN) $(LIBCUPSMIME) $(LIBDIR)/`basename $(LIBCUPSMIME) .1`; \
252 fi
253 if test $(LIBCUPSMIME) = "libcupsmime.1.dylib"; then \
254 $(RM) $(LIBDIR)/libcupsmime.dylib; \
255 $(LN) $(LIBCUPSMIME) $(LIBDIR)/libcupsmime.dylib; \
256 fi
257 if test "x$(SYMROOT)" != "x"; then \
258 $(INSTALL_DIR) $(SYMROOT); \
259 cp $(LIBCUPSMIME) $(SYMROOT); \
260 fi
261
262 installstatic:
263 $(INSTALL_DIR) -m 755 $(LIBDIR)
264 $(INSTALL_LIB) -m 755 libcupsmime.a $(LIBDIR)
265 $(RANLIB) $(LIBDIR)/libcupsmime.a
266 $(CHMOD) 555 $(LIBDIR)/libcupsmime.a
267
268
269 #
270 # Uninstall the scheduler...
271 #
272
273 uninstall:
274 $(RM) $(SBINDIR)/cupsd
275 $(RM) $(SBINDIR)/cupsfilter
276 $(RM) $(SERVERBIN)/daemon/cups-deviced
277 $(RM) $(SERVERBIN)/daemon/cups-driverd
278 $(RM) $(SERVERBIN)/daemon/cups-exec
279 $(RM) $(SERVERBIN)/daemon/cups-lpd
280 $(RM) $(BUILDROOT)/System/Library/Printers/Libraries/convert
281 -$(RMDIR) $(STATEDIR)/certs
282 -$(RMDIR) $(STATEDIR)
283 -$(RMDIR) $(SERVERROOT)/ppd
284 -$(RMDIR) $(SERVERROOT)/interfaces
285 -$(RMDIR) $(SERVERROOT)
286 -$(RMDIR) $(SERVERBIN)/driver
287 -$(RMDIR) $(SERVERBIN)/daemon
288 -$(RMDIR) $(SERVERBIN)
289 -$(RMDIR) $(SBINDIR)
290 -$(RMDIR) $(REQUESTS)/tmp
291 -$(RMDIR) $(REQUESTS)
292 -$(RMDIR) $(LOGDIR)
293 -$(RMDIR) $(CACHEDIR)
294 $(RM) $(LIBDIR)/libcupsmime.1.dylib
295 $(RM) $(LIBDIR)/libcupsmime.a
296 $(RM) $(LIBDIR)/libcupsmime.dylib
297 $(RM) $(LIBDIR)/libcupsmime_s.a
298 $(RM) $(LIBDIR)/libcupsmime.sl
299 $(RM) $(LIBDIR)/libcupsmime.sl.1
300 $(RM) $(LIBDIR)/libcupsmime.so
301 $(RM) $(LIBDIR)/libcupsmime.so.1
302 -$(RMDIR) $(LIBDIR)
303 $(RM) $(INCLUDEDIR)/cups/mime.h
304 -$(RMDIR) $(INCLUDEDIR)/cups
305 echo Uninstalling startup script...
306 if test "x$(INITDIR)" != x; then \
307 $(RM) $(BUILDROOT)$(INITDIR)/init.d/cups; \
308 $(RMDIR) $(BUILDROOT)$(INITDIR)/init.d; \
309 $(RM) $(BUILDROOT)$(INITDIR)/rc0.d/K00cups; \
310 $(RMDIR) $(BUILDROOT)$(INITDIR)/rc0.d; \
311 $(RM) $(BUILDROOT)$(INITDIR)/rc2.d/S99cups; \
312 $(RMDIR) $(BUILDROOT)$(INITDIR)/rc2.d; \
313 $(RM) $(BUILDROOT)$(INITDIR)/rc3.d/S99cups; \
314 $(RMDIR) $(BUILDROOT)$(INITDIR)/rc3.d; \
315 $(RM) $(BUILDROOT)$(INITDIR)/rc5.d/S99cups; \
316 $(RMDIR) $(BUILDROOT)$(INITDIR)/rc5.d; \
317 fi
318 if test "x$(INITDIR)" = x -a "x$(INITDDIR)" != x; then \
319 if test "$(INITDDIR)" = "/System/Library/StartupItems/PrintingServices"; then \
320 $(RM) $(BUILDROOT)$(INITDDIR)/PrintingServices; \
321 $(RM) $(BUILDROOT)$(INITDDIR)/StartupParameters.plist; \
322 $(RM) $(BUILDROOT)$(INITDDIR)/Resources/English.lproj/Localizable.strings; \
323 $(RMDIR) $(BUILDROOT)$(INITDDIR)/Resources/English.lproj; \
324 elif test "$(INITDDIR)" = "/System/Library/LaunchDaemons"; then \
325 $(RM) $(BUILDROOT)$(INITDDIR)/org.cups.cupsd.plist; \
326 $(RM) $(BUILDROOT)$(INITDDIR)/org.cups.cups-lpd.plist; \
327 $(RMDIR) $(BUILDROOT)/System/Library/StartupItems/PrintingServices; \
328 else \
329 $(INSTALL_SCRIPT) init/cups.sh $(BUILDROOT)$(INITDDIR)/cups; \
330 fi \
331 $(RMDIR) $(BUILDROOT)$(INITDDIR); \
332 fi
333 if test "x$(SMFMANIFESTDIR)" != x; then \
334 echo Uninstalling SMF manifest in $(SMFMANIFESTDIR)...;\
335 $(RM) $(BUILDROOT)$(SMFMANIFESTDIR)/cups.xml; \
336 fi
337 if test "x$(XINETD)" != x; then \
338 echo Uninstalling xinetd configuration file for cups-lpd...; \
339 $(RM) $(BUILDROOT)$(XINETD)/cups-lpd; \
340 fi
341
342
343 #
344 # Automatic API help files...
345 #
346
347 apihelp:
348 mxmldoc --section "Programming" \
349 --title "MIME API" \
350 --css ../doc/cups-printable.css \
351 --header api-mime.header --intro api-mime.shtml \
352 mime.h $(LIBOBJS:.o=.c) >../doc/help/api-mime.html
353 mxmldoc --tokens help/api-mime.html api-mime.xml >../doc/help/api-mime.tokens
354 $(RM) api-mime.xml
355
356 framedhelp:
357 mxmldoc --framed api-mime \
358 --section "Programming" \
359 --title "MIME API" \
360 --css ../doc/cups-printable.css \
361 --header api-mime.header --intro api-mime.shtml \
362 mime.h $(LIBOBJS:.o=.c)
363
364
365 #
366 # Make the scheduler executable, "cupsd".
367 #
368
369 cupsd: $(CUPSDOBJS) $(LIBCUPSMIME) ../cups/$(LIBCUPS)
370 echo Linking $@...
371 $(CC) $(LDFLAGS) -o cupsd $(CUPSDOBJS) -L. -lcupsmime \
372 $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \
373 $(LIBPAPER) $(LIBMALLOC) $(SERVERLIBS) $(DNSSDLIBS) $(LIBS) \
374 $(LIBGSSAPI) $(LIBWRAP)
375
376 cupsd-static: $(CUPSDOBJS) libcupsmime.a ../cups/$(LIBCUPSSTATIC)
377 echo Linking $@...
378 $(CC) $(LDFLAGS) -o cupsd-static $(CUPSDOBJS) libcupsmime.a \
379 $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \
380 ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(LIBZ) $(LIBPAPER) \
381 $(LIBMALLOC) $(SERVERLIBS) $(DNSSDLIBS) $(LIBGSSAPI) \
382 $(LIBWRAP)
383
384
385 #
386 # Make the cupsfilter utility.
387 #
388
389 cupsfilter: cupsfilter.o $(LIBCUPSMIME) ../cups/$(LIBCUPS)
390 echo Linking $@...
391 $(CC) $(LDFLAGS) -o cupsfilter cupsfilter.o -L. -lcupsmime $(LIBS)
392 $(RM) convert
393 $(LN) cupsfilter convert
394
395
396 #
397 # Make the device daemon, "cups-deviced".
398 #
399
400 cups-deviced: cups-deviced.o util.o ../cups/$(LIBCUPS)
401 echo Linking $@...
402 $(CC) $(LDFLAGS) -o cups-deviced cups-deviced.o util.o $(LIBS)
403
404
405 #
406 # Make the driver daemon, "cups-driverd".
407 #
408
409 cups-driverd: cups-driverd.o util.o ../cups/$(LIBCUPS) ../ppdc/$(LIBCUPSPPDC)
410 echo Linking $@...
411 $(CXX) $(LDFLAGS) -o cups-driverd cups-driverd.o util.o \
412 -L../ppdc -lcupsppdc $(LIBS)
413
414
415 #
416 # Make the sandbox execution helper, "cups-exec".
417 #
418
419 cups-exec: cups-exec.o
420 echo Linking $@...
421 $(CC) $(LDFLAGS) -o cups-exec cups-exec.o $(LIBS)
422
423
424 #
425 # Make the line printer daemon, "cups-lpd".
426 #
427
428 cups-lpd: cups-lpd.o ../cups/$(LIBCUPS)
429 echo Linking $@...
430 $(CC) $(LDFLAGS) -o cups-lpd cups-lpd.o $(LIBS)
431
432
433 #
434 # libcupsmime.so.1, libcupsmime.sl.1
435 #
436
437 libcupsmime.so.1 libcupsmime.sl.1: $(LIBOBJS)
438 echo Linking $@...
439 $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LIBS)
440 $(RM) `basename $@ .1`
441 $(LN) $@ `basename $@ .1`
442
443
444 #
445 # libcupsmime.1.dylib
446 #
447
448 libcupsmime.1.dylib: $(LIBOBJS) libcupsmime.exp
449 echo Linking $@...
450 $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \
451 -install_name $(libdir)/$@ \
452 -current_version 1.0.0 \
453 -compatibility_version 1.0.0 \
454 -exported_symbols_list libcupsmime.exp \
455 $(LIBOBJS) $(LIBS)
456 $(RM) libcupsmime.dylib
457 $(LN) $@ libcupsmime.dylib
458
459
460 #
461 # libcupsmime_s.a
462 #
463
464 libcupsmime_s.a: $(LIBOBJS)
465 echo Creating $@...
466 $(DSO) $(DSOFLAGS) -o libcupsmime_s.o $(LIBOBJS) $(LIBS)
467 $(RM) $@
468 $(AR) $(ARFLAGS) $@ libcupsmime_s.o
469
470
471 #
472 # libcupsmime.la
473 #
474
475 libcupsmime.la: $(LIBOBJS)
476 echo Linking $@...
477 $(CC) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) -rpath $(LIBDIR) \
478 -version-info 1:0 $(LIBS)
479
480
481 #
482 # libcupsmime.a
483 #
484
485 libcupsmime.a: $(LIBOBJS)
486 echo Archiving $@...
487 $(RM) $@
488 $(AR) $(ARFLAGS) $@ $(LIBOBJS)
489 $(RANLIB) $@
490
491
492 #
493 # Make the test program, "testlpd".
494 #
495
496 testlpd: testlpd.o ../cups/$(LIBCUPSSTATIC) cups-lpd
497 echo Linking $@...
498 $(CC) $(LDFLAGS) -o testlpd testlpd.o ../cups/$(LIBCUPSSTATIC) \
499 $(COMMONLIBS) $(LIBZ) $(SSLLIBS) $(DNSSDLIBS) $(LIBGSSAPI)
500
501
502 #
503 # testmime
504 #
505
506 testmime: testmime.o libcupsmime.a ../cups/$(LIBCUPSSTATIC)
507 echo Linking $@...
508 $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testmime.o libcupsmime.a \
509 ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(LIBZ) $(SSLLIBS) \
510 $(DNSSDLIBS) $(LIBGSSAPI)
511 echo Running MIME tests...
512 ./testmime
513
514
515 #
516 # Make the test program, "testspeed".
517 #
518
519 testspeed: testspeed.o ../cups/$(LIBCUPSSTATIC)
520 echo Linking $@...
521 $(CC) $(LDFLAGS) -o testspeed testspeed.o ../cups/$(LIBCUPSSTATIC) \
522 $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) $(LIBGSSAPI)
523
524
525 #
526 # Make the test program, "testsub".
527 #
528
529 testsub: testsub.o ../cups/$(LIBCUPSSTATIC)
530 echo Linking $@...
531 $(CC) $(LDFLAGS) -o testsub testsub.o ../cups/$(LIBCUPSSTATIC) \
532 $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) $(LIBGSSAPI)
533
534
535 #
536 # Lines of code computation...
537 #
538
539 sloc:
540 echo "cupsd: \c"
541 sloccount $(CUPSDOBJS:.o=.c) $(LIBOBJS:.o=.c) cups-driverd.cxx cups-lpd.c 2>/dev/null | grep "Total Physical" | awk '{print $$9}'
542
543
544 #
545 # Dependencies...
546 #
547
548 include Dependencies
549
550
551 #
552 # End of "$Id: Makefile 7875 2008-08-27 22:53:31Z mike $".
553 #