2 # Scheduler Makefile for CUPS.
4 # Copyright 2007-2017 by Apple Inc.
5 # Copyright 1997-2007 by Easy Software Products, all rights reserved.
7 # Licensed under Apache License v2.0. See the file "LICENSE" for more information.
90 # Make library targets...
100 unittests
: $(UNITTARGETS
)
104 # Clean all object files...
109 $(RM
) $(TARGETS
) $(UNITTARGETS
) convert
110 $(RM
) libcupsmime.so libcupsmime.dylib
114 # Update dependencies (without system header dependencies...)
118 $(CC
) -MM
$(ALL_CFLAGS
) $(COBJS
:.o
=.c
) >Dependencies
119 $(CXX
) -MM
$(ALL_CXXFLAGS
) $(LD_CXXOBJS
:.o
=.
cxx) >>Dependencies
123 # Run oclint to check code coverage...
127 oclint
-o
=oclint.html
-html
$(CUPSDOBJS
:.o
=.c
) $(LIBOBJS
:.o
=.c
) -- $(ALL_CFLAGS
)
131 # Install all targets...
134 install: all install-data install-headers install-libs install-exec
138 # Install data files...
142 echo Creating
$(SERVERBIN
)/driver...
143 $(INSTALL_DIR
) -m
755 $(SERVERBIN
)/driver
144 echo Creating
$(SERVERROOT
)...
145 $(INSTALL_DIR
) -m
755 -g
$(CUPS_GROUP
) $(SERVERROOT
)
146 echo Creating
$(SERVERROOT
)/ppd...
147 $(INSTALL_DIR
) -m
755 -g
$(CUPS_GROUP
) $(SERVERROOT
)/ppd
148 if
test "x`uname`" != xDarwin
; then \
149 echo Creating
$(SERVERROOT
)/ssl...
; \
150 $(INSTALL_DIR
) -m
700 -g
$(CUPS_GROUP
) $(SERVERROOT
)/ssl
; \
152 if
test "$(STATEDIR)" != "$(SERVERROOT)"; then \
153 echo Creating
$(STATEDIR
)...
; \
154 $(INSTALL_DIR
) -m
755 $(STATEDIR
); \
156 echo Creating
$(STATEDIR
)/certs...
157 $(INSTALL_DIR
) -m
511 -o
$(CUPS_USER
) -g
$(CUPS_PRIMARY_SYSTEM_GROUP
) \
159 echo Creating
$(LOGDIR
)...
160 $(INSTALL_DIR
) -m
755 $(LOGDIR
)
161 echo Creating
$(REQUESTS
)...
162 $(INSTALL_DIR
) -m
710 -g
$(CUPS_GROUP
) $(REQUESTS
)
163 echo Creating
$(REQUESTS
)/tmp...
164 $(INSTALL_DIR
) -m
1770 -g
$(CUPS_GROUP
) $(REQUESTS
)/tmp
165 echo Creating
$(CACHEDIR
)...
166 $(INSTALL_DIR
) -m
770 -g
$(CUPS_GROUP
) $(CACHEDIR
)
167 if
test "x$(INITDIR)" != x
; then \
168 echo Installing init scripts...
; \
169 $(INSTALL_DIR
) -m
755 $(BUILDROOT
)$(INITDIR
)/init.d
; \
170 $(INSTALL_SCRIPT
) cups.sh
$(BUILDROOT
)$(INITDIR
)/init.d
/cups
; \
171 for level in
$(RCLEVELS
); do \
172 $(INSTALL_DIR
) -m
755 $(BUILDROOT
)$(INITDIR
)/rc
$${level}.d
; \
173 $(LN
) ..
/init.d
/cups
$(BUILDROOT
)$(INITDIR
)/rc
$${level}.d
/S
$(RCSTART
)cups
; \
174 $(LN
) ..
/init.d
/cups
$(BUILDROOT
)$(INITDIR
)/rc
$${level}.d
/K
$(RCSTOP
)cups
; \
176 $(INSTALL_DIR
) -m
755 $(BUILDROOT
)$(INITDIR
)/rc0.d
; \
177 $(LN
) ..
/init.d
/cups
$(BUILDROOT
)$(INITDIR
)/rc0.d
/K
$(RCSTOP
)cups
; \
179 if
test "x$(INITDDIR)" != x
; then \
180 echo Installing init script...
; \
181 $(INSTALL_DIR
) -m
755 $(BUILDROOT
)$(INITDDIR
); \
182 $(INSTALL_SCRIPT
) cups.sh
$(BUILDROOT
)$(INITDDIR
); \
184 if
test "x$(LAUNCHD_DIR)" != x
; then \
185 echo Installing launchd configuration files...
; \
186 $(INSTALL_DIR
) $(BUILDROOT
)$(LAUNCHD_DIR
); \
187 $(INSTALL_DATA
) org.cups.cupsd.plist
$(BUILDROOT
)$(LAUNCHD_DIR
); \
188 $(INSTALL_DATA
) org.cups.cups-lpd.plist
$(BUILDROOT
)$(LAUNCHD_DIR
); \
190 if
test "x$(SMFMANIFESTDIR)" != x
; then \
191 echo Installing SMF manifest in
$(SMFMANIFESTDIR
)...
;\
192 $(INSTALL_DIR
) $(BUILDROOT
)/$(SMFMANIFESTDIR
); \
193 $(INSTALL_SCRIPT
) cups.xml
$(BUILDROOT
)$(SMFMANIFESTDIR
)/cups.xml
; \
195 if
test "x$(SYSTEMD_DIR)" != x
; then \
196 echo Installing systemd configuration files...
; \
197 $(INSTALL_DIR
) $(BUILDROOT
)$(SYSTEMD_DIR
); \
198 $(INSTALL_DATA
) org.cups.cupsd.path
$(BUILDROOT
)$(SYSTEMD_DIR
); \
199 $(INSTALL_DATA
) org.cups.cupsd.service
$(BUILDROOT
)$(SYSTEMD_DIR
); \
200 $(INSTALL_DATA
) org.cups.cupsd.socket
$(BUILDROOT
)$(SYSTEMD_DIR
); \
201 $(INSTALL_DATA
) org.cups.cups-lpdAT.service
$(BUILDROOT
)$(SYSTEMD_DIR
)/org.cups.cups-lpd@.service
; \
202 $(INSTALL_DATA
) org.cups.cups-lpd.socket
$(BUILDROOT
)$(SYSTEMD_DIR
); \
203 elif
test "x$(XINETD)" != x
; then \
204 echo Installing xinetd configuration file for cups-lpd...
; \
205 $(INSTALL_DIR
) -m
755 $(BUILDROOT
)$(XINETD
); \
206 $(INSTALL_DATA
) cups-lpd.xinetd
$(BUILDROOT
)$(XINETD
)/cups-lpd
; \
211 # Install programs...
215 echo Installing programs in
$(SBINDIR
)...
216 $(INSTALL_DIR
) -m
755 $(SBINDIR
)
217 $(INSTALL_BIN
) -m
$(CUPS_CUPSD_FILE_PERM
) cupsd
$(SBINDIR
)
218 $(INSTALL_BIN
) cupsfilter
$(SBINDIR
)
219 echo Installing programs in
$(SERVERBIN
)/daemon...
220 $(INSTALL_DIR
) -m
755 $(SERVERBIN
)
221 $(INSTALL_DIR
) -m
755 $(SERVERBIN
)/daemon
222 $(INSTALL_BIN
) cups-deviced
$(SERVERBIN
)/daemon
223 $(INSTALL_BIN
) cups-driverd
$(SERVERBIN
)/daemon
224 $(INSTALL_BIN
) cups-exec
$(SERVERBIN
)/daemon
225 $(INSTALL_BIN
) cups-lpd
$(SERVERBIN
)/daemon
226 if
test "x$(SYMROOT)" != "x"; then \
227 $(INSTALL_DIR
) $(SYMROOT
); \
228 for file in
$(PROGRAMS
); do \
229 cp
$$file $(SYMROOT
); \
230 dsymutil
$(SYMROOT
)/$$file; \
240 if
test "x$(privateinclude)" != x
; then \
241 echo Installing private header files into
$(PRIVATEINCLUDE
)...
; \
242 $(INSTALL_DIR
) -m
755 $(PRIVATEINCLUDE
); \
243 $(INSTALL_DATA
) mime.h
$(PRIVATEINCLUDE
); \
248 # Install libraries...
251 install-libs
: $(INSTALLSTATIC
)
252 echo Installing libraries in
$(LIBDIR
)...
253 $(INSTALL_DIR
) -m
755 $(LIBDIR
)
254 $(INSTALL_LIB
) $(LIBCUPSMIME
) $(LIBDIR
)
255 if
test $(LIBCUPSMIME
) = "libcupsmime.so.1"; then \
256 $(RM
) $(LIBDIR
)/`basename $(LIBCUPSMIME) .1`; \
257 $(LN
) $(LIBCUPSMIME
) $(LIBDIR
)/`basename $(LIBCUPSMIME) .1`; \
259 if
test $(LIBCUPSMIME
) = "libcupsmime.1.dylib"; then \
260 $(RM
) $(LIBDIR
)/libcupsmime.dylib
; \
261 $(LN
) $(LIBCUPSMIME
) $(LIBDIR
)/libcupsmime.dylib
; \
263 if
test "x$(SYMROOT)" != "x"; then \
264 $(INSTALL_DIR
) $(SYMROOT
); \
265 cp
$(LIBCUPSMIME
) $(SYMROOT
); \
266 dsymutil
$(SYMROOT
)/$(LIBCUPSMIME
); \
270 $(INSTALL_DIR
) -m
755 $(LIBDIR
)
271 $(INSTALL_LIB
) -m
755 libcupsmime.a
$(LIBDIR
)
272 $(RANLIB
) $(LIBDIR
)/libcupsmime.a
273 $(CHMOD
) 555 $(LIBDIR
)/libcupsmime.a
277 # Uninstall the scheduler...
281 $(RM
) $(SBINDIR
)/cupsd
282 $(RM
) $(SBINDIR
)/cupsfilter
283 $(RM
) $(SERVERBIN
)/daemon
/cups-deviced
284 $(RM
) $(SERVERBIN
)/daemon
/cups-driverd
285 $(RM
) $(SERVERBIN
)/daemon
/cups-exec
286 $(RM
) $(SERVERBIN
)/daemon
/cups-lpd
287 -$(RMDIR
) $(STATEDIR
)/certs
288 -$(RMDIR
) $(STATEDIR
)
289 -$(RMDIR
) $(SERVERROOT
)/ppd
290 -$(RMDIR
) $(SERVERROOT
)/interfaces
291 -$(RMDIR
) $(SERVERROOT
)
292 -$(RMDIR
) $(SERVERBIN
)/driver
293 -$(RMDIR
) $(SERVERBIN
)/daemon
294 -$(RMDIR
) $(SERVERBIN
)
296 -$(RMDIR
) $(REQUESTS
)/tmp
297 -$(RMDIR
) $(REQUESTS
)
299 -$(RMDIR
) $(CACHEDIR
)
300 $(RM
) $(LIBDIR
)/libcupsmime
.1.dylib
301 $(RM
) $(LIBDIR
)/libcupsmime.a
302 $(RM
) $(LIBDIR
)/libcupsmime.dylib
303 $(RM
) $(LIBDIR
)/libcupsmime.so
304 $(RM
) $(LIBDIR
)/libcupsmime.so
.1
306 -if
test "x$(privateinclude)" != x
; then \
307 $(RM
) $(PRIVATEINCLUDE
)/mime.h
; \
308 $(RMDIR
) $(PRIVATEINCLUDE
); \
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
; \
323 if
test "x$(INITDDIR)" != x
; then \
324 echo Uninstalling startup script...
; \
325 $(RM
) $(BUILDROOT
)$(INITDDIR
)/cups.sh
; \
326 $(RMDIR
) $(BUILDROOT
)$(INITDDIR
); \
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
; \
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
; \
339 if
test "x$(SMFMANIFESTDIR)" != x
; then \
340 echo Uninstalling SMF manifest file...
;\
341 $(RM
) $(BUILDROOT
)$(SMFMANIFESTDIR
)/cups.xml
; \
343 if
test "x$(XINETD)" != x
; then \
344 echo Uninstalling xinetd configuration file for cups-lpd...
; \
345 $(RM
) $(BUILDROOT
)$(XINETD
)/cups-lpd
; \
350 # Make the scheduler executable, "cupsd".
353 cupsd
: $(CUPSDOBJS
) $(LIBCUPSMIME
) ..
/cups
/$(LIBCUPS
)
355 $(LD_CC
) $(LDFLAGS
) -o cupsd
$(CUPSDOBJS
) -L.
-lcupsmime \
356 $(LIBZ
) $(SSLLIBS
) $(LIBSLP
) $(LIBLDAP
) $(PAMLIBS
) \
357 $(LIBPAPER
) $(LIBMALLOC
) $(SERVERLIBS
) $(ONDEMANDLIBS
) \
358 $(DNSSDLIBS
) $(LIBS
) $(LIBGSSAPI
) $(LIBWRAP
)
360 cupsd-static
: $(CUPSDOBJS
) libcupsmime.a ..
/cups
/$(LIBCUPSSTATIC
)
362 $(LD_CC
) $(LDFLAGS
) -o cupsd-static
$(CUPSDOBJS
) libcupsmime.a \
363 $(LIBZ
) $(SSLLIBS
) $(LIBSLP
) $(LIBLDAP
) $(PAMLIBS
) \
364 ..
/cups
/$(LIBCUPSSTATIC
) $(COMMONLIBS
) $(LIBZ
) $(LIBPAPER
) \
365 $(LIBMALLOC
) $(SERVERLIBS
) $(ONDEMANDLIBS
) $(DNSSDLIBS
) \
366 $(LIBGSSAPI
) $(LIBWRAP
)
370 # Make the cupsfilter utility.
373 cupsfilter
: cupsfilter.o
$(LIBCUPSMIME
) ..
/cups
/$(LIBCUPS
)
375 $(LD_CC
) $(LDFLAGS
) -o cupsfilter cupsfilter.o
-L.
-lcupsmime
$(LIBS
)
377 $(LN
) cupsfilter convert
379 cupsfilter-static
: cupsfilter.o libcupsmime.a ..
/cups
/$(LIBCUPSSTATIC
)
381 $(LD_CC
) $(LDFLAGS
) -o cupsfilter-static cupsfilter.o libcupsmime.a \
382 ..
/cups
/$(LIBCUPSSTATIC
) $(COMMONLIBS
) $(LIBZ
) $(SSLLIBS
) \
383 $(DNSSDLIBS
) $(LIBGSSAPI
)
387 # Make the device daemon, "cups-deviced".
390 cups-deviced
: cups-deviced.o util.o ..
/cups
/$(LIBCUPS
)
392 $(LD_CC
) $(LDFLAGS
) -o cups-deviced cups-deviced.o util.o
$(LIBS
)
396 # Make the driver daemon, "cups-driverd".
399 cups-driverd
: cups-driverd.o util.o ..
/cups
/$(LIBCUPS
) ..
/ppdc
/$(LIBCUPSPPDC
)
401 $(LD_CXX
) $(LDFLAGS
) -o cups-driverd cups-driverd.o util.o \
402 -L..
/ppdc
-lcupsppdc
$(LIBS
)
406 # Make the sandbox execution helper, "cups-exec".
409 cups-exec
: cups-exec.o
411 $(LD_CC
) $(LDFLAGS
) -o cups-exec cups-exec.o
$(LIBS
)
415 # Make the line printer daemon, "cups-lpd".
418 cups-lpd
: cups-lpd.o ..
/cups
/$(LIBCUPS
)
420 $(LD_CC
) $(LDFLAGS
) -o cups-lpd cups-lpd.o
$(LIBS
)
427 libcupsmime.so
.1: $(LIBOBJS
)
429 $(DSO
) $(ARCHFLAGS
) $(DSOFLAGS
) -o
$@
$(LIBOBJS
) $(LIBS
)
430 $(RM
) `basename $@ .1`
431 $(LN
) $@
`basename $@ .1`
435 # libcupsmime.1.dylib
438 libcupsmime
.1.dylib
: $(LIBOBJS
) libcupsmime.exp
440 $(DSO
) $(ARCHFLAGS
) $(DSOFLAGS
) -o
$@ \
441 -install_name
$(libdir)/$@ \
442 -current_version
1.0.0 \
443 -compatibility_version
1.0.0 \
444 -exported_symbols_list libcupsmime.exp \
446 $(RM
) libcupsmime.dylib
447 $(LN
) $@ libcupsmime.dylib
454 libcupsmime.la
: $(LIBOBJS
)
456 $(LD_CC
) $(ARCHFLAGS
) $(DSOFLAGS
) -o
$@
$(LIBOBJS
:.o
=.lo
) -rpath
$(LIBDIR
) \
457 -version-info
1:0 $(LIBS
)
464 libcupsmime.a
: $(LIBOBJS
)
467 $(AR
) $(ARFLAGS
) $@
$(LIBOBJS
)
472 # Make the test program, "testlpd".
475 testlpd
: testlpd.o ..
/cups
/$(LIBCUPSSTATIC
) cups-lpd
477 $(LD_CC
) $(LDFLAGS
) -o testlpd testlpd.o ..
/cups
/$(LIBCUPSSTATIC
) \
478 $(COMMONLIBS
) $(LIBZ
) $(SSLLIBS
) $(DNSSDLIBS
) $(LIBGSSAPI
)
485 testmime
: testmime.o libcupsmime.a ..
/cups
/$(LIBCUPSSTATIC
)
487 $(LD_CC
) $(ARCHFLAGS
) $(LDFLAGS
) -o
$@ testmime.o libcupsmime.a \
488 ..
/cups
/$(LIBCUPSSTATIC
) $(COMMONLIBS
) $(LIBZ
) $(SSLLIBS
) \
489 $(DNSSDLIBS
) $(LIBGSSAPI
)
490 echo Running MIME tests...
495 # Make the test program, "testspeed".
498 testspeed
: testspeed.o ..
/cups
/$(LIBCUPSSTATIC
)
500 $(LD_CC
) $(LDFLAGS
) -o testspeed testspeed.o ..
/cups
/$(LIBCUPSSTATIC
) \
501 $(SSLLIBS
) $(DNSSDLIBS
) $(COMMONLIBS
) $(LIBZ
) $(LIBGSSAPI
)
505 # Make the test program, "testsub".
508 testsub
: testsub.o ..
/cups
/$(LIBCUPSSTATIC
)
510 $(LD_CC
) $(LDFLAGS
) -o testsub testsub.o ..
/cups
/$(LIBCUPSSTATIC
) \
511 $(SSLLIBS
) $(DNSSDLIBS
) $(COMMONLIBS
) $(LIBZ
) $(LIBGSSAPI
)
515 # Lines of code computation...
520 sloccount
$(CUPSDOBJS
:.o
=.c
) $(LIBOBJS
:.o
=.c
) cups-driverd.
cxx cups-lpd.c
2>/dev
/null | grep
"Total Physical" | awk
'{print $$9}'