]> git.ipfire.org Git - thirdparty/cups.git/blob - scheduler/Makefile
Add missing DNSSD.LIB functions.
[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 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
361
362 cupsd-static: $(CUPSDOBJS) libcupsmime.a ../cups/$(LIBCUPSSTATIC)
363 echo Linking $@...
364 $(LD_CC) $(LDFLAGS) -o cupsd-static $(CUPSDOBJS) libcupsmime.a \
365 $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \
366 ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(LIBZ) $(LIBPAPER) \
367 $(LIBMALLOC) $(SERVERLIBS) $(ONDEMANDLIBS) $(DNSSDLIBS) \
368 $(LIBGSSAPI) $(LIBWRAP)
369 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
370
371
372 #
373 # Make the cupsfilter utility.
374 #
375
376 cupsfilter: cupsfilter.o $(LIBCUPSMIME) ../cups/$(LIBCUPS)
377 echo Linking $@...
378 $(LD_CC) $(LDFLAGS) -o cupsfilter cupsfilter.o -L. -lcupsmime $(LIBS)
379 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
380 $(RM) convert
381 $(LN) cupsfilter convert
382
383 cupsfilter-static: cupsfilter.o libcupsmime.a ../cups/$(LIBCUPSSTATIC)
384 echo Linking $@...
385 $(LD_CC) $(LDFLAGS) -o cupsfilter-static cupsfilter.o libcupsmime.a \
386 ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(LIBZ) $(SSLLIBS) \
387 $(DNSSDLIBS) $(LIBGSSAPI)
388 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
389
390
391 #
392 # Make the device daemon, "cups-deviced".
393 #
394
395 cups-deviced: cups-deviced.o util.o ../cups/$(LIBCUPS)
396 echo Linking $@...
397 $(LD_CC) $(LDFLAGS) -o cups-deviced cups-deviced.o util.o $(LIBS)
398 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
399
400
401 #
402 # Make the driver daemon, "cups-driverd".
403 #
404
405 cups-driverd: cups-driverd.o util.o ../cups/$(LIBCUPS) ../ppdc/$(LIBCUPSPPDC)
406 echo Linking $@...
407 $(LD_CXX) $(LDFLAGS) -o cups-driverd cups-driverd.o util.o \
408 -L../ppdc -lcupsppdc $(LIBS)
409 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
410
411
412 #
413 # Make the sandbox execution helper, "cups-exec".
414 #
415
416 cups-exec: cups-exec.o
417 echo Linking $@...
418 $(LD_CC) $(LDFLAGS) -o cups-exec cups-exec.o $(LIBS)
419 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
420
421
422 #
423 # Make the line printer daemon, "cups-lpd".
424 #
425
426 cups-lpd: cups-lpd.o ../cups/$(LIBCUPS)
427 echo Linking $@...
428 $(LD_CC) $(LDFLAGS) -o cups-lpd cups-lpd.o $(LIBS)
429 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
430
431
432 #
433 # libcupsmime.so.1
434 #
435
436 libcupsmime.so.1: $(LIBOBJS)
437 echo Linking $@...
438 $(DSO) $(ARCHFLAGS) $(LDFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LIBS)
439 $(RM) `basename $@ .1`
440 $(LN) $@ `basename $@ .1`
441
442
443 #
444 # libcupsmime.1.dylib
445 #
446
447 libcupsmime.1.dylib: $(LIBOBJS) libcupsmime.exp
448 echo Linking $@...
449 $(DSO) $(ARCHFLAGS) $(LDFLAGS) $(DSOFLAGS) -o $@ \
450 -install_name $(libdir)/$@ \
451 -current_version 1.0.0 \
452 -compatibility_version 1.0.0 \
453 -exported_symbols_list libcupsmime.exp \
454 $(LIBOBJS) $(LIBS)
455 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
456 $(RM) libcupsmime.dylib
457 $(LN) $@ libcupsmime.dylib
458
459
460 #
461 # libcupsmime.la
462 #
463
464 libcupsmime.la: $(LIBOBJS)
465 echo Linking $@...
466 $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) -rpath $(LIBDIR) \
467 -version-info 1:0 $(LIBS)
468
469
470 #
471 # libcupsmime.a
472 #
473
474 libcupsmime.a: $(LIBOBJS)
475 echo Archiving $@...
476 $(RM) $@
477 $(AR) $(ARFLAGS) $@ $(LIBOBJS)
478 $(RANLIB) $@
479
480
481 #
482 # Make the test program, "testlpd".
483 #
484
485 testlpd: testlpd.o ../cups/$(LIBCUPSSTATIC) cups-lpd
486 echo Linking $@...
487 $(LD_CC) $(LDFLAGS) -o testlpd testlpd.o ../cups/$(LIBCUPSSTATIC) \
488 $(COMMONLIBS) $(LIBZ) $(SSLLIBS) $(DNSSDLIBS) $(LIBGSSAPI)
489
490
491 #
492 # testmime
493 #
494
495 testmime: testmime.o libcupsmime.a ../cups/$(LIBCUPSSTATIC)
496 echo Linking $@...
497 $(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testmime.o libcupsmime.a \
498 ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(LIBZ) $(SSLLIBS) \
499 $(DNSSDLIBS) $(LIBGSSAPI)
500 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
501 echo Running MIME tests...
502 ./testmime
503
504
505 #
506 # Make the test program, "testspeed".
507 #
508
509 testspeed: testspeed.o ../cups/$(LIBCUPSSTATIC)
510 echo Linking $@...
511 $(LD_CC) $(LDFLAGS) -o testspeed testspeed.o ../cups/$(LIBCUPSSTATIC) \
512 $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) $(LIBGSSAPI)
513 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
514
515
516 #
517 # Make the test program, "testsub".
518 #
519
520 testsub: testsub.o ../cups/$(LIBCUPSSTATIC)
521 echo Linking $@...
522 $(LD_CC) $(LDFLAGS) -o testsub testsub.o ../cups/$(LIBCUPSSTATIC) \
523 $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ) $(LIBGSSAPI)
524 $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
525
526
527 #
528 # Lines of code computation...
529 #
530
531 sloc:
532 echo "cupsd: \c"
533 sloccount $(CUPSDOBJS:.o=.c) $(LIBOBJS:.o=.c) cups-driverd.cxx cups-lpd.c 2>/dev/null | grep "Total Physical" | awk '{print $$9}'
534
535
536 #
537 # Dependencies...
538 #
539
540 include Dependencies