]> git.ipfire.org Git - thirdparty/cups.git/blob - scheduler/Makefile
Merge changes from CUPS 1.6svn-r10112.
[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-2011 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 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-exec.o \
53 cups-lpd.o \
54 testlpd.o \
55 testmime.o \
56 testspeed.o \
57 testsub.o \
58 util.o
59 CXXOBJS = \
60 cups-driverd.o
61 OBJS = \
62 $(COBJS) \
63 $(CXXOBJS)
64 LIBTARGETS = \
65 $(LIBCUPSMIME) \
66 libcupsmime.a
67
68 UNITTARGETS = \
69 testlpd \
70 testmime \
71 testspeed \
72 testsub
73
74 PROGRAMS = \
75 cupsd \
76 cupsfilter \
77 cups-deviced \
78 cups-driverd \
79 cups-exec \
80 cups-lpd
81
82 TARGETS = \
83 $(LIBTARGETS) \
84 $(PROGRAMS)
85
86
87 #
88 # Make everything...
89 #
90
91 all: $(TARGETS)
92
93
94 #
95 # Make library targets...
96 #
97
98 libs: $(LIBTARGETS)
99
100
101 #
102 # Make unit tests...
103 #
104
105 unittests: $(UNITTARGETS)
106
107
108 #
109 # Clean all object files...
110 #
111
112 clean:
113 $(RM) $(OBJS)
114 $(RM) $(TARGETS) $(UNITTARGETS) convert
115 $(RM) libcupsmime.so libcupsmime.sl libcupsmime.dylib
116
117
118 #
119 # Update dependencies (without system header dependencies...)
120 #
121
122 depend:
123 makedepend -Y -I.. -fDependencies $(COBJS:.o=.c) \
124 $(CXXOBJS:.o=.cxx) >/dev/null 2>&1
125
126
127 #
128 # Install all targets...
129 #
130
131 install: all install-data install-headers install-libs install-exec
132
133
134 #
135 # Install data files...
136 #
137
138 install-data:
139 echo Creating $(SERVERBIN)/driver...
140 $(INSTALL_DIR) -m 755 $(SERVERBIN)/driver
141 echo Creating $(SERVERROOT)...
142 $(INSTALL_DIR) -m 755 -g $(CUPS_GROUP) $(SERVERROOT)
143 echo Creating $(SERVERROOT)/interfaces...
144 $(INSTALL_DIR) -m 755 -g $(CUPS_GROUP) $(SERVERROOT)/interfaces
145 echo Creating $(SERVERROOT)/ppd...
146 $(INSTALL_DIR) -m 755 -g $(CUPS_GROUP) $(SERVERROOT)/ppd
147 if test "x`uname`" != xDarwin; then \
148 echo Creating $(SERVERROOT)/ssl...; \
149 $(INSTALL_DIR) -m 700 -g $(CUPS_GROUP) $(SERVERROOT)/ssl; \
150 fi
151 if test "$(STATEDIR)" != "$(SERVERROOT)"; then \
152 echo Creating $(STATEDIR)...; \
153 $(INSTALL_DIR) -m 755 $(STATEDIR); \
154 fi
155 echo Creating $(STATEDIR)/certs...
156 $(INSTALL_DIR) -m 511 -o $(CUPS_USER) -g $(CUPS_PRIMARY_SYSTEM_GROUP) \
157 $(STATEDIR)/certs
158 echo Creating $(LOGDIR)...
159 $(INSTALL_DIR) -m 755 $(LOGDIR)
160 echo Creating $(REQUESTS)...
161 $(INSTALL_DIR) -m 710 -g $(CUPS_GROUP) $(REQUESTS)
162 echo Creating $(REQUESTS)/tmp...
163 $(INSTALL_DIR) -m 1770 -g $(CUPS_GROUP) $(REQUESTS)/tmp
164 echo Creating $(CACHEDIR)...
165 $(INSTALL_DIR) -m 775 -g $(CUPS_GROUP) $(CACHEDIR)
166 if test "x$(INITDIR)" != x; then \
167 echo Installing init scripts...; \
168 $(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDIR)/init.d; \
169 $(INSTALL_SCRIPT) cups.sh $(BUILDROOT)$(INITDIR)/init.d/cups; \
170 for level in $(RCLEVELS); do \
171 $(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDIR)/rc$${level}.d; \
172 $(LN) ../init.d/cups $(BUILDROOT)$(INITDIR)/rc$${level}.d/S$(RCSTART)cups; \
173 if test `uname` = HP-UX; then \
174 level=`expr $$level - 1`; \
175 $(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDIR)/rc$${level}.d; \
176 fi; \
177 $(LN) ../init.d/cups $(BUILDROOT)$(INITDIR)/rc$${level}.d/K$(RCSTOP)cups; \
178 done; \
179 $(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDIR)/rc0.d; \
180 $(LN) ../init.d/cups $(BUILDROOT)$(INITDIR)/rc0.d/K$(RCSTOP)cups; \
181 fi
182 if test "x$(INITDIR)" = x -a "x$(INITDDIR)" != x; then \
183 $(INSTALL_DIR) $(BUILDROOT)$(INITDDIR); \
184 if test "$(INITDDIR)" = "/System/Library/LaunchDaemons"; then \
185 echo Installing LaunchDaemons configuration files...; \
186 $(INSTALL_DATA) org.cups.cupsd.plist $(BUILDROOT)$(DEFAULT_LAUNCHD_CONF); \
187 $(INSTALL_DATA) org.cups.cups-lpd.plist $(BUILDROOT)/System/Library/LaunchDaemons; \
188 else \
189 echo Installing RC script...; \
190 $(INSTALL_SCRIPT) cups.sh $(BUILDROOT)$(INITDDIR)/cups; \
191 fi \
192 fi
193 if test "x$(SMFMANIFESTDIR)" != x; then \
194 echo Installing SMF manifest in $(SMFMANIFESTDIR)...;\
195 $(INSTALL_DIR) $(BUILDROOT)/$(SMFMANIFESTDIR); \
196 $(INSTALL_SCRIPT) cups.xml $(BUILDROOT)$(SMFMANIFESTDIR)/cups.xml; \
197 fi
198 if test "x$(XINETD)" != x; then \
199 echo Installing xinetd configuration file for cups-lpd...; \
200 $(INSTALL_DIR) -m 755 $(BUILDROOT)$(XINETD); \
201 $(INSTALL_DATA) cups-lpd.xinetd $(BUILDROOT)$(XINETD)/cups-lpd; \
202 fi
203
204
205 #
206 # Install programs...
207 #
208
209 install-exec:
210 echo Installing programs in $(SBINDIR)...
211 $(INSTALL_DIR) -m 755 $(SBINDIR)
212 $(INSTALL_BIN) -m 500 cupsd $(SBINDIR)
213 $(INSTALL_BIN) cupsfilter $(SBINDIR)
214 echo Installing programs in $(SERVERBIN)/daemon...
215 $(INSTALL_DIR) -m 755 $(SERVERBIN)
216 $(INSTALL_DIR) -m 755 $(SERVERBIN)/daemon
217 $(INSTALL_BIN) cups-deviced $(SERVERBIN)/daemon
218 $(INSTALL_BIN) cups-driverd $(SERVERBIN)/daemon
219 $(INSTALL_BIN) cups-exec $(SERVERBIN)/daemon
220 $(INSTALL_BIN) cups-lpd $(SERVERBIN)/daemon
221 $(INSTALL_BIN) cups-polld $(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) $(SERVERBIN)/daemon/cups-polld
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-polld.c 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 #