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