diff options
author | msweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be> | 2008-03-21 23:46:46 +0000 |
---|---|---|
committer | msweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be> | 2008-03-21 23:46:46 +0000 |
commit | 50fe720154d2af59cdeeaecf05cc868530e16248 (patch) | |
tree | 509bbfd968bcb7bdf5db241e5eb66a2fb1882633 /ppdc/Makefile | |
parent | db0bd74adb0b363f586ceb3314c7ebbbe4596e3d (diff) | |
download | cups-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/Makefile | 250 |
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) $@ |