]> git.ipfire.org Git - thirdparty/cups.git/blob - scheduler/Makefile
Merge changes from CUPS 1.5svn-r9000.
[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-2010 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 COBJS = \
48 $(CUPSDOBJS) \
49 $(LIBOBJS) \
50 cupsfilter.o \
51 cups-deviced.o \
52 cups-lpd.o \
53 cups-polld.o \
54 testdirsvc.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 testdirsvc \
71 testlpd \
72 testmime \
73 testspeed \
74 testsub
75
76 DAEMONS = \
77 cupsd \
78 cupsfilter \
79 cups-deviced \
80 cups-driverd \
81 cups-lpd \
82 cups-polld
83
84 TARGETS = \
85 $(LIBTARGETS) \
86 $(DAEMONS)
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 makedepend -Y -I.. -fDependencies $(COBJS:.o=.c) \
126 $(CXXOBJS:.o=.cxx) >/dev/null 2>&1
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 -if test "x`uname`" = xDarwin; then \
217 $(INSTALL_DIR) $(BUILDROOT)/System/Library/Printers/Libraries; \
218 $(LN) $(sbindir)/cupsfilter $(BUILDROOT)/System/Library/Printers/Libraries/convert; \
219 fi
220 echo Installing programs in $(SERVERBIN)/daemon...
221 $(INSTALL_DIR) -m 755 $(SERVERBIN)
222 $(INSTALL_DIR) -m 755 $(SERVERBIN)/daemon
223 $(INSTALL_BIN) cups-deviced $(SERVERBIN)/daemon
224 $(INSTALL_BIN) cups-driverd $(SERVERBIN)/daemon
225 $(INSTALL_BIN) cups-lpd $(SERVERBIN)/daemon
226 $(INSTALL_BIN) cups-polld $(SERVERBIN)/daemon
227 if test "x$(SYMROOT)" != "x"; then \
228 $(INSTALL_DIR) $(SYMROOT); \
229 for file in $(DAEMONS); do \
230 cp $$file $(SYMROOT); \
231 done \
232 fi
233
234
235 #
236 # Install headers...
237 #
238
239 install-headers:
240 echo Installing header files in $(INCLUDEDIR)/cups...
241 $(INSTALL_DIR) -m 755 $(INCLUDEDIR)/cups
242 $(INSTALL_DATA) mime.h $(INCLUDEDIR)/cups
243
244
245 #
246 # Install libraries...
247 #
248
249 install-libs: $(INSTALLSTATIC)
250 echo Installing libraries in $(LIBDIR)...
251 $(INSTALL_DIR) -m 755 $(LIBDIR)
252 $(INSTALL_LIB) $(LIBCUPSMIME) $(LIBDIR)
253 if test $(LIBCUPSMIME) = "libcupsmime.so.1" -o $(LIBCUPSMIME) = "libcupsmime.sl.1"; then \
254 $(RM) $(LIBDIR)/`basename $(LIBCUPSMIME) .1`; \
255 $(LN) $(LIBCUPSMIME) $(LIBDIR)/`basename $(LIBCUPSMIME) .1`; \
256 fi
257 if test $(LIBCUPSMIME) = "libcupsmime.1.dylib"; then \
258 $(RM) $(LIBDIR)/libcupsmime.dylib; \
259 $(LN) $(LIBCUPSMIME) $(LIBDIR)/libcupsmime.dylib; \
260 fi
261 if test "x$(SYMROOT)" != "x"; then \
262 $(INSTALL_DIR) $(SYMROOT); \
263 cp $(LIBCUPSMIME) $(SYMROOT); \
264 fi
265
266 installstatic:
267 $(INSTALL_DIR) -m 755 $(LIBDIR)
268 $(INSTALL_LIB) -m 755 libcupsmime.a $(LIBDIR)
269 $(RANLIB) $(LIBDIR)/libcupsmime.a
270 $(CHMOD) 555 $(LIBDIR)/libcupsmime.a
271
272
273 #
274 # Uninstall the scheduler...
275 #
276
277 uninstall:
278 $(RM) $(SBINDIR)/cupsd
279 $(RM) $(SBINDIR)/cupsfilter
280 $(RM) $(SERVERBIN)/daemon/cups-deviced
281 $(RM) $(SERVERBIN)/daemon/cups-driverd
282 $(RM) $(SERVERBIN)/daemon/cups-lpd
283 $(RM) $(SERVERBIN)/daemon/cups-polld
284 $(RM) $(BUILDROOT)/System/Library/Printers/Libraries/convert
285 -$(RMDIR) $(STATEDIR)/certs
286 -$(RMDIR) $(STATEDIR)
287 -$(RMDIR) $(SERVERROOT)/ppd
288 -$(RMDIR) $(SERVERROOT)/interfaces
289 -$(RMDIR) $(SERVERROOT)
290 -$(RMDIR) $(SERVERBIN)/driver
291 -$(RMDIR) $(SERVERBIN)/daemon
292 -$(RMDIR) $(SERVERBIN)
293 -$(RMDIR) $(SBINDIR)
294 -$(RMDIR) $(REQUESTS)/tmp
295 -$(RMDIR) $(REQUESTS)
296 -$(RMDIR) $(LOGDIR)
297 -$(RMDIR) $(CACHEDIR)
298 $(RM) $(LIBDIR)/libcupsmime.1.dylib
299 $(RM) $(LIBDIR)/libcupsmime.a
300 $(RM) $(LIBDIR)/libcupsmime.dylib
301 $(RM) $(LIBDIR)/libcupsmime_s.a
302 $(RM) $(LIBDIR)/libcupsmime.sl
303 $(RM) $(LIBDIR)/libcupsmime.sl.1
304 $(RM) $(LIBDIR)/libcupsmime.so
305 $(RM) $(LIBDIR)/libcupsmime.so.1
306 -$(RMDIR) $(LIBDIR)
307 $(RM) $(INCLUDEDIR)/cups/mime.h
308 -$(RMDIR) $(INCLUDEDIR)/cups
309 echo Uninstalling startup script...
310 if test "x$(INITDIR)" != x; then \
311 $(RM) $(BUILDROOT)$(INITDIR)/init.d/cups; \
312 $(RMDIR) $(BUILDROOT)$(INITDIR)/init.d; \
313 $(RM) $(BUILDROOT)$(INITDIR)/rc0.d/K00cups; \
314 $(RMDIR) $(BUILDROOT)$(INITDIR)/rc0.d; \
315 $(RM) $(BUILDROOT)$(INITDIR)/rc2.d/S99cups; \
316 $(RMDIR) $(BUILDROOT)$(INITDIR)/rc2.d; \
317 $(RM) $(BUILDROOT)$(INITDIR)/rc3.d/S99cups; \
318 $(RMDIR) $(BUILDROOT)$(INITDIR)/rc3.d; \
319 $(RM) $(BUILDROOT)$(INITDIR)/rc5.d/S99cups; \
320 $(RMDIR) $(BUILDROOT)$(INITDIR)/rc5.d; \
321 fi
322 if test "x$(INITDIR)" = x -a "x$(INITDDIR)" != x; then \
323 if test "$(INITDDIR)" = "/System/Library/StartupItems/PrintingServices"; then \
324 $(RM) $(BUILDROOT)$(INITDDIR)/PrintingServices; \
325 $(RM) $(BUILDROOT)$(INITDDIR)/StartupParameters.plist; \
326 $(RM) $(BUILDROOT)$(INITDDIR)/Resources/English.lproj/Localizable.strings; \
327 $(RMDIR) $(BUILDROOT)$(INITDDIR)/Resources/English.lproj; \
328 elif test "$(INITDDIR)" = "/System/Library/LaunchDaemons"; then \
329 $(RM) $(BUILDROOT)$(INITDDIR)/org.cups.cupsd.plist; \
330 $(RM) $(BUILDROOT)$(INITDDIR)/org.cups.cups-lpd.plist; \
331 $(RMDIR) $(BUILDROOT)/System/Library/StartupItems/PrintingServices; \
332 else \
333 $(INSTALL_SCRIPT) init/cups.sh $(BUILDROOT)$(INITDDIR)/cups; \
334 fi \
335 $(RMDIR) $(BUILDROOT)$(INITDDIR); \
336 fi
337 if test "x$(SMFMANIFESTDIR)" != x; then \
338 echo Uninstalling SMF manifest in $(SMFMANIFESTDIR)...;\
339 $(RM) $(BUILDROOT)$(SMFMANIFESTDIR)/cups.xml; \
340 fi
341 if test "x$(XINETD)" != x; then \
342 echo Uninstalling xinetd configuration file for cups-lpd...; \
343 $(RM) $(BUILDROOT)$(XINETD)/cups-lpd; \
344 fi
345
346
347 #
348 # Automatic API help files...
349 #
350
351 apihelp:
352 mxmldoc --section "Programming" \
353 --title "MIME API" \
354 --css ../doc/cups-printable.css \
355 --header api-mime.header --intro api-mime.shtml \
356 mime.h $(LIBOBJS:.o=.c) >../doc/help/api-mime.html
357 mxmldoc --tokens help/api-mime.html api-mime.xml >../doc/help/api-mime.tokens
358 $(RM) api-mime.xml
359
360 framedhelp:
361 mxmldoc --framed api-mime \
362 --section "Programming" \
363 --title "MIME API" \
364 --css ../doc/cups-printable.css \
365 --header api-mime.header --intro api-mime.shtml \
366 mime.h $(LIBOBJS:.o=.c)
367
368
369 #
370 # Make the scheduler executable, "cupsd".
371 #
372
373 cupsd: $(CUPSDOBJS) $(LIBCUPSMIME) ../cups/$(LIBCUPS)
374 echo Linking $@...
375 $(CC) $(LDFLAGS) -o cupsd $(CUPSDOBJS) -L. -lcupsmime \
376 $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \
377 $(LIBPAPER) $(LIBMALLOC) $(CUPSDLIBS) $(DNSSDLIBS) $(LIBS) \
378 $(LIBGSSAPI) $(LIBWRAP)
379
380 cupsd-static: $(CUPSDOBJS) libcupsmime.a ../cups/$(LIBCUPSSTATIC)
381 echo Linking $@...
382 $(CC) $(LDFLAGS) -o cupsd-static $(CUPSDOBJS) libcupsmime.a \
383 $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \
384 ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(LIBZ) $(LIBPAPER) \
385 $(LIBMALLOC) $(CUPSDLIBS) $(DNSSDLIBS) $(LIBGSSAPI) \
386 $(LIBWRAP)
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 line printer daemon, "cups-lpd".
421 #
422
423 cups-lpd: cups-lpd.o ../cups/$(LIBCUPS)
424 echo Linking $@...
425 $(CC) $(LDFLAGS) -o cups-lpd cups-lpd.o $(LIBS)
426
427
428 #
429 # Make the polling daemon, "cups-polld".
430 #
431
432 cups-polld: cups-polld.o ../cups/$(LIBCUPS)
433 echo Linking $@...
434 $(CC) $(LDFLAGS) -o cups-polld cups-polld.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, "testdirsvc".
498 #
499
500 testdirsvc: testdirsvc.o
501 echo Linking $@...
502 $(CC) $(LDFLAGS) -o testdirsvc testdirsvc.o $(COMMONLIBS) $(NETLIBS)
503
504
505 #
506 # Make the test program, "testlpd".
507 #
508
509 testlpd: testlpd.o ../cups/$(LIBCUPSSTATIC) cups-lpd
510 echo Linking $@...
511 $(CC) $(LDFLAGS) -o testlpd testlpd.o ../cups/$(LIBCUPSSTATIC) \
512 $(COMMONLIBS) $(LIBZ) $(SSLLIBS) $(DNSSDLIBS) $(LIBGSSAPI)
513
514
515 #
516 # testmime
517 #
518
519 testmime: testmime.o libcupsmime.a ../cups/$(LIBCUPSSTATIC)
520 echo Linking $@...
521 $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testmime.o libcupsmime.a \
522 ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(LIBZ) $(SSLLIBS) \
523 $(DNSSDLIBS) $(LIBGSSAPI)
524 echo Running MIME tests...
525 ./testmime
526
527
528 #
529 # Make the test program, "testspeed".
530 #
531
532 testspeed: testspeed.o ../cups/$(LIBCUPSSTATIC)
533 echo Linking $@...
534 $(CC) $(LDFLAGS) -o testspeed testspeed.o ../cups/$(LIBCUPSSTATIC) \
535 $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) $(LIBGSSAPI)
536
537
538 #
539 # Make the test program, "testsub".
540 #
541
542 testsub: testsub.o ../cups/$(LIBCUPSSTATIC)
543 echo Linking $@...
544 $(CC) $(LDFLAGS) -o testsub testsub.o ../cups/$(LIBCUPSSTATIC) \
545 $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) $(LIBGSSAPI)
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 #