]> git.ipfire.org Git - thirdparty/cups.git/blob - scheduler/Makefile
Remove all of the Subversion keywords from various source files.
[thirdparty/cups.git] / scheduler / Makefile
1 #
2 # Scheduler Makefile for CUPS.
3 #
4 # Copyright 2007-2015 by Apple Inc.
5 # Copyright 1997-2007 by Easy Software Products, all rights reserved.
6 #
7 # These coded instructions, statements, and computer programs are the
8 # property of Apple Inc. and are protected by Federal copyright
9 # law. Distribution and use rights are outlined in the file "LICENSE.txt"
10 # which should have been included with this file. If this file is
11 # file is missing or damaged, see the license at "http://www.cups.org/".
12 #
13
14 include ../Makedefs
15
16 CUPSDOBJS = \
17 auth.o \
18 banners.o \
19 cert.o \
20 classes.o \
21 client.o \
22 colorman.o \
23 conf.o \
24 dirsvc.o \
25 env.o \
26 file.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 select.o \
38 server.o \
39 statbuf.o \
40 subscriptions.o \
41 sysman.o
42 LIBOBJS = \
43 filter.o \
44 mime.o \
45 type.o
46 COBJS = \
47 $(CUPSDOBJS) \
48 $(LIBOBJS) \
49 cupsfilter.o \
50 cups-deviced.o \
51 cups-exec.o \
52 cups-lpd.o \
53 testlpd.o \
54 testmime.o \
55 testspeed.o \
56 testsub.o \
57 util.o
58 CXXOBJS = \
59 cups-driverd.o
60 OBJS = \
61 $(COBJS) \
62 $(CXXOBJS)
63 LIBTARGETS = \
64 $(LIBCUPSMIME) \
65 libcupsmime.a
66
67 UNITTARGETS = \
68 testlpd \
69 testmime \
70 testspeed \
71 testsub
72
73 PROGRAMS = \
74 cupsd \
75 cupsfilter \
76 cups-deviced \
77 cups-driverd \
78 cups-exec \
79 cups-lpd
80
81 TARGETS = \
82 $(LIBTARGETS) \
83 $(PROGRAMS)
84
85
86 #
87 # Make everything...
88 #
89
90 all: $(TARGETS)
91
92
93 #
94 # Make library targets...
95 #
96
97 libs: $(LIBTARGETS)
98
99
100 #
101 # Make unit tests...
102 #
103
104 unittests: $(UNITTARGETS)
105
106
107 #
108 # Clean all object files...
109 #
110
111 clean:
112 $(RM) $(OBJS)
113 $(RM) $(TARGETS) $(UNITTARGETS) convert
114 $(RM) libcupsmime.so libcupsmime.dylib
115
116
117 #
118 # Update dependencies (without system header dependencies...)
119 #
120
121 depend:
122 $(CC) -MM $(ALL_CFLAGS) $(COBJS:.o=.c) >Dependencies
123 $(CXX) -MM $(ALL_CXXFLAGS) $(CXXOBJS:.o=.cxx) >>Dependencies
124
125
126 #
127 # Run oclint to check code coverage...
128 #
129
130 oclint:
131 oclint -o=oclint.html -html $(CUPSDOBJS:.o=.c) $(LIBOBJS:.o=.c) -- $(ALL_CFLAGS)
132
133
134 #
135 # Install all targets...
136 #
137
138 install: all install-data install-headers install-libs install-exec
139
140
141 #
142 # Install data files...
143 #
144
145 install-data:
146 echo Creating $(SERVERBIN)/driver...
147 $(INSTALL_DIR) -m 755 $(SERVERBIN)/driver
148 echo Creating $(SERVERROOT)...
149 $(INSTALL_DIR) -m 755 -g $(CUPS_GROUP) $(SERVERROOT)
150 echo Creating $(SERVERROOT)/ppd...
151 $(INSTALL_DIR) -m 755 -g $(CUPS_GROUP) $(SERVERROOT)/ppd
152 if test "x`uname`" != xDarwin; then \
153 echo Creating $(SERVERROOT)/ssl...; \
154 $(INSTALL_DIR) -m 700 -g $(CUPS_GROUP) $(SERVERROOT)/ssl; \
155 fi
156 if test "$(STATEDIR)" != "$(SERVERROOT)"; then \
157 echo Creating $(STATEDIR)...; \
158 $(INSTALL_DIR) -m 755 $(STATEDIR); \
159 fi
160 echo Creating $(STATEDIR)/certs...
161 $(INSTALL_DIR) -m 511 -o $(CUPS_USER) -g $(CUPS_PRIMARY_SYSTEM_GROUP) \
162 $(STATEDIR)/certs
163 echo Creating $(LOGDIR)...
164 $(INSTALL_DIR) -m 755 $(LOGDIR)
165 echo Creating $(REQUESTS)...
166 $(INSTALL_DIR) -m 710 -g $(CUPS_GROUP) $(REQUESTS)
167 echo Creating $(REQUESTS)/tmp...
168 $(INSTALL_DIR) -m 1770 -g $(CUPS_GROUP) $(REQUESTS)/tmp
169 echo Creating $(CACHEDIR)...
170 $(INSTALL_DIR) -m 770 -g $(CUPS_GROUP) $(CACHEDIR)
171 if test "x$(INITDIR)" != x; then \
172 echo Installing init scripts...; \
173 $(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDIR)/init.d; \
174 $(INSTALL_SCRIPT) cups.sh $(BUILDROOT)$(INITDIR)/init.d/cups; \
175 for level in $(RCLEVELS); do \
176 $(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDIR)/rc$${level}.d; \
177 $(LN) ../init.d/cups $(BUILDROOT)$(INITDIR)/rc$${level}.d/S$(RCSTART)cups; \
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$(INITDDIR)" != x; then \
184 echo Installing init script...; \
185 $(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDDIR); \
186 $(INSTALL_SCRIPT) cups.sh $(BUILDROOT)$(INITDDIR); \
187 fi
188 if test "x$(LAUNCHD_DIR)" != x; then \
189 echo Installing launchd configuration files...; \
190 $(INSTALL_DIR) $(BUILDROOT)$(LAUNCHD_DIR); \
191 $(INSTALL_DATA) org.cups.cupsd.plist $(BUILDROOT)$(LAUNCHD_DIR); \
192 $(INSTALL_DATA) org.cups.cups-lpd.plist $(BUILDROOT)$(LAUNCHD_DIR); \
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$(SYSTEMD_DIR)" != x; then \
200 echo Installing systemd configuration files...; \
201 $(INSTALL_DIR) $(BUILDROOT)$(SYSTEMD_DIR); \
202 $(INSTALL_DATA) org.cups.cupsd.path $(BUILDROOT)$(SYSTEMD_DIR); \
203 $(INSTALL_DATA) org.cups.cupsd.service $(BUILDROOT)$(SYSTEMD_DIR); \
204 $(INSTALL_DATA) org.cups.cupsd.socket $(BUILDROOT)$(SYSTEMD_DIR); \
205 $(INSTALL_DATA) org.cups.cups-lpdAT.service $(BUILDROOT)$(SYSTEMD_DIR)/org.cups.cups-lpd@.service; \
206 $(INSTALL_DATA) org.cups.cups-lpd.socket $(BUILDROOT)$(SYSTEMD_DIR); \
207 elif test "x$(XINETD)" != x; then \
208 echo Installing xinetd configuration file for cups-lpd...; \
209 $(INSTALL_DIR) -m 755 $(BUILDROOT)$(XINETD); \
210 $(INSTALL_DATA) cups-lpd.xinetd $(BUILDROOT)$(XINETD)/cups-lpd; \
211 fi
212
213
214 #
215 # Install programs...
216 #
217
218 install-exec:
219 echo Installing programs in $(SBINDIR)...
220 $(INSTALL_DIR) -m 755 $(SBINDIR)
221 $(INSTALL_BIN) -m $(CUPS_CUPSD_FILE_PERM) cupsd $(SBINDIR)
222 $(INSTALL_BIN) cupsfilter $(SBINDIR)
223 echo Installing programs in $(SERVERBIN)/daemon...
224 $(INSTALL_DIR) -m 755 $(SERVERBIN)
225 $(INSTALL_DIR) -m 755 $(SERVERBIN)/daemon
226 $(INSTALL_BIN) cups-deviced $(SERVERBIN)/daemon
227 $(INSTALL_BIN) cups-driverd $(SERVERBIN)/daemon
228 $(INSTALL_BIN) cups-exec $(SERVERBIN)/daemon
229 $(INSTALL_BIN) cups-lpd $(SERVERBIN)/daemon
230 if test "x$(SYMROOT)" != "x"; then \
231 $(INSTALL_DIR) $(SYMROOT); \
232 for file in $(PROGRAMS); do \
233 cp $$file $(SYMROOT); \
234 dsymutil $(SYMROOT)/$$file; \
235 done \
236 fi
237
238
239 #
240 # Install headers...
241 #
242
243 install-headers:
244 echo Installing header files in $(INCLUDEDIR)/cups...
245 $(INSTALL_DIR) -m 755 $(INCLUDEDIR)/cups
246 $(INSTALL_DATA) mime.h $(INCLUDEDIR)/cups
247
248
249 #
250 # Install libraries...
251 #
252
253 install-libs: $(INSTALLSTATIC)
254 echo Installing libraries in $(LIBDIR)...
255 $(INSTALL_DIR) -m 755 $(LIBDIR)
256 $(INSTALL_LIB) $(LIBCUPSMIME) $(LIBDIR)
257 if test $(LIBCUPSMIME) = "libcupsmime.so.1"; then \
258 $(RM) $(LIBDIR)/`basename $(LIBCUPSMIME) .1`; \
259 $(LN) $(LIBCUPSMIME) $(LIBDIR)/`basename $(LIBCUPSMIME) .1`; \
260 fi
261 if test $(LIBCUPSMIME) = "libcupsmime.1.dylib"; then \
262 $(RM) $(LIBDIR)/libcupsmime.dylib; \
263 $(LN) $(LIBCUPSMIME) $(LIBDIR)/libcupsmime.dylib; \
264 fi
265 if test "x$(SYMROOT)" != "x"; then \
266 $(INSTALL_DIR) $(SYMROOT); \
267 cp $(LIBCUPSMIME) $(SYMROOT); \
268 dsymutil $(SYMROOT)/$(LIBCUPSMIME); \
269 fi
270
271 installstatic:
272 $(INSTALL_DIR) -m 755 $(LIBDIR)
273 $(INSTALL_LIB) -m 755 libcupsmime.a $(LIBDIR)
274 $(RANLIB) $(LIBDIR)/libcupsmime.a
275 $(CHMOD) 555 $(LIBDIR)/libcupsmime.a
276
277
278 #
279 # Uninstall the scheduler...
280 #
281
282 uninstall:
283 $(RM) $(SBINDIR)/cupsd
284 $(RM) $(SBINDIR)/cupsfilter
285 $(RM) $(SERVERBIN)/daemon/cups-deviced
286 $(RM) $(SERVERBIN)/daemon/cups-driverd
287 $(RM) $(SERVERBIN)/daemon/cups-exec
288 $(RM) $(SERVERBIN)/daemon/cups-lpd
289 -$(RMDIR) $(STATEDIR)/certs
290 -$(RMDIR) $(STATEDIR)
291 -$(RMDIR) $(SERVERROOT)/ppd
292 -$(RMDIR) $(SERVERROOT)/interfaces
293 -$(RMDIR) $(SERVERROOT)
294 -$(RMDIR) $(SERVERBIN)/driver
295 -$(RMDIR) $(SERVERBIN)/daemon
296 -$(RMDIR) $(SERVERBIN)
297 -$(RMDIR) $(SBINDIR)
298 -$(RMDIR) $(REQUESTS)/tmp
299 -$(RMDIR) $(REQUESTS)
300 -$(RMDIR) $(LOGDIR)
301 -$(RMDIR) $(CACHEDIR)
302 $(RM) $(LIBDIR)/libcupsmime.1.dylib
303 $(RM) $(LIBDIR)/libcupsmime.a
304 $(RM) $(LIBDIR)/libcupsmime.dylib
305 $(RM) $(LIBDIR)/libcupsmime.so
306 $(RM) $(LIBDIR)/libcupsmime.so.1
307 -$(RMDIR) $(LIBDIR)
308 $(RM) $(INCLUDEDIR)/cups/mime.h
309 -$(RMDIR) $(INCLUDEDIR)/cups
310 if test "x$(INITDIR)" != x; then \
311 echo Uninstalling init scripts...; \
312 $(RM) $(BUILDROOT)$(INITDIR)/init.d/cups; \
313 $(RMDIR) $(BUILDROOT)$(INITDIR)/init.d; \
314 $(RM) $(BUILDROOT)$(INITDIR)/rc0.d/K00cups; \
315 $(RMDIR) $(BUILDROOT)$(INITDIR)/rc0.d; \
316 $(RM) $(BUILDROOT)$(INITDIR)/rc2.d/S99cups; \
317 $(RMDIR) $(BUILDROOT)$(INITDIR)/rc2.d; \
318 $(RM) $(BUILDROOT)$(INITDIR)/rc3.d/S99cups; \
319 $(RMDIR) $(BUILDROOT)$(INITDIR)/rc3.d; \
320 $(RM) $(BUILDROOT)$(INITDIR)/rc5.d/S99cups; \
321 $(RMDIR) $(BUILDROOT)$(INITDIR)/rc5.d; \
322 fi
323 if test "x$(INITDDIR)" != x; then \
324 echo Uninstalling startup script...; \
325 $(RM) $(BUILDROOT)$(INITDDIR)/cups.sh; \
326 $(RMDIR) $(BUILDROOT)$(INITDDIR); \
327 fi
328 if test "x$LAUNCHD_DIR" != x; then \
329 echo Uninstalling launchd files...; \
330 $(RM) $(BUILDROOT)$(LAUNCHD_DIR)/org.cups.cupsd.plist; \
331 $(RM) $(BUILDROOT)$(LAUNCHD_DIR)/org.cups.cups-lpd.plist; \
332 fi
333 if test "x$SYSTEMD_DIR" != x; then \
334 echo Uninstalling systemd files...; \
335 $(RM) $(BUILDROOT)$(SYSTEMD_DIR)/org.cups.cupsd.path; \
336 $(RM) $(BUILDROOT)$(SYSTEMD_DIR)/org.cups.cupsd.service; \
337 $(RM) $(BUILDROOT)$(SYSTEMD_DIR)/org.cups.cupsd.socket; \
338 fi
339 if test "x$(SMFMANIFESTDIR)" != x; then \
340 echo Uninstalling SMF manifest file...;\
341 $(RM) $(BUILDROOT)$(SMFMANIFESTDIR)/cups.xml; \
342 fi
343 if test "x$(XINETD)" != x; then \
344 echo Uninstalling xinetd configuration file for cups-lpd...; \
345 $(RM) $(BUILDROOT)$(XINETD)/cups-lpd; \
346 fi
347
348
349 #
350 # Automatic API help files...
351 #
352
353 apihelp:
354 mxmldoc --section "Programming" \
355 --title "MIME API" \
356 --css ../doc/cups-printable.css \
357 --header api-mime.header --intro api-mime.shtml \
358 mime.h $(LIBOBJS:.o=.c) >../doc/help/api-mime.html
359 mxmldoc --tokens help/api-mime.html api-mime.xml >../doc/help/api-mime.tokens
360 $(RM) api-mime.xml
361
362 framedhelp:
363 mxmldoc --framed api-mime \
364 --section "Programming" \
365 --title "MIME API" \
366 --css ../doc/cups-printable.css \
367 --header api-mime.header --intro api-mime.shtml \
368 mime.h $(LIBOBJS:.o=.c)
369
370
371 #
372 # Make the scheduler executable, "cupsd".
373 #
374
375 cupsd: $(CUPSDOBJS) $(LIBCUPSMIME) ../cups/$(LIBCUPS)
376 echo Linking $@...
377 $(CC) $(LDFLAGS) -o cupsd $(CUPSDOBJS) -L. -lcupsmime \
378 $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \
379 $(LIBPAPER) $(LIBMALLOC) $(SERVERLIBS) $(ONDEMANDLIBS) \
380 $(DNSSDLIBS) $(LIBS) $(LIBGSSAPI) $(LIBWRAP)
381
382 cupsd-static: $(CUPSDOBJS) libcupsmime.a ../cups/$(LIBCUPSSTATIC)
383 echo Linking $@...
384 $(CC) $(LDFLAGS) -o cupsd-static $(CUPSDOBJS) libcupsmime.a \
385 $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \
386 ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(LIBZ) $(LIBPAPER) \
387 $(LIBMALLOC) $(SERVERLIBS) $(ONDEMANDLIBS) $(DNSSDLIBS) \
388 $(LIBGSSAPI) $(LIBWRAP)
389
390
391 #
392 # Make the cupsfilter utility.
393 #
394
395 cupsfilter: cupsfilter.o $(LIBCUPSMIME) ../cups/$(LIBCUPS)
396 echo Linking $@...
397 $(CC) $(LDFLAGS) -o cupsfilter cupsfilter.o -L. -lcupsmime $(LIBS)
398 $(RM) convert
399 $(LN) cupsfilter convert
400
401 cupsfilter-static: cupsfilter.o libcupsmime.a ../cups/$(LIBCUPSSTATIC)
402 echo Linking $@...
403 $(CC) $(LDFLAGS) -o cupsfilter-static cupsfilter.o libcupsmime.a \
404 ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(LIBZ) $(SSLLIBS) \
405 $(DNSSDLIBS) $(LIBGSSAPI)
406
407
408 #
409 # Make the device daemon, "cups-deviced".
410 #
411
412 cups-deviced: cups-deviced.o util.o ../cups/$(LIBCUPS)
413 echo Linking $@...
414 $(CC) $(LDFLAGS) -o cups-deviced cups-deviced.o util.o $(LIBS)
415
416
417 #
418 # Make the driver daemon, "cups-driverd".
419 #
420
421 cups-driverd: cups-driverd.o util.o ../cups/$(LIBCUPS) ../ppdc/$(LIBCUPSPPDC)
422 echo Linking $@...
423 $(CXX) $(LDFLAGS) -o cups-driverd cups-driverd.o util.o \
424 -L../ppdc -lcupsppdc $(LIBS)
425
426
427 #
428 # Make the sandbox execution helper, "cups-exec".
429 #
430
431 cups-exec: cups-exec.o
432 echo Linking $@...
433 $(CC) $(LDFLAGS) -o cups-exec cups-exec.o $(LIBS)
434
435
436 #
437 # Make the line printer daemon, "cups-lpd".
438 #
439
440 cups-lpd: cups-lpd.o ../cups/$(LIBCUPS)
441 echo Linking $@...
442 $(CC) $(LDFLAGS) -o cups-lpd cups-lpd.o $(LIBS)
443
444
445 #
446 # libcupsmime.so.1
447 #
448
449 libcupsmime.so.1: $(LIBOBJS)
450 echo Linking $@...
451 $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LIBS)
452 $(RM) `basename $@ .1`
453 $(LN) $@ `basename $@ .1`
454
455
456 #
457 # libcupsmime.1.dylib
458 #
459
460 libcupsmime.1.dylib: $(LIBOBJS) libcupsmime.exp
461 echo Linking $@...
462 $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \
463 -install_name $(libdir)/$@ \
464 -current_version 1.0.0 \
465 -compatibility_version 1.0.0 \
466 -exported_symbols_list libcupsmime.exp \
467 $(LIBOBJS) $(LIBS)
468 $(RM) libcupsmime.dylib
469 $(LN) $@ libcupsmime.dylib
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