4 # Scheduler Makefile for CUPS.
6 # Copyright 2007-2013 by Apple Inc.
7 # Copyright 1997-2007 by Easy Software Products, all rights reserved.
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/".
96 # Make library targets...
106 unittests
: $(UNITTARGETS
)
110 # Clean all object files...
115 $(RM
) $(TARGETS
) $(UNITTARGETS
) convert
116 $(RM
) libcupsmime.so libcupsmime.dylib
120 # Update dependencies (without system header dependencies...)
124 $(CC
) -MM
$(ALL_CFLAGS
) $(COBJS
:.o
=.c
) >Dependencies
125 $(CXX
) -MM
$(ALL_CXXFLAGS
) $(CXXOBJS
:.o
=.
cxx) >>Dependencies
129 # Run oclint to check code coverage...
133 oclint
-o
=oclint.html
-html
$(CUPSDOBJS
:.o
=.c
) $(LIBOBJS
:.o
=.c
) -- $(ALL_CFLAGS
)
137 # Install all targets...
140 install: all install-data install-headers install-libs install-exec
144 # Install data files...
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
; \
160 if
test "$(STATEDIR)" != "$(SERVERROOT)"; then \
161 echo Creating
$(STATEDIR
)...
; \
162 $(INSTALL_DIR
) -m
755 $(STATEDIR
); \
164 echo Creating
$(STATEDIR
)/certs...
165 $(INSTALL_DIR
) -m
511 -o
$(CUPS_USER
) -g
$(CUPS_PRIMARY_SYSTEM_GROUP
) \
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
775 -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
; \
184 $(INSTALL_DIR
) -m
755 $(BUILDROOT
)$(INITDIR
)/rc0.d
; \
185 $(LN
) ..
/init.d
/cups
$(BUILDROOT
)$(INITDIR
)/rc0.d
/K
$(RCSTOP
)cups
; \
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
); \
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
); \
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
; \
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
); \
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
; \
218 # Install programs...
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; \
247 echo Installing header files in
$(INCLUDEDIR
)/cups...
248 $(INSTALL_DIR
) -m
755 $(INCLUDEDIR
)/cups
249 $(INSTALL_DATA
) mime.h
$(INCLUDEDIR
)/cups
253 # Install libraries...
256 install-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`; \
264 if
test $(LIBCUPSMIME
) = "libcupsmime.1.dylib"; then \
265 $(RM
) $(LIBDIR
)/libcupsmime.dylib
; \
266 $(LN
) $(LIBCUPSMIME
) $(LIBDIR
)/libcupsmime.dylib
; \
268 if
test "x$(SYMROOT)" != "x"; then \
269 $(INSTALL_DIR
) $(SYMROOT
); \
270 cp
$(LIBCUPSMIME
) $(SYMROOT
); \
271 dsymutil
$(SYMROOT
)/$(LIBCUPSMIME
); \
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
282 # Uninstall the scheduler...
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
)
301 -$(RMDIR
) $(REQUESTS
)/tmp
302 -$(RMDIR
) $(REQUESTS
)
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
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
; \
326 if
test "x$(INITDDIR)" != x
; then \
327 echo Uninstalling startup script...
; \
328 $(RM
) $(BUILDROOT
)$(INITDDIR
)/cups.sh
; \
329 $(RMDIR
) $(BUILDROOT
)$(INITDDIR
); \
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
; \
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
; \
342 if
test "x$(SMFMANIFESTDIR)" != x
; then \
343 echo Uninstalling SMF manifest file...
;\
344 $(RM
) $(BUILDROOT
)$(SMFMANIFESTDIR
)/cups.xml
; \
346 if
test "x$(XINETD)" != x
; then \
347 echo Uninstalling xinetd configuration file for cups-lpd...
; \
348 $(RM
) $(BUILDROOT
)$(XINETD
)/cups-lpd
; \
353 # Automatic API help files...
357 mxmldoc
--section
"Programming" \
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
366 mxmldoc
--framed api-mime \
367 --section
"Programming" \
369 --css ..
/doc
/cups-printable.css \
370 --header api-mime.header
--intro api-mime.shtml \
371 mime.h
$(LIBOBJS
:.o
=.c
)
375 # Make the scheduler executable, "cupsd".
378 cupsd
: $(CUPSDOBJS
) $(LIBCUPSMIME
) ..
/cups
/$(LIBCUPS
)
380 $(CC
) $(LDFLAGS
) -o cupsd
$(CUPSDOBJS
) -L.
-lcupsmime \
381 $(LIBZ
) $(SSLLIBS
) $(LIBSLP
) $(LIBLDAP
) $(PAMLIBS
) \
382 $(LIBPAPER
) $(LIBMALLOC
) $(SERVERLIBS
) $(ONDEMANDLIBS
) \
383 $(DNSSDLIBS
) $(LIBS
) $(LIBGSSAPI
) $(LIBWRAP
)
385 cupsd-static
: $(CUPSDOBJS
) libcupsmime.a ..
/cups
/$(LIBCUPSSTATIC
)
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
)
395 # Make the cupsfilter utility.
398 cupsfilter
: cupsfilter.o
$(LIBCUPSMIME
) ..
/cups
/$(LIBCUPS
)
400 $(CC
) $(LDFLAGS
) -o cupsfilter cupsfilter.o
-L.
-lcupsmime
$(LIBS
)
402 $(LN
) cupsfilter convert
406 # Make the device daemon, "cups-deviced".
409 cups-deviced
: cups-deviced.o util.o ..
/cups
/$(LIBCUPS
)
411 $(CC
) $(LDFLAGS
) -o cups-deviced cups-deviced.o util.o
$(LIBS
)
415 # Make the driver daemon, "cups-driverd".
418 cups-driverd
: cups-driverd.o util.o ..
/cups
/$(LIBCUPS
) ..
/ppdc
/$(LIBCUPSPPDC
)
420 $(CXX
) $(LDFLAGS
) -o cups-driverd cups-driverd.o util.o \
421 -L..
/ppdc
-lcupsppdc
$(LIBS
)
425 # Make the sandbox execution helper, "cups-exec".
428 cups-exec
: cups-exec.o
430 $(CC
) $(LDFLAGS
) -o cups-exec cups-exec.o
$(LIBS
)
434 # Make the line printer daemon, "cups-lpd".
437 cups-lpd
: cups-lpd.o ..
/cups
/$(LIBCUPS
)
439 $(CC
) $(LDFLAGS
) -o cups-lpd cups-lpd.o
$(LIBS
)
446 libcupsmime.so
.1: $(LIBOBJS
)
448 $(DSO
) $(ARCHFLAGS
) $(DSOFLAGS
) -o
$@
$(LIBOBJS
) $(LIBS
)
449 $(RM
) `basename $@ .1`
450 $(LN
) $@
`basename $@ .1`
454 # libcupsmime.1.dylib
457 libcupsmime
.1.dylib
: $(LIBOBJS
) libcupsmime.exp
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 \
465 $(RM
) libcupsmime.dylib
466 $(LN
) $@ libcupsmime.dylib
473 libcupsmime.la
: $(LIBOBJS
)
475 $(CC
) $(ARCHFLAGS
) $(DSOFLAGS
) -o
$@
$(LIBOBJS
:.o
=.lo
) -rpath
$(LIBDIR
) \
476 -version-info
1:0 $(LIBS
)
483 libcupsmime.a
: $(LIBOBJS
)
486 $(AR
) $(ARFLAGS
) $@
$(LIBOBJS
)
491 # Make the test program, "testlpd".
494 testlpd
: testlpd.o ..
/cups
/$(LIBCUPSSTATIC
) cups-lpd
496 $(CC
) $(LDFLAGS
) -o testlpd testlpd.o ..
/cups
/$(LIBCUPSSTATIC
) \
497 $(COMMONLIBS
) $(LIBZ
) $(SSLLIBS
) $(DNSSDLIBS
) $(LIBGSSAPI
)
504 testmime
: testmime.o libcupsmime.a ..
/cups
/$(LIBCUPSSTATIC
)
506 $(CC
) $(ARCHFLAGS
) $(LDFLAGS
) -o
$@ testmime.o libcupsmime.a \
507 ..
/cups
/$(LIBCUPSSTATIC
) $(COMMONLIBS
) $(LIBZ
) $(SSLLIBS
) \
508 $(DNSSDLIBS
) $(LIBGSSAPI
)
509 echo Running MIME tests...
514 # Make the test program, "testspeed".
517 testspeed
: testspeed.o ..
/cups
/$(LIBCUPSSTATIC
)
519 $(CC
) $(LDFLAGS
) -o testspeed testspeed.o ..
/cups
/$(LIBCUPSSTATIC
) \
520 $(SSLLIBS
) $(DNSSDLIBS
) $(COMMONLIBS
) $(LIBZ
) $(LIBGSSAPI
)
524 # Make the test program, "testsub".
527 testsub
: testsub.o ..
/cups
/$(LIBCUPSSTATIC
)
529 $(CC
) $(LDFLAGS
) -o testsub testsub.o ..
/cups
/$(LIBCUPSSTATIC
) \
530 $(SSLLIBS
) $(DNSSDLIBS
) $(COMMONLIBS
) $(LIBZ
) $(LIBGSSAPI
)
534 # Lines of code computation...
539 sloccount
$(CUPSDOBJS
:.o
=.c
) $(LIBOBJS
:.o
=.c
) cups-driverd.
cxx cups-lpd.c
2>/dev
/null | grep
"Total Physical" | awk
'{print $$9}'