#
-# "$Id: Makefile 4801 2005-10-18 21:09:12Z mike $"
+# "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $"
#
# Scheduler Makefile for the Common UNIX Printing System (CUPS).
#
-# Copyright 1997-2005 by Easy Software Products, all rights reserved.
+# Copyright 2007-2008 by Apple Inc.
+# Copyright 1997-2007 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
-# property of Easy Software Products and are protected by Federal
-# copyright law. Distribution and use rights are outlined in the file
-# "LICENSE.txt" which should have been included with this file. If this
-# file is missing or damaged please contact Easy Software Products
-# at:
-#
-# Attn: CUPS Licensing Information
-# Easy Software Products
-# 44141 Airport View Drive, Suite 204
-# Hollywood, Maryland 20636 USA
-#
-# Voice: (301) 373-9600
-# EMail: cups-info@cups.org
-# WWW: http://www.cups.org
+# property of Apple Inc. and are protected by Federal copyright
+# law. Distribution and use rights are outlined in the file "LICENSE.txt"
+# which should have been included with this file. If this file is
+# file is missing or damaged, see the license at "http://www.cups.org/".
#
include ../Makedefs
printers.o \
process.o \
quotas.o \
+ removefile.o \
+ select.o \
server.o \
statbuf.o \
- subscriptions.o
-MIMEOBJS = \
+ subscriptions.o \
+ sysman.o
+LIBOBJS = \
filter.o \
mime.o \
type.o
+LIB32OBJS = $(LIBOBJS:.o=.32.o)
+LIB64OBJS = $(LIBOBJS:.o=.64.o)
OBJS = \
$(CUPSDOBJS) \
- $(MIMEOBJS) \
+ $(LIBOBJS) \
+ $(LIB32OBJS) \
+ $(LIB64OBJS) \
+ cupsfilter.o \
cups-deviced.o \
cups-driverd.o \
cups-lpd.o \
cups-polld.o \
testdirsvc.o \
+ testlpd.o \
testmime.o \
testspeed.o \
+ testsub.o \
util.o
+
+LIBTARGETS = \
+ $(LIBCUPSMIME) \
+ $(LIB32CUPSMIME) \
+ $(LIB64CUPSMIME) \
+ libcupsmime.a \
+ testmime
+
TARGETS = \
+ $(LIBTARGETS) \
cupsd \
+ cupsfilter \
cups-deviced \
cups-driverd \
cups-lpd \
cups-polld \
- libmime.a \
testdirsvc \
- testmime \
- testspeed
+ testlpd \
+ testspeed \
+ testsub
#
all: $(TARGETS)
+#
+# Make library targets...
+#
+
+libs: $(LIBTARGETS)
+
+
#
# Clean all object files...
#
clean:
$(RM) $(OBJS)
- $(RM) $(TARGETS)
+ $(RM) $(TARGETS) convert
+ $(RM) libcupsmime.so libcupsmime.sl libcupsmime.dylib
+ $(RM) -r 32bit 64bit
#
#
depend:
- makedepend -Y -I.. -fDependencies $(OBJS:.o=.c) >/dev/null 2>&1
+ touch Dependencies.tmp
+ makedepend -Y -I.. -fDependencies.tmp $(OBJS:.o=.c) >/dev/null 2>&1
+ $(RM) Dependencies
+ cp Dependencies.tmp Dependencies
+ sed -E -e '1,$$s/^([^.]+)\.o:/\1\.32.o: \1\.c /' Dependencies.tmp >>Dependencies
+ sed -E -e '1,$$s/^([^.]+)\.o:/\1\.64.o: \1\.c /' Dependencies.tmp >>Dependencies
+ $(RM) Dependencies.tmp
#
-# Install the scheduler...
+# Install all targets...
#
-install: all
- echo Creating $(SBINDIR)...
- $(INSTALL_DIR) $(SBINDIR)
- echo Installing cupsd in $(SBINDIR)...
- $(INSTALL_BIN) cupsd $(SBINDIR)
- echo Creating $(SERVERBIN)...
- $(INSTALL_DIR) $(SERVERBIN)
- echo Creating $(SERVERBIN)/daemon...
- $(INSTALL_DIR) $(SERVERBIN)/daemon
- echo Installing cups-deviced, cups-driverd, cups-lpd, and cups-polld in $(SERVERBIN)/daemon...
- $(INSTALL_BIN) cups-deviced $(SERVERBIN)/daemon
- $(INSTALL_BIN) cups-driverd $(SERVERBIN)/daemon
- $(INSTALL_BIN) cups-lpd $(SERVERBIN)/daemon
- $(INSTALL_BIN) cups-polld $(SERVERBIN)/daemon
+install: all install-data install-headers install-libs install-exec
+
+
+#
+# Install data files...
+#
+
+install-data:
echo Creating $(SERVERBIN)/driver...
- $(INSTALL_DIR) $(SERVERBIN)/driver
+ $(INSTALL_DIR) -m 755 $(SERVERBIN)/driver
echo Creating $(SERVERROOT)...
- $(INSTALL_DIR) $(SERVERROOT)
+ $(INSTALL_DIR) -m 755 $(SERVERROOT)
+ -chgrp $(CUPS_GROUP) $(SERVERROOT)
echo Creating $(SERVERROOT)/interfaces...
- $(INSTALL_DIR) $(SERVERROOT)/interfaces
+ $(INSTALL_DIR) -m 755 $(SERVERROOT)/interfaces
+ -chgrp $(CUPS_GROUP) $(SERVERROOT)/interfaces
echo Creating $(SERVERROOT)/ppd...
- $(INSTALL_DIR) $(SERVERROOT)/ppd
- echo Creating $(STATEDIR)...
- $(INSTALL_DIR) $(STATEDIR)
- echo Creating $(STATEDIR)/certs...
- $(INSTALL_DIR) $(STATEDIR)/certs
+ $(INSTALL_DIR) -m 755 $(SERVERROOT)/ppd
+ -chgrp $(CUPS_GROUP) $(SERVERROOT)/ppd
+ -if test "x`uname`" != xDarwin; then \
+ echo Creating $(SERVERROOT)/ssl...; \
+ $(INSTALL_DIR) -m 700 $(SERVERROOT)/ssl; \
+ chgrp $(CUPS_GROUP) $(SERVERROOT)/ssl || true; \
+ echo Creating $(STATEDIR)...; \
+ $(INSTALL_DIR) -m 755 $(STATEDIR); \
+ echo Creating $(STATEDIR)/certs...; \
+ $(INSTALL_DIR) -m 511 $(STATEDIR)/certs; \
+ chgrp $(CUPS_PRIMARY_SYSTEM_GROUP) $(STATEDIR)/certs || true; \
+ fi
echo Creating $(LOGDIR)...
- $(INSTALL_DIR) $(LOGDIR)
+ $(INSTALL_DIR) -m 755 $(LOGDIR)
echo Creating $(REQUESTS)...
- $(INSTALL_DIR) $(REQUESTS)
+ $(INSTALL_DIR) -m 710 $(REQUESTS)
+ -chgrp $(CUPS_GROUP) $(REQUESTS)
echo Creating $(REQUESTS)/tmp...
- $(INSTALL_DIR) $(REQUESTS)/tmp
+ $(INSTALL_DIR) -m 1770 $(REQUESTS)/tmp
+ -chgrp $(CUPS_GROUP) $(REQUESTS)/tmp
echo Creating $(CACHEDIR)...
- $(INSTALL_DIR) $(CACHEDIR)
- echo Creating $(CACHEDIR)/ppd...
- $(INSTALL_DIR) $(CACHEDIR)/ppd
+ $(INSTALL_DIR) -m 775 $(CACHEDIR)
+ -chgrp $(CUPS_GROUP) $(CACHEDIR)
+# echo Creating $(CACHEDIR)/ppd...
+# $(INSTALL_DIR) -m 755 $(CACHEDIR)/ppd
+# -chgrp $(CUPS_GROUP) $(CACHEDIR)/ppd
+
+
+#
+# Install programs...
+#
+
+install-exec:
+ echo Installing programs in $(SBINDIR)...
+ $(INSTALL_DIR) -m 755 $(SBINDIR)
+ $(INSTALL_BIN) cupsd $(SBINDIR)
+ $(INSTALL_BIN) cupsfilter $(SBINDIR)
+ -if test "x`uname`" = xDarwin; then \
+ $(INSTALL_DIR) $(BUILDROOT)/System/Library/Printers/Libraries; \
+ $(LN) $(sbindir)/cupsfilter $(BUILDROOT)/System/Library/Printers/Libraries/convert; \
+ fi
+ echo Installing programs in $(SERVERBIN)/daemon...
+ $(INSTALL_DIR) -m 755 $(SERVERBIN)
+ $(INSTALL_DIR) -m 755 $(SERVERBIN)/daemon
+ $(INSTALL_BIN) cups-deviced $(SERVERBIN)/daemon
+ $(INSTALL_BIN) cups-driverd $(SERVERBIN)/daemon
+ $(INSTALL_BIN) cups-lpd $(SERVERBIN)/daemon
+ $(INSTALL_BIN) cups-polld $(SERVERBIN)/daemon
+ if test "x$(SYMROOT)" != "x"; then \
+ $(INSTALL_DIR) $(SYMROOT); \
+ for file in $(TARGETS); do \
+ cp $$file $(SYMROOT); \
+ done \
+ fi
+
+
+#
+# Install headers...
+#
+
+install-headers:
+ echo Installing header files in $(INCLUDEDIR)/cups...
+ $(INSTALL_DIR) -m 755 $(INCLUDEDIR)/cups
+ $(INSTALL_DATA) mime.h $(INCLUDEDIR)/cups
+
+
+#
+# Install libraries...
+#
+
+install-libs: $(INSTALLSTATIC) $(INSTALL32) $(INSTALL64)
+ echo Installing libraries in $(LIBDIR)...
+ $(INSTALL_DIR) -m 755 $(LIBDIR)
+ $(INSTALL_LIB) $(LIBCUPSMIME) $(LIBDIR)
+ if test $(LIBCUPSMIME) = "libcupsmime.so.1" -o $(LIBCUPSMIME) = "libcupsmime.sl.1"; then \
+ $(RM) $(LIBDIR)/`basename $(LIBCUPSMIME) .1`; \
+ $(LN) $(LIBCUPSMIME) $(LIBDIR)/`basename $(LIBCUPSMIME) .1`; \
+ fi
+ if test $(LIBCUPSMIME) = "libcupsmime.1.dylib"; then \
+ $(RM) $(LIBDIR)/libcupsmime.dylib; \
+ $(LN) $(LIBCUPSMIME) $(LIBDIR)/libcupsmime.dylib; \
+ fi
+ if test "x$(SYMROOT)" != "x"; then \
+ $(INSTALL_DIR) $(SYMROOT); \
+ cp $(LIBCUPSMIME) $(SYMROOT); \
+ fi
+
+installstatic:
+ $(INSTALL_DIR) -m 755 $(LIBDIR)
+ $(INSTALL_LIB) libcupsmime.a $(LIBDIR)
+ $(RANLIB) $(LIBDIR)/libcupsmime.a
+
+install32bit:
+ echo Installing libraries in $(LIB32DIR)...
+ $(INSTALL_DIR) -m 755 $(LIB32DIR)
+ $(INSTALL_LIB) 32bit/libcupsmime.so.1 $(LIB32DIR)/libcupsmime.so.1
+ $(LN) libcupsmime.so.1 $(LIB32DIR)/libcupsmime.so
+
+install64bit:
+ echo Installing libraries in $(LIB64DIR)...
+ $(INSTALL_DIR) -m 755 $(LIB64DIR)
+ $(INSTALL_LIB) 64bit/libcupsmime.so.1 $(LIB64DIR)/libcupsmime.so.1
+ $(LN) libcupsmime.so.1 $(LIB64DIR)/libcupsmime.so
+
+
+#
+# Uninstall the scheduler...
+#
+
+uninstall: $(UNINSTALL32) $(UNINSTALL64)
+ $(RM) $(SBINDIR)/cupsd
+ $(RM) $(SBINDIR)/cupsfilter
+ $(RM) $(SERVERBIN)/daemon/cups-deviced
+ $(RM) $(SERVERBIN)/daemon/cups-driverd
+ $(RM) $(SERVERBIN)/daemon/cups-lpd
+ $(RM) $(SERVERBIN)/daemon/cups-polld
+ $(RM) $(BUILDROOT)/System/Library/Printers/Libraries/convert
+ -$(RMDIR) $(STATEDIR)/certs
+ -$(RMDIR) $(STATEDIR)
+ -$(RMDIR) $(SERVERROOT)/ppd
+ -$(RMDIR) $(SERVERROOT)/interfaces
+ -$(RMDIR) $(SERVERROOT)
+ -$(RMDIR) $(SERVERBIN)/driver
+ -$(RMDIR) $(SERVERBIN)/daemon
+ -$(RMDIR) $(SERVERBIN)
+ -$(RMDIR) $(SBINDIR)
+ -$(RMDIR) $(REQUESTS)/tmp
+ -$(RMDIR) $(REQUESTS)
+ -$(RMDIR) $(LOGDIR)
+ -$(RMDIR) $(CACHEDIR)
+ $(RM) $(LIBDIR)/libcupsmime.1.dylib
+ $(RM) $(LIBDIR)/libcupsmime.a
+ $(RM) $(LIBDIR)/libcupsmime.dylib
+ $(RM) $(LIBDIR)/libcupsmime_s.a
+ $(RM) $(LIBDIR)/libcupsmime.sl
+ $(RM) $(LIBDIR)/libcupsmime.sl.1
+ $(RM) $(LIBDIR)/libcupsmime.so
+ $(RM) $(LIBDIR)/libcupsmime.so.1
+ -$(RMDIR) $(LIBDIR)
+ $(RM) $(INCLUDEDIR)/cups/mime.h
+ -$(RMDIR) $(INCLUDEDIR)/cups
+
+uninstall32bit:
+ $(RM) $(LIB32DIR)/libcupsmime.so
+ $(RM) $(LIB32DIR)/libcupsmime.so.1
+ -$(RMDIR) $(LIB32DIR)
+
+uninstall64bit:
+ $(RM) $(LIB64DIR)/libcupsmime.so
+ $(RM) $(LIB64DIR)/libcupsmime.so.1
+ -$(RMDIR) $(LIB64DIR)
+
+
+#
+# Automatic API help files...
+#
+
+apihelp:
+ mxmldoc --section "Programming" \
+ --title "MIME API" \
+ --css ../doc/cups-printable.css \
+ --header api-mime.header --intro api-mime.shtml \
+ mime.h $(LIBOBJS:.o=.c) >../doc/help/api-mime.html
+
+framedhelp:
+ mxmldoc --framed api-mime \
+ --section "Programming" \
+ --title "MIME API" \
+ --css ../doc/cups-printable.css \
+ --header api-mime.header --intro api-mime.shtml \
+ mime.h $(LIBOBJS:.o=.c)
#
# Make the scheduler executable, "cupsd".
#
-cupsd: $(CUPSDOBJS) libmime.a ../cups/$(LIBCUPS)
+cupsd: $(CUPSDOBJS) $(LIBCUPSMIME) ../cups/$(LIBCUPS)
+ echo Linking $@...
+ $(CC) $(LDFLAGS) -o cupsd $(CUPSDOBJS) -L. -lcupsmime \
+ $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \
+ $(LIBPAPER) $(LIBMALLOC) $(CUPSDLIBS) $(DNSSDLIBS) $(LIBS) \
+ $(LIBGSSAPI)
+
+cupsd-static: $(CUPSDOBJS) libcupsmime.a ../cups/libcups.a
echo Linking $@...
- $(CC) $(LDFLAGS) -o cupsd $(CUPSDOBJS) libmime.a \
- $(LIBZ) $(SSLLIBS) $(LIBSLP) $(PAMLIBS) $(LIBS) \
- $(LIBPAPER) $(LIBMALLOC)
+ $(CC) $(LDFLAGS) -o cupsd-static $(CUPSDOBJS) libcupsmime.a \
+ $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \
+ ../cups/libcups.a $(COMMONLIBS) $(LIBZ) $(LIBPAPER) \
+ $(LIBMALLOC) $(CUPSDLIBS) $(DNSSDLIBS) $(LIBGSSAPI)
-cupsd-static: $(CUPSDOBJS) libmime.a ../cups/libcups.a
+
+#
+# Make the cupsfilter utility.
+#
+
+cupsfilter: cupsfilter.o $(LIBCUPSMIME) ../cups/$(LIBCUPS)
echo Linking $@...
- $(CC) $(LDFLAGS) -o cupsd-static $(CUPSDOBJS) libmime.a \
- $(LIBZ) $(SSLLIBS) $(LIBSLP) $(PAMLIBS) ../cups/libcups.a \
- $(COMMONLIBS) $(LIBZ) $(LIBPAPER) $(LIBMALLOC)
+ $(CC) $(LDFLAGS) -o cupsfilter cupsfilter.o -L. -lcupsmime $(LIBS)
+ $(RM) convert
+ $(LN) cupsfilter convert
#
#
-# libmime.a
+# libcupsmime.so.1, libcupsmime.sl.1
+#
+
+libcupsmime.so.1 libcupsmime.sl.1: $(LIBOBJS)
+ echo Linking $@...
+ $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LIBS)
+ $(RM) `basename $@ .1`
+ $(LN) $@ `basename $@ .1`
+
+
+#
+# 32bit/libcupsmime.so.1
#
-libmime.a: $(MIMEOBJS)
+32bit/libcupsmime.so.1: $(LIB32OBJS)
+ echo Linking 32-bit $@...
+ -mkdir 32bit
+ $(DSO) $(ARCH32FLAGS) $(DSO32FLAGS) -o $@ $(LIB32OBJS) $(LIBS)
+ $(RM) 32bit/libcupsmime.so
+ $(LN) libcupsmime.so.1 32bit/libcupsmime.so
+
+
+#
+# 64bit/libcupsmime.so.1
+#
+
+64bit/libcupsmime.so.1: $(LIB64OBJS)
+ echo Linking 64-bit $@...
+ -mkdir 64bit
+ $(DSO) $(ARCH64FLAGS) $(DSO64FLAGS) -o $@ $(LIB64OBJS) $(LIBS)
+ $(RM) 64bit/libcupsmime.so
+ $(LN) libcupsmime.so.1 64bit/libcupsmime.so
+
+
+#
+# libcupsmime.1.dylib
+#
+
+libcupsmime.1.dylib: $(LIBOBJS) libcupsmime.exp
+ echo Linking $@...
+ $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \
+ -install_name $(libdir)/$@ \
+ -current_version 1.0.0 \
+ -compatibility_version 1.0.0 \
+ -exported_symbols_list libcupsmime.exp \
+ $(LIBOBJS) $(LIBS)
+ $(RM) libcupsmime.dylib
+ $(LN) $@ libcupsmime.dylib
+
+
+#
+# libcupsmime_s.a
+#
+
+libcupsmime_s.a: $(LIBOBJS)
+ echo Creating $@...
+ $(DSO) $(DSOFLAGS) -o libcupsmime_s.o $(LIBOBJS) $(LIBS)
+ $(RM) $@
+ $(AR) $(ARFLAGS) $@ libcupsmime_s.o
+
+
+#
+# libcupsmime.la
+#
+
+libcupsmime.la: $(LIBOBJS)
+ echo Linking $@...
+ $(CC) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) -rpath $(LIBDIR) \
+ -version-info 1:0 $(LIBS)
+
+
+#
+# libcupsmime.a
+#
+
+libcupsmime.a: $(LIBOBJS)
echo Archiving $@...
$(RM) $@
- $(AR) $(ARFLAGS) $@ $(MIMEOBJS)
+ $(AR) $(ARFLAGS) $@ $(LIBOBJS)
$(RANLIB) $@
$(CC) $(LDFLAGS) -o testdirsvc testdirsvc.o $(COMMONLIBS) $(NETLIBS)
+#
+# Make the test program, "testlpd".
+#
+
+testlpd: testlpd.o ../cups/libcups.a cups-lpd
+ echo Linking $@...
+ $(CC) $(LDFLAGS) -o testlpd testlpd.o ../cups/libcups.a \
+ $(COMMONLIBS) $(LIBZ) $(SSLLIBS) $(LIBGSSAPI)
+
+
#
# testmime
#
-testmime: testmime.o libmime.a
+testmime: testmime.o libcupsmime.a ../cups/libcups.a
echo Linking $@...
- $(CC) $(LDFLAGS) -o $@ testmime.o libmime.a ../cups/libcups.a \
- $(COMMONLIBS) $(LIBZ)
+ $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testmime.o libcupsmime.a \
+ ../cups/libcups.a $(COMMONLIBS) $(LIBZ) $(SSLLIBS) $(LIBGSSAPI)
+ echo Running MIME tests...
+ ./testmime
#
# Make the test program, "testspeed".
#
-testspeed: testspeed.o ../cups/$(LIBCUPS)
+testspeed: testspeed.o ../cups/libcups.a
+ echo Linking $@...
+ $(CC) $(LDFLAGS) -o testspeed testspeed.o ../cups/libcups.a \
+ $(SSLLIBS) $(COMMONLIBS) $(LIBZ) $(LIBGSSAPI)
+
+
+#
+# Make the test program, "testsub".
+#
+
+testsub: testsub.o ../cups/libcups.a
echo Linking $@...
- $(CC) $(LDFLAGS) -o testspeed testspeed.o $(LIBS)
+ $(CC) $(LDFLAGS) -o testsub testsub.o ../cups/libcups.a \
+ $(SSLLIBS) $(COMMONLIBS) $(LIBZ) $(LIBGSSAPI)
#
#
-# End of "$Id: Makefile 4801 2005-10-18 21:09:12Z mike $".
+# End of "$Id: Makefile 7558 2008-05-12 23:46:44Z mike $".
#