]> git.ipfire.org Git - thirdparty/cups.git/blob - scheduler/Makefile
Fix whitespace issues.
[thirdparty/cups.git] / scheduler / Makefile
1 #
2 # Scheduler Makefile for CUPS.
3 #
4 # Copyright © 2007-2018 by Apple Inc.
5 # Copyright © 1997-2007 by Easy Software Products, all rights reserved.
6 #
7 # Licensed under Apache License v2.0. See the file "LICENSE" for more
8 # information.
9 #
10
11 include ../Makedefs
12
13 CUPSDOBJS = \
14 auth.o \
15 banners.o \
16 cert.o \
17 classes.o \
18 client.o \
19 colorman.o \
20 conf.o \
21 dirsvc.o \
22 env.o \
23 file.o \
24 main.o \
25 ipp.o \
26 listen.o \
27 job.o \
28 log.o \
29 network.o \
30 policy.o \
31 printers.o \
32 process.o \
33 quotas.o \
34 select.o \
35 server.o \
36 statbuf.o \
37 subscriptions.o \
38 sysman.o
39 LIBOBJS = \
40 filter.o \
41 mime.o \
42 type.o
43 COBJS = \
44 $(CUPSDOBJS) \
45 $(LIBOBJS) \
46 cupsfilter.o \
47 cups-deviced.o \
48 cups-exec.o \
49 cups-lpd.o \
50 testlpd.o \
51 testmime.o \
52 testspeed.o \
53 testsub.o \
54 util.o
55 CXXOBJS = \
56 cups-driverd.o
57 OBJS = \
58 $(COBJS) \
59 $(CXXOBJS)
60 LIBTARGETS = \
61 $(LIBCUPSMIME) \
62 libcupsmime.a
63
64 UNITTARGETS = \
65 testlpd \
66 testmime \
67 testspeed \
68 testsub
69
70 PROGRAMS = \
71 cupsd \
72 cupsfilter \
73 cups-deviced \
74 cups-driverd \
75 cups-exec \
76 cups-lpd
77
78 TARGETS = \
79 $(LIBTARGETS) \
80 $(PROGRAMS)
81
82
83 #
84 # Make everything...
85 #
86
87 all: $(TARGETS)
88
89
90 #
91 # Make library targets...
92 #
93
94 libs: $(LIBTARGETS)
95
96
97 #
98 # Make unit tests...
99 #
100
101 unittests: $(UNITTARGETS)
102
103
104 #
105 # Clean all object files...
106 #
107
108 clean:
109 $(RM) $(OBJS)
110 $(RM) $(TARGETS) $(UNITTARGETS) convert
111 $(RM) libcupsmime.so libcupsmime.dylib
112
113
114 #
115 # Update dependencies (without system header dependencies...)
116 #
117
118 depend:
119 $(CC) -MM $(ALL_CFLAGS) $(COBJS:.o=.c) >Dependencies
120 $(CXX) -MM $(ALL_CXXFLAGS) $(CXXOBJS:.o=.cxx) >>Dependencies
121
122
123 #
124 # Run oclint to check code coverage...
125 #
126
127 oclint:
128 oclint -o=oclint.html -html $(CUPSDOBJS:.o=.c) $(LIBOBJS:.o=.c) -- $(ALL_CFLAGS)
129
130
131 #
132 # Install all targets...
133 #
134
135 install: all install-data install-headers install-libs install-exec
136
137
138 #
139 # Install data files...
140 #
141
142 install-data:
143 echo Creating $(SERVERBIN)/driver...
144 $(INSTALL_DIR) -m 755 $(SERVERBIN)/driver
145 echo Creating $(SERVERROOT)...
146 $(INSTALL_DIR) -m 755 -g $(CUPS_GROUP) $(SERVERROOT)
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 770 -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 $(LN) ../init.d/cups $(BUILDROOT)$(INITDIR)/rc$${level}.d/K$(RCSTOP)cups; \
176 done; \
177 $(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDIR)/rc0.d; \
178 $(LN) ../init.d/cups $(BUILDROOT)$(INITDIR)/rc0.d/K$(RCSTOP)cups; \
179 fi
180 if test "x$(INITDDIR)" != x; then \
181 echo Installing init script...; \
182 $(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDDIR); \
183 $(INSTALL_SCRIPT) cups.sh $(BUILDROOT)$(INITDDIR); \
184 fi
185 if test "x$(LAUNCHD_DIR)" != x; then \
186 echo Installing launchd configuration files...; \
187 $(INSTALL_DIR) $(BUILDROOT)$(LAUNCHD_DIR); \
188 $(INSTALL_DATA) org.cups.cupsd.plist $(BUILDROOT)$(LAUNCHD_DIR); \
189 $(INSTALL_DATA) org.cups.cups-lpd.plist $(BUILDROOT)$(LAUNCHD_DIR); \
190 fi
191 if test "x$(SMFMANIFESTDIR)" != x; then \
192 echo Installing SMF manifest in $(SMFMANIFESTDIR)...;\
193 $(INSTALL_DIR) $(BUILDROOT)/$(SMFMANIFESTDIR); \
194 $(INSTALL_SCRIPT) cups.xml $(BUILDROOT)$(SMFMANIFESTDIR)/cups.xml; \
195 fi
196 if test "x$(SYSTEMD_DIR)" != x; then \
197 echo Installing systemd configuration files...; \
198 $(INSTALL_DIR) $(BUILDROOT)$(SYSTEMD_DIR); \
199 $(INSTALL_DATA) org.cups.cupsd.path $(BUILDROOT)$(SYSTEMD_DIR); \
200 $(INSTALL_DATA) org.cups.cupsd.service $(BUILDROOT)$(SYSTEMD_DIR); \
201 $(INSTALL_DATA) org.cups.cupsd.socket $(BUILDROOT)$(SYSTEMD_DIR); \
202 $(INSTALL_DATA) org.cups.cups-lpdAT.service $(BUILDROOT)$(SYSTEMD_DIR)/org.cups.cups-lpd@.service; \
203 $(INSTALL_DATA) org.cups.cups-lpd.socket $(BUILDROOT)$(SYSTEMD_DIR); \
204 elif test "x$(XINETD)" != x; then \
205 echo Installing xinetd configuration file for cups-lpd...; \
206 $(INSTALL_DIR) -m 755 $(BUILDROOT)$(XINETD); \
207 $(INSTALL_DATA) cups-lpd.xinetd $(BUILDROOT)$(XINETD)/cups-lpd; \
208 fi
209
210
211 #
212 # Install programs...
213 #
214
215 install-exec:
216 echo Installing programs in $(SBINDIR)...
217 $(INSTALL_DIR) -m 755 $(SBINDIR)
218 $(INSTALL_BIN) -m $(CUPS_CUPSD_FILE_PERM) cupsd $(SBINDIR)
219 $(INSTALL_BIN) cupsfilter $(SBINDIR)
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-exec $(SERVERBIN)/daemon
226 $(INSTALL_BIN) cups-lpd $(SERVERBIN)/daemon
227 if test "x$(SYMROOT)" != "x"; then \
228 $(INSTALL_DIR) $(SYMROOT); \
229 for file in $(PROGRAMS); do \
230 cp $$file $(SYMROOT); \
231 dsymutil $(SYMROOT)/$$file; \
232 done \
233 fi
234
235
236 #
237 # Install headers...
238 #
239
240 install-headers:
241 if test "x$(privateinclude)" != x; then \
242 echo Installing private header files into $(PRIVATEINCLUDE)...; \
243 $(INSTALL_DIR) -m 755 $(PRIVATEINCLUDE); \
244 $(INSTALL_DATA) mime.h $(PRIVATEINCLUDE); \
245 fi
246
247
248 #
249 # Install libraries...
250 #
251
252 install-libs: $(INSTALLSTATIC)
253 echo Installing libraries in $(LIBDIR)...
254 $(INSTALL_DIR) -m 755 $(LIBDIR)
255 $(INSTALL_LIB) $(LIBCUPSMIME) $(LIBDIR)
256 if test $(LIBCUPSMIME) = "libcupsmime.so.1"; then \
257 $(RM) $(LIBDIR)/`basename $(LIBCUPSMIME) .1`; \
258 $(LN) $(LIBCUPSMIME) $(LIBDIR)/`basename $(LIBCUPSMIME) .1`; \
259 fi
260 if test $(LIBCUPSMIME) = "libcupsmime.1.dylib"; then \
261 $(RM) $(LIBDIR)/libcupsmime.dylib; \
262 $(LN) $(LIBCUPSMIME) $(LIBDIR)/libcupsmime.dylib; \
263 fi
264 if test "x$(SYMROOT)" != "x"; then \
265 $(INSTALL_DIR) $(SYMROOT); \
266 cp $(LIBCUPSMIME) $(SYMROOT); \
267 dsymutil $(SYMROOT)/$(LIBCUPSMIME); \
268 fi
269
270 installstatic:
271 $(INSTALL_DIR) -m 755 $(LIBDIR)
272 $(INSTALL_LIB) -m 755 libcupsmime.a $(LIBDIR)
273 $(RANLIB) $(LIBDIR)/libcupsmime.a
274 $(CHMOD) 555 $(LIBDIR)/libcupsmime.a
275
276
277 #
278 # Uninstall the scheduler...
279 #
280
281 uninstall:
282 $(RM) $(SBINDIR)/cupsd
283 $(RM) $(SBINDIR)/cupsfilter
284 $(RM) $(SERVERBIN)/daemon/cups-deviced
285 $(RM) $(SERVERBIN)/daemon/cups-driverd
286 $(RM) $(SERVERBIN)/daemon/cups-exec
287 $(RM) $(SERVERBIN)/daemon/cups-lpd
288 -$(RMDIR) $(STATEDIR)/certs
289 -$(RMDIR) $(STATEDIR)
290 -$(RMDIR) $(SERVERROOT)/ppd
291 -$(RMDIR) $(SERVERROOT)/interfaces
292 -$(RMDIR) $(SERVERROOT)
293 -$(RMDIR) $(SERVERBIN)/driver
294 -$(RMDIR) $(SERVERBIN)/daemon
295 -$(RMDIR) $(SERVERBIN)
296 -$(RMDIR) $(SBINDIR)
297 -$(RMDIR) $(REQUESTS)/tmp
298 -$(RMDIR) $(REQUESTS)
299 -$(RMDIR) $(LOGDIR)
300 -$(RMDIR) $(CACHEDIR)
301 $(RM) $(LIBDIR)/libcupsmime.1.dylib
302 $(RM) $(LIBDIR)/libcupsmime.a
303 $(RM) $(LIBDIR)/libcupsmime.dylib
304 $(RM) $(LIBDIR)/libcupsmime.so
305 $(RM) $(LIBDIR)/libcupsmime.so.1
306 -$(RMDIR) $(LIBDIR)
307 -if test "x$(privateinclude)" != x; then \
308 $(RM) $(PRIVATEINCLUDE)/mime.h; \
309 $(RMDIR) $(PRIVATEINCLUDE); \
310 fi
311 if test "x$(INITDIR)" != x; then \
312 echo Uninstalling init scripts...; \
313 $(RM) $(BUILDROOT)$(INITDIR)/init.d/cups; \
314 $(RMDIR) $(BUILDROOT)$(INITDIR)/init.d; \
315 $(RM) $(BUILDROOT)$(INITDIR)/rc0.d/K00cups; \
316 $(RMDIR) $(BUILDROOT)$(INITDIR)/rc0.d; \
317 $(RM) $(BUILDROOT)$(INITDIR)/rc2.d/S99cups; \
318 $(RMDIR) $(BUILDROOT)$(INITDIR)/rc2.d; \
319 $(RM) $(BUILDROOT)$(INITDIR)/rc3.d/S99cups; \
320 $(RMDIR) $(BUILDROOT)$(INITDIR)/rc3.d; \
321 $(RM) $(BUILDROOT)$(INITDIR)/rc5.d/S99cups; \
322 $(RMDIR) $(BUILDROOT)$(INITDIR)/rc5.d; \
323 fi
324 if test "x$(INITDDIR)" != x; then \
325 echo Uninstalling startup script...; \
326 $(RM) $(BUILDROOT)$(INITDDIR)/cups.sh; \
327 $(RMDIR) $(BUILDROOT)$(INITDDIR); \
328 fi
329 if test "x$LAUNCHD_DIR" != x; then \
330 echo Uninstalling launchd files...; \
331 $(RM) $(BUILDROOT)$(LAUNCHD_DIR)/org.cups.cupsd.plist; \
332 $(RM) $(BUILDROOT)$(LAUNCHD_DIR)/org.cups.cups-lpd.plist; \
333 fi
334 if test "x$SYSTEMD_DIR" != x; then \
335 echo Uninstalling systemd files...; \
336 $(RM) $(BUILDROOT)$(SYSTEMD_DIR)/org.cups.cupsd.path; \
337 $(RM) $(BUILDROOT)$(SYSTEMD_DIR)/org.cups.cupsd.service; \
338 $(RM) $(BUILDROOT)$(SYSTEMD_DIR)/org.cups.cupsd.socket; \
339 fi
340 if test "x$(SMFMANIFESTDIR)" != x; then \
341 echo Uninstalling SMF manifest file...;\
342 $(RM) $(BUILDROOT)$(SMFMANIFESTDIR)/cups.xml; \
343 fi
344 if test "x$(XINETD)" != x; then \
345 echo Uninstalling xinetd configuration file for cups-lpd...; \
346 $(RM) $(BUILDROOT)$(XINETD)/cups-lpd; \
347 fi
348
349
350 #
351 # Make the scheduler executable, "cupsd".
352 #
353
354 cupsd: $(CUPSDOBJS) $(LIBCUPSMIME) ../cups/$(LIBCUPS)
355 echo Linking $@...
356 $(LD_CC) $(LDFLAGS) -o cupsd $(CUPSDOBJS) -L. -lcupsmime \
357 $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \
358 $(LIBPAPER) $(LIBMALLOC) $(SERVERLIBS) $(ONDEMANDLIBS) \
359 $(DNSSDLIBS) $(LIBS) $(LIBGSSAPI) $(LIBWRAP)
360
361 cupsd-static: $(CUPSDOBJS) libcupsmime.a ../cups/$(LIBCUPSSTATIC)
362 echo Linking $@...
363 $(LD_CC) $(LDFLAGS) -o cupsd-static $(CUPSDOBJS) libcupsmime.a \
364 $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \
365 ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(LIBZ) $(LIBPAPER) \
366 $(LIBMALLOC) $(SERVERLIBS) $(ONDEMANDLIBS) $(DNSSDLIBS) \
367 $(LIBGSSAPI) $(LIBWRAP)
368
369
370 #
371 # Make the cupsfilter utility.
372 #
373
374 cupsfilter: cupsfilter.o $(LIBCUPSMIME) ../cups/$(LIBCUPS)
375 echo Linking $@...
376 $(LD_CC) $(LDFLAGS) -o cupsfilter cupsfilter.o -L. -lcupsmime $(LIBS)
377 $(RM) convert
378 $(LN) cupsfilter convert
379
380 cupsfilter-static: cupsfilter.o libcupsmime.a ../cups/$(LIBCUPSSTATIC)
381 echo Linking $@...
382 $(LD_CC) $(LDFLAGS) -o cupsfilter-static cupsfilter.o libcupsmime.a \
383 ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(LIBZ) $(SSLLIBS) \
384 $(DNSSDLIBS) $(LIBGSSAPI)
385
386
387 #
388 # Make the device daemon, "cups-deviced".
389 #
390
391 cups-deviced: cups-deviced.o util.o ../cups/$(LIBCUPS)
392 echo Linking $@...
393 $(LD_CC) $(LDFLAGS) -o cups-deviced cups-deviced.o util.o $(LIBS)
394
395
396 #
397 # Make the driver daemon, "cups-driverd".
398 #
399
400 cups-driverd: cups-driverd.o util.o ../cups/$(LIBCUPS) ../ppdc/$(LIBCUPSPPDC)
401 echo Linking $@...
402 $(LD_CXX) $(LDFLAGS) -o cups-driverd cups-driverd.o util.o \
403 -L../ppdc -lcupsppdc $(LIBS)
404
405
406 #
407 # Make the sandbox execution helper, "cups-exec".
408 #
409
410 cups-exec: cups-exec.o
411 echo Linking $@...
412 $(LD_CC) $(LDFLAGS) -o cups-exec cups-exec.o $(LIBS)
413
414
415 #
416 # Make the line printer daemon, "cups-lpd".
417 #
418
419 cups-lpd: cups-lpd.o ../cups/$(LIBCUPS)
420 echo Linking $@...
421 $(LD_CC) $(LDFLAGS) -o cups-lpd cups-lpd.o $(LIBS)
422
423
424 #
425 # libcupsmime.so.1
426 #
427
428 libcupsmime.so.1: $(LIBOBJS)
429 echo Linking $@...
430 $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LIBS)
431 $(RM) `basename $@ .1`
432 $(LN) $@ `basename $@ .1`
433
434
435 #
436 # libcupsmime.1.dylib
437 #
438
439 libcupsmime.1.dylib: $(LIBOBJS) libcupsmime.exp
440 echo Linking $@...
441 $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \
442 -install_name $(libdir)/$@ \
443 -current_version 1.0.0 \
444 -compatibility_version 1.0.0 \
445 -exported_symbols_list libcupsmime.exp \
446 $(LIBOBJS) $(LIBS)
447 $(RM) libcupsmime.dylib
448 $(LN) $@ libcupsmime.dylib
449
450
451 #
452 # libcupsmime.la
453 #
454
455 libcupsmime.la: $(LIBOBJS)
456 echo Linking $@...
457 $(LD_CC) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) -rpath $(LIBDIR) \
458 -version-info 1:0 $(LIBS)
459
460
461 #
462 # libcupsmime.a
463 #
464
465 libcupsmime.a: $(LIBOBJS)
466 echo Archiving $@...
467 $(RM) $@
468 $(AR) $(ARFLAGS) $@ $(LIBOBJS)
469 $(RANLIB) $@
470
471
472 #
473 # Make the test program, "testlpd".
474 #
475
476 testlpd: testlpd.o ../cups/$(LIBCUPSSTATIC) cups-lpd
477 echo Linking $@...
478 $(LD_CC) $(LDFLAGS) -o testlpd testlpd.o ../cups/$(LIBCUPSSTATIC) \
479 $(COMMONLIBS) $(LIBZ) $(SSLLIBS) $(DNSSDLIBS) $(LIBGSSAPI)
480
481
482 #
483 # testmime
484 #
485
486 testmime: testmime.o libcupsmime.a ../cups/$(LIBCUPSSTATIC)
487 echo Linking $@...
488 $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testmime.o libcupsmime.a \
489 ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(LIBZ) $(SSLLIBS) \
490 $(DNSSDLIBS) $(LIBGSSAPI)
491 echo Running MIME tests...
492 ./testmime
493
494
495 #
496 # Make the test program, "testspeed".
497 #
498
499 testspeed: testspeed.o ../cups/$(LIBCUPSSTATIC)
500 echo Linking $@...
501 $(LD_CC) $(LDFLAGS) -o testspeed testspeed.o ../cups/$(LIBCUPSSTATIC) \
502 $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) $(LIBGSSAPI)
503
504
505 #
506 # Make the test program, "testsub".
507 #
508
509 testsub: testsub.o ../cups/$(LIBCUPSSTATIC)
510 echo Linking $@...
511 $(LD_CC) $(LDFLAGS) -o testsub testsub.o ../cups/$(LIBCUPSSTATIC) \
512 $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) $(LIBGSSAPI)
513
514
515 #
516 # Lines of code computation...
517 #
518
519 sloc:
520 echo "cupsd: \c"
521 sloccount $(CUPSDOBJS:.o=.c) $(LIBOBJS:.o=.c) cups-driverd.cxx cups-lpd.c 2>/dev/null | grep "Total Physical" | awk '{print $$9}'
522
523
524 #
525 # Dependencies...
526 #
527
528 include Dependencies