# # Makefile for the CUPS PPD Compiler. # # Copyright © 2007-2019 by Apple Inc. # Copyright © 2002-2006 by Easy Software Products. # # Licensed under Apache License v2.0. See the file "LICENSE" for more # information. # # # Include standard definitions... # include ../Makedefs # # Object files... # 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.a UNITTARGETS = \ ppdc-static \ ppdi-static \ testcatalog EXECTARGETS = \ ppdc \ ppdhtml \ ppdi \ ppdmerge \ ppdpo TARGETS = \ $(LIBTARGETS) \ $(EXECTARGETS) \ $(LOCALTARGET) # # Make everything... # all: $(TARGETS) # # Make library targets... # libs: # # Make unit tests... # unittests: $(UNITTARGETS) # # Clean everything... # clean: $(RM) $(OBJS) core $(RM) *.bak *.bck core.* $(RM) $(TARGETS) $(UNITTARGETS) genstrings $(RM) -r ppd ppd2 $(RM) sample-import.drv sample.c test.drv # # Update dependencies... # depend: $(CXX) -MM $(ALL_CXXFLAGS) $(OBJS:.o=.cxx) >Dependencies # # Install all targets... # install: all install-data install-headers install-libs install-exec # # Install data files... # install-data: $(INSTALL_DIR) $(DATADIR)/drv $(INSTALL_DATA) sample.drv $(DATADIR)/drv # # Install programs... # 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); \ dsymutil $(SYMROOT)/$$file; \ done \ fi # # Install headers... # install-headers: # # Install libraries... # install-libs: # # Uninstall... # uninstall: for file in $(EXECTARGETS); do \ $(RM) $(BINDIR)/$$file; \ done $(RM) $(DATADIR)/drv/sample.drv $(RMDIR) $(DATADIR)/drv # # Local programs (not built when cross-compiling...) # local: genstrings # # genstrings - generate GNU gettext strings. # genstrings: genstrings.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) \ sample.drv ../data/media.defs echo Linking $@... $(LD_CXX) $(ARCHFLAGS) $(ALL_LDFLAGS) -o genstrings genstrings.o \ libcupsppdc.a $(LINKCUPSSTATIC) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ echo Generating localization strings... ./genstrings >sample.c # # ppdc, the PPD compiler. # ppdc: ppdc.o libcupsppdc.a ../cups/$(LIBCUPS) echo Linking $@... $(LD_CXX) $(ALL_LDFLAGS) -o $@ ppdc.o libcupsppdc.a $(COMMONLIBS) $(LINKCUPS) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ ppdc-static: ppdc.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) foo.drv foo-fr.po echo Linking $@... $(LD_CXX) $(ARCHFLAGS) $(ALL_LDFLAGS) -o ppdc-static ppdc.o libcupsppdc.a \ $(LINKCUPSSTATIC) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ echo Testing PPD compiler... ./ppdc-static -l en,fr -I ../data foo.drv ./ppdc-static -l en,fr -z -I ../data foo.drv # # ppdhtml, the PPD to HTML utility. # ppdhtml: ppdhtml.o libcupsppdc.a ../cups/$(LIBCUPS) echo Linking $@... $(LD_CXX) $(ALL_LDFLAGS) -o $@ ppdhtml.o libcupsppdc.a $(COMMONLIBS) $(LINKCUPS) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # # ppdi, import PPD files. # ppdi: ppdi.o libcupsppdc.a ../cups/$(LIBCUPS) echo Linking $@... $(LD_CXX) $(ALL_LDFLAGS) -o $@ ppdi.o libcupsppdc.a $(COMMONLIBS) $(LINKCUPS) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ ppdi-static: ppdc-static ppdi.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) echo Linking $@... $(LD_CXX) $(ARCHFLAGS) $(ALL_LDFLAGS) -o ppdi-static ppdi.o libcupsppdc.a \ $(LINKCUPSSTATIC) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ echo Testing PPD importer... $(RM) -r ppd ppd2 sample-import.drv ./ppdc-static -l en -I ../data sample.drv ./ppdi-static -I ../data -o sample-import.drv ppd/* ./ppdc-static -l en -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, merge PPD files. # ppdmerge: ppdmerge.o ../cups/$(LIBCUPS) echo Linking $@... $(LD_CXX) $(ALL_LDFLAGS) -o $@ ppdmerge.o $(LINKCUPS) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # # ppdpo, create message catalog files. # ppdpo: ppdpo.o libcupsppdc.a ../cups/$(LIBCUPS) echo Linking $@... $(LD_CXX) $(ALL_LDFLAGS) -o $@ ppdpo.o libcupsppdc.a $(COMMONLIBS) $(LINKCUPS) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # # testcatalog, test ppdcCatalog class. # testcatalog: testcatalog.o libcupsppdc.a ../cups/$(LIBCUPSSTATIC) echo Linking $@... $(LD_CXX) $(ALL_LDFLAGS) -o $@ testcatalog.o libcupsppdc.a \ $(LINKCUPSSTATIC) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # # libcupsppdc.a # libcupsppdc.a: $(LIBOBJS) echo Archiving $@... $(RM) $@ $(AR) $(ARFLAGS) $@ $(LIBOBJS) $(RANLIB) $@ # # Include dependencies... # include Dependencies