# # Locale file makefile for CUPS. # # Copyright © 2007-2019 by Apple Inc. # Copyright © 1993-2007 by Easy Software Products. # # Licensed under Apache License v2.0. See the file "LICENSE" for more # information. # include ../Makedefs OBJS = checkpo.o po2strings.o strings2po.o TARGETS = checkpo po2strings strings2po # # Make everything... # all: $(TARGETS) # # Make library targets... # libs: # # Make unit tests... # unittests: # # Clean all config and object files... # clean: $(RM) $(TARGETS) $(OBJS) # # Update dependencies (without system header dependencies...) # depend: $(CC) -MM $(ALL_CFLAGS) $(OBJS:.o=.c) >Dependencies # # Install all targets... # install: all install-data install-headers install-libs install-exec # # Install data files... # install-data: $(INSTALL_LANGUAGES) install-languages: $(INSTALL_DIR) -m 755 $(LOCALEDIR) for loc in en $(LANGUAGES) ; do \ if test -f cups_$$loc.po; then \ $(INSTALL_DIR) -m 755 $(LOCALEDIR)/$$loc ; \ $(INSTALL_DATA) cups_$$loc.po $(LOCALEDIR)/$$loc/cups_$$loc.po ; \ fi ; \ done install-langbundle: $(INSTALL_DIR) -m 755 "$(BUILDROOT)$(RESOURCEDIR)" $(INSTALL_DATA) cups.strings "$(BUILDROOT)$(RESOURCEDIR)" # # Install programs... # install-exec: # # Install headers... # install-headers: # # Install libraries... # install-libs: # # Uninstall files... # uninstall: $(UNINSTALL_LANGUAGES) uninstall-languages: -for loc in en $(LANGUAGES) ; do \ $(RM) $(LOCALEDIR)/$$loc/cups_$$loc.po ; \ done uninstall-langbundle: $(RM) "$(BUILDROOT)$(RESOURCEDIR)/cups.strings" # # pot - Creates/updates the cups.pot template file, merges changes into existing # message catalogs, and updates the cups.strings file. We don't use # xgettext to update the cups.strings file due to known xgettext bugs. # pot: checkpo po2strings echo Updating cups.pot... mv cups.pot cups.pot.bck touch cups.pot cd ..; xgettext -o locale/cups.pot -cTRANSLATORS -s \ --keyword=_ --no-wrap --from-code utf-8 \ --copyright-holder="Apple Inc." \ --package-name="CUPS" --package-version="$(CUPS_VERSION)" \ --msgid-bugs-address="https://github.com/apple/cups/issues" \ */*.c */*.cxx (cat cups.header; tail +6 cups.pot) > cups.pot.N mv cups.pot.N cups.pot echo Checking cups.pot... ./checkpo cups.pot for loc in *.po ; do \ if test $$loc = '*.po'; then \ break; \ fi; \ echo Merging changes into $$loc... ; \ msgmerge -o $$loc -s -N --no-location $$loc cups.pot ; \ done echo Updating cups.strings... ./po2strings cups_en.po cups.strings cups.strings: cups_en.po po2strings echo Updating cups.strings... ./po2strings cups_en.po cups.strings # # checkpo - A simple utility to check PO files for correct translation # strings. Dependency on static library is deliberate. # # checkpo filename.po [... filenameN.po] # checkpo: checkpo.o ../cups/$(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(ALL_LDFLAGS) -o checkpo checkpo.o \ $(LINKCUPSSTATIC) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ checkall: checkpo ./checkpo *.po *.strings # # po2strings - A simple utility which uses iconv to convert GNU gettext # message catalogs to macOS .strings files. # # po2strings filename.po filename.strings # po2strings: po2strings.o ../cups/$(LIBCUPSSTATIC) echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(ALL_LDFLAGS) -o po2strings po2strings.o \ $(LINKCUPSSTATIC) $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # # strings2po - A simple utility which uses iconv to convert macOS .strings files # to GNU gettext message catalogs. # # strings2po filename.strings filename.po # strings2po: strings2po.o echo Linking $@... $(LD_CC) $(ARCHFLAGS) $(ALL_LDFLAGS) -o strings2po strings2po.o $(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@ # # Dependencies... # include Dependencies