include ../Makedefs
LIBOBJS = \
ppdc-array.o \
ppdc-attr.o \
ppdc-catalog.o \
ppdc-choice.o \
ppdc-constraint.o \
ppdc-driver.o \
ppdc-file.o \
ppdc-filter.o \
ppdc-font.o \
ppdc-group.o \
ppdc-import.o \
ppdc-mediasize.o \
ppdc-message.o \
ppdc-option.o \
ppdc-profile.o \
ppdc-shared.o \
ppdc-source.o \
ppdc-string.o \
ppdc-variable.o
OBJS = \
$(LIBOBJS) \
genstrings.o \
ppdc.o \
ppdhtml.o \
ppdi.o \
ppdmerge.o \
ppdpo.o \
testcatalog.o
LIBTARGETS = \
$(LIBCUPSPPDC) \
libcupsppdc.a
UNITTARGETS = \
ppdc-static \
ppdi-static \
testcatalog
EXECTARGETS = \
ppdc \
ppdhtml \
ppdi \
ppdmerge \
ppdpo
TARGETS = \
$(LIBTARGETS) \
$(EXECTARGETS) \
genstrings
all: $(TARGETS)
libs: $(LIBTARGETS)
unittests: $(UNITTARGETS)
clean:
$(RM) $(OBJS) core
$(RM) *.bak *.bck core.*
$(RM) $(TARGETS) $(UNITTARGETS)
$(RM) -r ppd ppd2
$(RM) sample-import.drv sample.c test.drv
$(RM) libcupsppdc.so libcupsppdc.sl libcupsppdc.dylib
depend:
$(CXX) -MM $(ALL_CXXFLAGS) $(OBJS:.o=.cxx) >Dependencies
install: all install-data install-headers install-libs install-exec
install-data:
$(INSTALL_DIR) $(DATADIR)/drv
$(INSTALL_DATA) sample.drv $(DATADIR)/drv
install-exec:
echo Installing PPD compiler programs...
$(INSTALL_DIR) $(BINDIR)
for file in $(EXECTARGETS); do \
$(INSTALL_BIN) $$file $(BINDIR); \
done
if test "x$(SYMROOT)" != "x"; then \
$(INSTALL_DIR) $(SYMROOT); \
for file in $(EXECTARGETS); do \
cp $$file $(SYMROOT); \
done \
fi
install-headers:
echo Installing header files in $(INCLUDEDIR)/cups...
$(INSTALL_DIR) -m 755 $(INCLUDEDIR)/cups
$(INSTALL_DATA) ppdc.h $(INCLUDEDIR)/cups
install-libs: $(INSTALLSTATIC)
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 \
$(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) -m 755 libcupsppdc.a $(LIBDIR)
$(RANLIB) $(LIBDIR)/libcupsppdc.a
$(CHMOD) 555 $(LIBDIR)/libcupsppdc.a
uninstall:
for file in $(EXECTARGETS); do \
$(RM) $(BINDIR)/$$file; \
done
$(RM) $(DATADIR)/drv/sample.drv
$(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
apihelp:
mxmldoc --section "Programming" \
--title "PPD Compiler API" \
--css ../doc/cups-printable.css \
--header api-ppdc.header --intro api-ppdc.shtml \
api-ppdc.xml \
ppdc.h $(LIBOBJS:.o=.cxx) >../doc/help/api-ppdc.html
mxmldoc --tokens help/api-ppdc.html api-ppdc.xml >../doc/help/api-ppdc.tokens
$(RM) api-ppdc.xml
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)
genstrings: genstrings.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) \
sample.drv ../data/media.defs
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(LDFLAGS) -o genstrings genstrings.o \
libcupsppdc.a ../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) \
$(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
echo Generating localization strings...
./genstrings >sample.c
ppdc: ppdc.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
echo Linking $@...
$(CXX) $(LDFLAGS) -o $@ ppdc.o -L. -lcupsppdc $(LIBS)
ppdc-static: ppdc.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) foo.drv foo-fr.po
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(LDFLAGS) -o ppdc-static ppdc.o libcupsppdc.a \
../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
$(COMMONLIBS) $(LIBZ)
echo Testing PPD compiler...
./ppdc-static -l en,fr -I ../data foo.drv
./ppdc-static -l en,fr -z -I ../data foo.drv
ppdhtml: ppdhtml.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
echo Linking $@...
$(CXX) $(LDFLAGS) -o $@ ppdhtml.o -L. -lcupsppdc $(LIBS)
ppdi: ppdi.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
echo Linking $@...
$(CXX) $(LDFLAGS) -o $@ ppdi.o -L. -lcupsppdc $(LIBS)
ppdi-static: ppdc-static ppdi.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC)
echo Linking $@...
$(CXX) $(ARCHFLAGS) $(LDFLAGS) -o ppdi-static ppdi.o libcupsppdc.a \
../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
$(COMMONLIBS) $(LIBZ)
echo Testing PPD importer...
$(RM) -r ppd ppd2 sample-import.drv
./ppdc-static -I ../data sample.drv
./ppdi-static -I ../data -o sample-import.drv ppd/*
./ppdc-static -I ../data -d ppd2 sample-import.drv
if diff -r ppd ppd2 >/dev/null; then \
echo PPD import OK; \
else \
echo PPD import FAILED; \
exit 1; \
fi
ppdmerge: ppdmerge.o ../cups/$(LIBCUPS)
echo Linking $@...
$(CXX) $(LDFLAGS) -o $@ ppdmerge.o $(LIBS)
ppdpo: ppdpo.o $(LIBCUPSPPDC) ../cups/$(LIBCUPS)
echo Linking $@...
$(CXX) $(LDFLAGS) -o $@ ppdpo.o -L. -lcupsppdc $(LIBS)
testcatalog: testcatalog.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC)
echo Linking $@...
$(CXX) $(LDFLAGS) -o $@ testcatalog.o libcupsppdc.a \
../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
$(COMMONLIBS) $(LIBZ)
libcupsppdc.so.1 libcupsppdc.sl.1: $(LIBOBJS) ../cups/$(LIBCUPS)
echo Linking $@...
$(DSOXX) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(LINKCUPS)
$(RM) `basename $@ .1`
$(LN) $@ `basename $@ .1`
libcupsppdc.1.dylib: $(LIBOBJS) ../cups/$(LIBCUPS)
echo Creating export list for $@...
nm $(LIBOBJS) | grep "T __" | awk '{print $$3}' | sort >t.exp
echo Linking $@...
$(DSOXX) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \
-install_name $(libdir)/$@ \
-current_version 1.0.0 \
-compatibility_version 1.0.0 \
-exported_symbols_list t.exp \
$(LIBOBJS) $(LINKCUPS)
$(RM) libcupsppdc.dylib t.exp
$(LN) $@ libcupsppdc.dylib
libcupsppdc_s.a: $(LIBOBJS) ../cups/$(LIBCUPS)
echo Creating $@...
$(DSOXX) $(DSOFLAGS) -o libcupsppdc_s.o $(LIBOBJS) $(LINKCUPS)
$(RM) $@
$(AR) $(ARFLAGS) $@ libcupsppdc_s.o
libcupsppdc.la: $(LIBOBJS) ../cups/$(LIBCUPS)
echo Linking $@...
$(CC) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) -rpath $(LIBDIR) \
-version-info 1:0 $(LINKCUPS)
libcupsppdc.a: $(LIBOBJS)
echo Archiving $@...
$(RM) $@
$(AR) $(ARFLAGS) $@ $(LIBOBJS)
$(RANLIB) $@
include Dependencies