summaryrefslogtreecommitdiff
path: root/ppdc/Makefile
diff options
context:
space:
mode:
authormsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>2008-03-21 23:46:46 +0000
committermsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>2008-03-21 23:46:46 +0000
commit50fe720154d2af59cdeeaecf05cc868530e16248 (patch)
tree509bbfd968bcb7bdf5db241e5eb66a2fb1882633 /ppdc/Makefile
parentdb0bd74adb0b363f586ceb3314c7ebbbe4596e3d (diff)
downloadcups-50fe720154d2af59cdeeaecf05cc868530e16248.tar.gz
<rdar://problem/5792631> dependency cycle in cups-144 / PrintingCore-250 / ApplicationServices
Merge build system changes to use shared support libraries. Merge build system changes to separate installation of data, program, header, and library files. git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@668 a1ca3aef-8c08-0410-bb20-df032aa958be
Diffstat (limited to 'ppdc/Makefile')
-rw-r--r--ppdc/Makefile250
1 files changed, 223 insertions, 27 deletions
diff --git a/ppdc/Makefile b/ppdc/Makefile
index 1e6974709..edaafeceb 100644
--- a/ppdc/Makefile
+++ b/ppdc/Makefile
@@ -24,7 +24,7 @@ include ../Makedefs
# Object files...
#
-PPDCOBJS = \
+LIBOBJS = \
ppdc-array.o \
ppdc-attr.o \
ppdc-catalog.o \
@@ -44,18 +44,23 @@ PPDCOBJS = \
ppdc-source.o \
ppdc-string.o \
ppdc-variable.o
-
-OBJS = \
+LIB32OBJS = $(LIBOBJS:.o=.32.o)
+LIB64OBJS = $(LIBOBJS:.o=.64.o)
+OBJS = \
+ $(LIBOBJS) \
+ $(LIB32OBJS) \
+ $(LIB64OBJS) \
drv.o \
ppdc.o \
ppdhtml.o \
ppdi.o \
ppdmerge.o \
- ppdpo.o \
- $(PPDCOBJS)
-
-TARGETS = \
- libppdc.a \
+ ppdpo.o
+TARGETS = \
+ $(LIBCUPSPPDC) \
+ $(LIB32CUPSPPDC) \
+ $(LIB64CUPSPPDC) \
+ libcupsppdc.a \
drv \
ppdc-static \
ppdc \
@@ -82,6 +87,8 @@ clean:
$(RM) $(TARGETS)
$(RM) -r ppd
$(RM) test.drv
+ $(RM) libcupsppdc.so libcupsppdc.sl libcupsppdc.dylib
+ $(RM) -r 32bit 64bit
#
@@ -89,14 +96,35 @@ clean:
#
depend:
- makedepend -Y -I.. -fDependencies $(OBJS:.o=.cxx) >/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_DIR) $(DATADIR)/drv
#
-# Install...
+# Install programs...
#
-install:
+install-exec:
echo Installing PPD compiler programs...
$(INSTALL_DIR) $(BINDIR)
$(INSTALL_BIN) ppdc $(BINDIR)
@@ -106,7 +134,62 @@ install:
$(INSTALL_BIN) ppdpo $(BINDIR)
$(INSTALL_DIR) $(SERVERBIN)/driver
$(INSTALL_BIN) drv $(SERVERBIN)/driver
- $(INSTALL_DIR) $(DATADIR)/drv
+ 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) ppdc.h $(INCLUDEDIR)/cups
+
+
+#
+# Install libraries...
+#
+
+install-libs: $(INSTALLSTATIC) $(INSTALL32) $(INSTALL64)
+ echo Installing libraries in $(LIBDIR)...
+ $(INSTALL_DIR) -m 755 $(LIBDIR)
+ $(INSTALL_LIB) $(LIBCUPSPPDC) $(LIBDIR)
+ if test $(LIBCUPSPPDC) = "libcupsppdc.so.1" -o $(LIBCUPSPPDC) = "libcupsppdc.sl.1"; then \
+ $(RM) $(LIBDIR)/`basename $(LIBCUPSPPDC) .1`; \
+ $(LN) $(LIBCUPSPPDC) $(LIBDIR)/`basename $(LIBCUPSPPDC) .1`; \
+ fi
+ if test $(LIBCUPSPPDC) = "libcupsppdc.1.dylib"; then \
+ $(STRIP) -x $(LIBDIR)/$(LIBCUPSPPDC); \
+ $(RM) $(LIBDIR)/libcupsppdc.dylib; \
+ $(LN) $(LIBCUPSPPDC) $(LIBDIR)/libcupsppdc.dylib; \
+ fi
+ if test "x$(SYMROOT)" != "x"; then \
+ $(INSTALL_DIR) $(SYMROOT); \
+ cp $(LIBCUPSPPDC) $(SYMROOT); \
+ fi
+
+installstatic:
+ $(INSTALL_DIR) -m 755 $(LIBDIR)
+ $(INSTALL_LIB) libcupsppdc.a $(LIBDIR)
+ $(RANLIB) $(LIBDIR)/libcupsppdc.a
+
+install32bit:
+ echo Installing libraries in $(LIB32DIR)...
+ $(INSTALL_DIR) -m 755 $(LIB32DIR)
+ $(INSTALL_LIB) 32bit/libcupsppdc.so.1 $(LIB32DIR)/libcupsppdc.so.1
+ $(LN) libcupsppdc.so.1 $(LIB32DIR)/libcupsppdc.so
+
+install64bit:
+ echo Installing libraries in $(LIB64DIR)...
+ $(INSTALL_DIR) -m 755 $(LIB64DIR)
+ $(INSTALL_LIB) 64bit/libcupsppdc.so.1 $(LIB64DIR)/libcupsppdc.so.1
+ $(LN) libcupsppdc.so.1 $(LIB64DIR)/libcupsppdc.so
#
@@ -122,29 +205,70 @@ uninstall:
$(RM) $(SERVERBIN)/driver/drv
$(RMDIR) $(SERVERBIN)/driver
$(RMDIR) $(DATADIR)/drv
+ $(RM) $(LIBDIR)/libcupsppdc.1.dylib
+ $(RM) $(LIBDIR)/libcupsppdc.a
+ $(RM) $(LIBDIR)/libcupsppdc.dylib
+ $(RM) $(LIBDIR)/libcupsppdc_s.a
+ $(RM) $(LIBDIR)/libcupsppdc.sl
+ $(RM) $(LIBDIR)/libcupsppdc.sl.1
+ $(RM) $(LIBDIR)/libcupsppdc.so
+ $(RM) $(LIBDIR)/libcupsppdc.so.1
+ -$(RMDIR) $(LIBDIR)
+ $(RM) $(INCLUDEDIR)/cups/ppdc.h
+ -$(RMDIR) $(INCLUDEDIR)/cups
+
+uninstall32bit:
+ $(RM) $(LIB32DIR)/libcupsppdc.so
+ $(RM) $(LIB32DIR)/libcupsppdc.so.1
+ -$(RMDIR) $(LIB32DIR)
+
+uninstall64bit:
+ $(RM) $(LIB64DIR)/libcupsppdc.so
+ $(RM) $(LIB64DIR)/libcupsppdc.so.1
+ -$(RMDIR) $(LIB64DIR)
+
+
+#
+# Automatic API help files...
+#
+
+apihelp:
+ mxmldoc --section "Programming" \
+ --title "PPD Compiler API" \
+ --css ../doc/cups-printable.css \
+ --header api-ppdc.header --intro api-ppdc.shtml \
+ ppdc.h $(LIBOBJS:.o=.cxx) >../doc/help/api-ppdc.html
+
+framedhelp:
+ mxmldoc --framed api-ppdc \
+ --section "Programming" \
+ --title "PPD Compiler API" \
+ --css ../doc/cups-printable.css \
+ --header api-ppdc.header --intro api-ppdc.shtml \
+ ppdc.h $(LIBOBJS:.o=.cxx)
#
# drv, the CUPS driver interface program to the PPD compiler.
#
-drv: drv.o libppdc.a ../cups/$(LIBCUPS)
+drv: drv.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
echo Linking $@...
- $(CXX) $(LDFLAGS) -o $@ drv.o libppdc.a $(LIBS)
+ $(CXX) $(LDFLAGS) -o $@ drv.o -L. -lcupsppdc $(LIBS)
#
# ppdc, the PPD compiler.
#
-ppdc: ppdc.o libppdc.a ../cups/$(LIBCUPS)
+ppdc: ppdc.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
echo Linking $@...
- $(CXX) $(LDFLAGS) -o $@ ppdc.o libppdc.a $(LIBS)
+ $(CXX) $(LDFLAGS) -o $@ ppdc.o -L. -lcupsppdc $(LIBS)
-ppdc-static: ppdc.o libppdc.a ../cups/libcups.a foo.drv foo-fr.po
+ppdc-static: ppdc.o libcupsppdc.a ../cups/libcups.a foo.drv foo-fr.po
echo Linking $@...
- $(CXX) $(LDFLAGS) -o ppdc-static ppdc.o libppdc.a ../cups/libcups.a \
+ $(CXX) $(LDFLAGS) -o ppdc-static ppdc.o libcupsppdc.a ../cups/libcups.a \
$(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
echo Testing PPD compiler...
./ppdc-static -l en,fr -I ../data foo.drv
@@ -155,18 +279,18 @@ ppdc-static: ppdc.o libppdc.a ../cups/libcups.a foo.drv foo-fr.po
# ppdhtml, the PPD to HTML utility.
#
-ppdhtml: ppdhtml.o libppdc.a ../cups/$(LIBCUPS)
+ppdhtml: ppdhtml.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
echo Linking $@...
- $(CXX) $(LDFLAGS) -o $@ ppdhtml.o libppdc.a $(LIBS)
+ $(CXX) $(LDFLAGS) -o $@ ppdhtml.o -L. -lcupsppdc $(LIBS)
#
# ppdi, import PPD files.
#
-ppdi: ppdi.o libppdc.a ../cups/$(LIBCUPS)
+ppdi: ppdi.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
echo Linking $@...
- $(CXX) $(LDFLAGS) -o $@ ppdi.o libppdc.a $(LIBS)
+ $(CXX) $(LDFLAGS) -o $@ ppdi.o -L. -lcupsppdc $(LIBS)
#
@@ -182,19 +306,91 @@ ppdmerge: ppdmerge.o ../cups/$(LIBCUPS)
# ppdpo, create message catalog files.
#
-ppdpo: ppdpo.o libppdc.a ../cups/$(LIBCUPS)
+ppdpo: ppdpo.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
echo Linking $@...
- $(CXX) $(LDFLAGS) -o $@ ppdpo.o libppdc.a $(LIBS)
+ $(CXX) $(LDFLAGS) -o $@ ppdpo.o -L. -lcupsppdc $(LIBS)
#
-# libppdc.a, the PPD compiler library...
+# libcupsppdc.so.1, libcupsppdc.sl.1
#
-libppdc.a: $(PPDCOBJS)
+libcupsppdc.so.1 libcupsppdc.sl.1: $(LIBOBJS)
+ echo Linking $@...
+ $(DSOXX) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LIBS)
+ $(RM) `basename $@ .1`
+ $(LN) $@ `basename $@ .1`
+
+
+#
+# 32bit/libcupsppdc.so.1
+#
+
+32bit/libcupsppdc.so.1: $(LIB32OBJS)
+ echo Linking 32-bit $@...
+ -mkdir 32bit
+ $(DSOXX) $(ARCH32FLAGS) $(DSO32FLAGS) -o $@ $(LIB32OBJS) $(LIBS)
+ $(RM) 32bit/libcupsppdc.so
+ $(LN) libcupsppdc.so.1 32bit/libcupsppdc.so
+
+
+#
+# 64bit/libcupsppdc.so.1
+#
+
+64bit/libcupsppdc.so.1: $(LIB64OBJS)
+ echo Linking 64-bit $@...
+ -mkdir 64bit
+ $(DSOXX) $(ARCH64FLAGS) $(DSO64FLAGS) -o $@ $(LIB64OBJS) $(LIBS)
+ $(RM) 64bit/libcupsppdc.so
+ $(LN) libcupsppdc.so.1 64bit/libcupsppdc.so
+
+
+#
+# libcupsppdc.1.dylib
+#
+
+libcupsppdc.1.dylib: $(LIBOBJS) libcupsppdc.exp
+ echo Linking $@...
+ $(DSOXX) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \
+ -install_name $(libdir)/$@ \
+ -current_version 1.0.0 \
+ -compatibility_version 1.0.0 \
+ -exported_symbols_list libcupsppdc.exp \
+ $(LIBOBJS) $(LIBS)
+ $(RM) libcupsppdc.dylib
+ $(LN) $@ libcupsppdc.dylib
+
+
+#
+# libcupsppdc_s.a
+#
+
+libcupsppdc_s.a: $(LIBOBJS)
echo Creating $@...
+ $(DSOXX) $(DSOFLAGS) -o libcupsppdc_s.o $(LIBOBJS) $(LIBS)
+ $(RM) $@
+ $(AR) $(ARFLAGS) $@ libcupsppdc_s.o
+
+
+#
+# libcupsppdc.la
+#
+
+libcupsppdc.la: $(LIBOBJS)
+ echo Linking $@...
+ $(CC) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) -rpath $(LIBDIR) \
+ -version-info 1:0 $(LIBS)
+
+
+#
+# libcupsppdc.a
+#
+
+libcupsppdc.a: $(LIBOBJS)
+ echo Archiving $@...
$(RM) $@
- $(AR) $(ARFLAGS) $@ $(PPDCOBJS)
+ $(AR) $(ARFLAGS) $@ $(LIBOBJS)
$(RANLIB) $@