#
-# "$Id: Makefile 4961 2006-01-20 22:19:13Z mike $"
+# "$Id: Makefile 7871 2008-08-27 21:12:43Z mike $"
#
# API library Makefile for the Common UNIX Printing System (CUPS).
#
+# Copyright 2007-2008 by Apple Inc.
# Copyright 1997-2006 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/".
#
# This file is subject to the Apple OS-Developed Software exception.
#
#
LIBOBJS = \
+ adminutil.o \
array.o \
attr.o \
auth.o \
backchannel.o \
+ backend.o \
+ conflicts.o \
custom.o \
+ debug.o \
dest.o \
dir.o \
emit.o \
encode.o \
file.o \
+ getdevices.o \
+ getifaddrs.o \
getputfile.o \
globals.o \
http.o \
mark.o \
md5.o \
md5passwd.o \
- normalize.o \
notify.o \
options.o \
page.o \
ppd.o \
+ request.o \
+ sidechannel.o \
+ snmp.o \
snprintf.o \
string.o \
tempfile.o \
transcode.o \
usersys.o \
util.o
+LIB32OBJS = $(LIBOBJS:.o=.32.o)
+LIB64OBJS = $(LIBOBJS:.o=.64.o)
OBJS = \
$(LIBOBJS) \
+ $(LIB32OBJS) \
+ $(LIB64OBJS) \
+ testadmin.o \
testarray.o \
+ testconflicts.o \
+ testcups.o \
testfile.o \
testhttp.o \
testi18n.o \
testipp.o \
+ testoptions.o \
testlang.o \
testppd.o \
+ testsnmp.o \
php_cups_wrap.o
#
HEADERS = \
+ adminutil.h \
array.h \
+ backend.h \
cups.h \
dir.h \
file.h \
http.h \
- i18n.h \
ipp.h \
language.h \
- md5.h \
- normalize.h \
ppd.h \
- transcode.h
+ raster.h \
+ sidechannel.h \
+ transcode.h \
+ versioning.h
#
# Targets in this directory...
#
-TARGETS = \
+LIBTARGETS = \
$(LIBCUPS) \
- libcups.a \
+ $(LIB32CUPS) \
+ $(LIB64CUPS) \
+ libcups.a
+
+UNITTARGETS = \
+ testadmin \
testarray \
+ testconflicts \
+ testcups \
testfile \
testhttp \
testi18n \
testipp \
testlang \
- testppd
+ testoptions \
+ testppd \
+ testsnmp
+
+TARGETS = \
+ $(LIBTARGETS)
#
all: $(TARGETS)
+#
+# Make library targets...
+#
+
+libs: $(LIBTARGETS)
+
+
+#
+# Make unit tests...
+#
+
+unittests: $(UNITTARGETS)
+
+
#
# Remove object and target files...
#
clean:
- $(RM) $(OBJS) $(TARGETS) `basename $(LIBCUPS) .2` libcups.dylib
+ $(RM) $(OBJS) $(TARGETS) $(UNITTARGETS)
+ $(RM) libcups.so libcups.sl libcups.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 all targets...
+#
+
+install: all install-data install-headers install-libs install-exec
+
+
+#
+# Install data files...
+#
+
+install-data:
+
+
+#
+# Install programs...
+#
+
+install-exec:
#
-# Install object and target files...
+# Install headers...
#
-install: all installhdrs
- $(INSTALL_DIR) $(LIBDIR)
+install-headers:
+ echo Installing header files into $(INCLUDEDIR)/cups...
+ $(INSTALL_DIR) -m 755 $(INCLUDEDIR)/cups
+ for file in $(HEADERS); do \
+ $(INSTALL_DATA) $$file $(INCLUDEDIR)/cups; \
+ done
+
+
+#
+# Install libraries...
+#
+
+install-libs: $(INSTALLSTATIC) $(INSTALL32) $(INSTALL64)
+ echo Installing libraries in $(LIBDIR)...
+ $(INSTALL_DIR) -m 755 $(LIBDIR)
$(INSTALL_LIB) $(LIBCUPS) $(LIBDIR)
if test $(LIBCUPS) = "libcups.so.2" -o $(LIBCUPS) = "libcups.sl.2"; then \
$(RM) $(LIBDIR)/`basename $(LIBCUPS) .2`; \
$(LN) $(LIBCUPS) $(LIBDIR)/`basename $(LIBCUPS) .2`; \
fi
if test $(LIBCUPS) = "libcups.2.dylib"; then \
- $(STRIP) -x $(LIBDIR)/$(LIBCUPS); \
$(RM) $(LIBDIR)/libcups.dylib; \
$(LN) $(LIBCUPS) $(LIBDIR)/libcups.dylib; \
fi
- if test $(LIBCUPS) != "libcups.a"; then \
- $(INSTALL_LIB) libcups.a $(LIBDIR); \
- $(RANLIB) $(LIBDIR)/libcups.a; \
+ if test "x$(SYMROOT)" != "x"; then \
+ $(INSTALL_DIR) $(SYMROOT); \
+ cp $(LIBCUPS) $(SYMROOT); \
fi
-installhdrs:
- $(INSTALL_DIR) $(INCLUDEDIR)/cups
+installstatic:
+ $(INSTALL_DIR) -m 755 $(LIBDIR)
+ $(INSTALL_LIB) libcups.a $(LIBDIR)
+ $(RANLIB) $(LIBDIR)/libcups.a
+
+install32bit:
+ echo Installing libraries in $(LIB32DIR)...
+ $(INSTALL_DIR) -m 755 $(LIB32DIR)
+ $(INSTALL_LIB) 32bit/libcups.so.2 $(LIB32DIR)/libcups.so.2
+ $(LN) libcups.so.2 $(LIB32DIR)/libcups.so
+
+install64bit:
+ echo Installing libraries in $(LIB64DIR)...
+ $(INSTALL_DIR) -m 755 $(LIB64DIR)
+ $(INSTALL_LIB) 64bit/libcups.so.2 $(LIB64DIR)/libcups.so.2
+ $(LN) libcups.so.2 $(LIB64DIR)/libcups.so
+
+
+#
+# Uninstall object and target files...
+#
+
+uninstall: $(UNINSTALL32) $(UNINSTALL64)
+ $(RM) $(LIBDIR)/libcups.2.dylib
+ $(RM) $(LIBDIR)/libcups.a
+ $(RM) $(LIBDIR)/libcups.dylib
+ $(RM) $(LIBDIR)/libcups_s.a
+ $(RM) $(LIBDIR)/libcups.sl
+ $(RM) $(LIBDIR)/libcups.sl.2
+ $(RM) $(LIBDIR)/libcups.so
+ $(RM) $(LIBDIR)/libcups.so.2
+ -$(RMDIR) $(LIBDIR)
for file in $(HEADERS); do \
- $(INSTALL_DATA) $$file $(INCLUDEDIR)/cups; \
+ $(RM) $(INCLUDEDIR)/cups/$$file; \
done
+ -$(RMDIR) $(INCLUDEDIR)/cups
+
+uninstall32bit:
+ $(RM) $(LIB32DIR)/libcups.so
+ $(RM) $(LIB32DIR)/libcups.so.2
+ -$(RMDIR) $(LIB32DIR)
+
+uninstall64bit:
+ $(RM) $(LIB64DIR)/libcups.so
+ $(RM) $(LIB64DIR)/libcups.so.2
+ -$(RMDIR) $(LIB64DIR)
#
libcups.so.2 libcups.sl.2: $(LIBOBJS)
echo Linking $@...
- $(DSO) $(DSOFLAGS) -o $@ $(LIBOBJS) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+ $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
$(RM) `basename $@ .2`
$(LN) $@ `basename $@ .2`
+#
+# 32bit/libcups.so.2
+#
+
+32bit/libcups.so.2: $(LIB32OBJS)
+ echo Linking 32-bit $@...
+ -mkdir 32bit
+ $(DSO) $(ARCH32FLAGS) $(DSO32FLAGS) -o $@ $(LIB32OBJS) $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+ $(RM) 32bit/libcups.so
+ $(LN) libcups.so.2 32bit/libcups.so
+
+
+#
+# 64bit/libcups.so.2
+#
+
+64bit/libcups.so.2: $(LIB64OBJS)
+ echo Linking 64-bit $@...
+ -mkdir 64bit
+ $(DSO) $(ARCH64FLAGS) $(DSO64FLAGS) -o $@ $(LIB64OBJS) $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+ $(RM) 64bit/libcups.so
+ $(LN) libcups.so.2 64bit/libcups.so
+
+
#
# libcups.2.dylib
#
-libcups.2.dylib: $(LIBOBJS)
+libcups.2.dylib: $(LIBOBJS) $(LIBCUPSORDER) libcups.exp
echo Linking $@...
- $(DSO) $(DSOFLAGS) -o $@ \
+ $(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \
-install_name $(libdir)/$@ \
- -current_version 2.7.0 \
+ -current_version 2.8.0 \
-compatibility_version 2.0.0 \
- $(LIBOBJS) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+ -exported_symbols_list libcups.exp \
+ -sectorder __TEXT __text $(LIBCUPSORDER) \
+ $(LIBOBJS) $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
$(RM) libcups.dylib
$(LN) $@ libcups.dylib
# libcups_s.a
#
-libcups_s.a: $(LIBOBJS)
+libcups_s.a: $(LIBOBJS) libcups_s.exp
echo Creating $@...
- $(DSO) $(DSOFLAGS) -Wl,-bexport:libcups_s.exp -o libcups_s.o $(LIBOBJS) $(SSLLIBS) $(COMMONLIBS) $(LIBZ) -lm
+ $(DSO) $(DSOFLAGS) -Wl,-bexport:libcups_s.exp -o libcups_s.o $(LIBOBJS) $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ) -lm
$(RM) $@
$(AR) $(ARFLAGS) $@ libcups_s.o
libcups.la: $(LIBOBJS)
echo Linking $@...
- $(CC) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) -rpath $(LIBDIR) \
- -version-info 2:7 $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+ $(CC) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) -rpath $(LIBDIR) \
+ -version-info 2:8 $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
#
#
# CUPS language bindings for various scripting languages...
#
+# NOTE: Not currently used or functional - see the scripting/php directory
+# for the hand-written bindings...
+#
phpcups.so: $(LIBCUPS) php_cups_wrap.o
echo Linking $@...
swig -php -o $@ -module cups cups.h
+#
+# testadmin (dependency on static CUPS library is intentional)
+#
+
+testadmin: testadmin.o libcups.a
+ echo Linking $@...
+ $(CC) $(LDFLAGS) -o $@ testadmin.o libcups.a \
+ $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+
+
#
# testarray (dependency on static CUPS library is intentional)
#
testarray: testarray.o libcups.a
echo Linking $@...
- $(CC) $(LDFLAGS) -o $@ testarray.o libcups.a \
- $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+ $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testarray.o libcups.a \
+ $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+ echo Running array API tests...
+ ./testarray
+
+
+#
+# testconflicts (dependency on static CUPS library is intentional)
+#
+
+testconflicts: testconflicts.o libcups.a
+ echo Linking $@...
+ $(CC) $(LDFLAGS) -o $@ testconflicts.o libcups.a \
+ $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+
+
+#
+# testcups (dependency on static CUPS library is intentional)
+#
+
+testcups: testcups.o libcups.a
+ echo Linking $@...
+ $(CC) $(LDFLAGS) -o $@ testcups.o libcups.a \
+ $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
#
testfile: testfile.o libcups.a
echo Linking $@...
- $(CC) $(LDFLAGS) -o $@ testfile.o libcups.a \
- $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+ $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testfile.o libcups.a \
+ $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+ echo Running file API tests...
+ ./testfile
#
testhttp: testhttp.o libcups.a
echo Linking $@...
- $(CC) $(LDFLAGS) -o $@ testhttp.o libcups.a \
- $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+ $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testhttp.o libcups.a \
+ $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+ echo Running HTTP API tests...
+ ./testhttp
#
testipp: testipp.o libcups.a
echo Linking $@...
- $(CC) $(LDFLAGS) -o $@ testipp.o libcups.a \
- $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+ $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testipp.o libcups.a \
+ $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+ echo Running IPP API tests...
+ ./testipp
#
testi18n: testi18n.o libcups.a
echo Linking $@...
- $(CC) $(LDFLAGS) -o $@ testi18n.o libcups.a \
- $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+ $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testi18n.o libcups.a \
+ $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+ echo Running internationalization API tests...
+ ./testi18n
#
testlang: testlang.o libcups.a
echo Linking $@...
- $(CC) $(LDFLAGS) -o $@ testlang.o libcups.a \
- $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+ $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testlang.o libcups.a \
+ $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+ echo Running language API tests...
+ ./testlang
+
+
+#
+# testoptions (dependency on static CUPS library is intentional)
+#
+
+testoptions: testoptions.o libcups.a
+ echo Linking $@...
+ $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testoptions.o libcups.a \
+ $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+ echo Running option API tests...
+ ./testoptions
#
testppd: testppd.o libcups.a
echo Linking $@...
- $(CC) $(LDFLAGS) -o $@ testppd.o libcups.a \
- $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+ $(CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testppd.o libcups.a \
+ $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+ echo Running PPD API tests...
+ ./testppd
+
+
+#
+# testsnmp (dependency on static CUPS library is intentional)
+#
+
+testsnmp: testsnmp.o libcups.a
+ echo Linking $@...
+ $(CC) $(LDFLAGS) -o $@ testsnmp.o libcups.a \
+ $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
#
apihelp:
echo Generating CUPS API help files...
+ mxmldoc --section "Programming" \
+ --title "Introduction to CUPS Programming" \
+ --css ../doc/cups-printable.css \
+ --header api-overview.header --intro api-overview.shtml \
+ >../doc/help/api-overview.html
mxmldoc --section "Programming" --title "Array API" \
- --intro api-array.shtml \
+ --css ../doc/cups-printable.css \
+ --header api-array.header --intro api-array.shtml \
array.h array.c >../doc/help/api-array.html
mxmldoc --section "Programming" --title "CUPS API" \
- --intro api-cups.shtml \
- cups.h auth.c dest.c encode.c getputfile.c language.c \
+ --css ../doc/cups-printable.css \
+ --header api-cups.header --intro api-cups.shtml \
+ cups.h dest.c language.c notify.c \
options.c tempfile.c usersys.c \
util.c >../doc/help/api-cups.html
mxmldoc --section "Programming" --title "File and Directory APIs" \
- --intro api-filedir.shtml \
+ --css ../doc/cups-printable.css \
+ --header api-filedir.header --intro api-filedir.shtml \
file.h file.c dir.h dir.c >../doc/help/api-filedir.html
mxmldoc --section "Programming" --title "PPD API" \
- --intro api-ppd.shtml \
- ppd.h attr.c emit.c mark.c page.c \
+ --css ../doc/cups-printable.css \
+ --header api-ppd.header --intro api-ppd.shtml \
+ ppd.h attr.c conflicts.c custom.c emit.c localize.c mark.c page.c \
ppd.c >../doc/help/api-ppd.html
mxmldoc --section "Programming" --title "HTTP and IPP APIs" \
- --intro api-httpipp.shtml \
- cups.h http.h ipp.h \
- auth.c dest.c encode.c getputfile.c http.c http-addr.c \
- http-support.c ipp.c ipp-support.c md5passwd.c options.c \
- usersys.c util.c >../doc/help/api-httpipp.html
- mxmldoc --section "Programming" --title "Filter and Backend APIs" \
- --intro api-filter.shtml \
- backchannel.c >../doc/help/api-filter.html
+ --css ../doc/cups-printable.css \
+ --header api-httpipp.header --intro api-httpipp.shtml \
+ http.h ipp.h auth.c getdevices.c getputfile.c encode.c \
+ http.c http-addr.c http-support.c ipp.c ipp-support.c \
+ md5passwd.c request.c >../doc/help/api-httpipp.html
+ mxmldoc --section "Programming" \
+ --title "Filter and Backend Programming" \
+ --css ../doc/cups-printable.css \
+ --header api-filter.header --intro api-filter.shtml \
+ backchannel.c backend.h backend.c sidechannel.c sidechannel.h \
+ >../doc/help/api-filter.html
+
+framedhelp:
+ echo Generating CUPS API help files...
+ mxmldoc --framed api-overview \
+ --section "Programming" \
+ --title "Introduction to CUPS Programming" \
+ --css ../doc/cups-printable.css \
+ --header api-overview.header --intro api-overview.shtml
+ mxmldoc --framed api-array \
+ --section "Programming" --title "Array API" \
+ --css ../doc/cups-printable.css \
+ --header api-array.header --intro api-array.shtml \
+ array.h array.c
+ mxmldoc --framed api-cups \
+ --section "Programming" --title "CUPS API" \
+ --css ../doc/cups-printable.css \
+ --header api-cups.header --intro api-cups.shtml \
+ cups.h dest.c language.c notify.c \
+ options.c tempfile.c usersys.c \
+ util.c
+ mxmldoc --framed api-filedir \
+ --section "Programming" --title "File and Directory APIs" \
+ --css ../doc/cups-printable.css \
+ --header api-filedir.header --intro api-filedir.shtml \
+ file.h file.c dir.h dir.c
+ mxmldoc --framed api-ppd \
+ --section "Programming" --title "PPD API" \
+ --css ../doc/cups-printable.css \
+ --header api-ppd.header --intro api-ppd.shtml \
+ ppd.h attr.c conflicts.c custom.c emit.c localize.c mark.c \
+ page.c ppd.c
+ mxmldoc --framed api-httpipp \
+ --section "Programming" --title "HTTP and IPP APIs" \
+ --css ../doc/cups-printable.css \
+ --header api-httpipp.header --intro api-httpipp.shtml \
+ http.h ipp.h auth.c getdevices.c getputfile.c encode.c \
+ http.c http-addr.c http-support.c ipp.c ipp-support.c \
+ md5passwd.c request.c
+ mxmldoc --framed api-filter \
+ --section "Programming" \
+ --title "Filter and Backend Programming" \
+ --css ../doc/cups-printable.css \
+ --header api-filter.header --intro api-filter.shtml \
+ backchannel.c backend.h backend.c sidechannel.c sidechannel.h
#
#
-# End of "$Id: Makefile 4961 2006-01-20 22:19:13Z mike $".
+# End of "$Id: Makefile 7871 2008-08-27 21:12:43Z mike $".
#