| # | |
| # 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 |