| # @configure_input@ | |
| # Makefile for libcpp. Run 'configure' to generate Makefile from Makefile.in | |
| # Copyright (C) 2004-2026 Free Software Foundation, Inc. | |
| #This file is part of libcpp. | |
| #libcpp is free software; you can redistribute it and/or modify | |
| #it under the terms of the GNU General Public License as published by | |
| #the Free Software Foundation; either version 3, or (at your option) | |
| #any later version. | |
| #libcpp is distributed in the hope that it will be useful, | |
| #but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| #GNU General Public License for more details. | |
| #You should have received a copy of the GNU General Public License | |
| #along with libcpp; see the file COPYING3. If not see | |
| #<http://www.gnu.org/licenses/>. | |
| @SET_MAKE@ | |
| srcdir = @srcdir@ | |
| top_builddir = . | |
| VPATH = @srcdir@ | |
| INSTALL = @INSTALL@ | |
| AR = @AR@ | |
| ARFLAGS = cru | |
| ACLOCAL = @ACLOCAL@ | |
| AUTOCONF = @AUTOCONF@ | |
| AUTOHEADER = @AUTOHEADER@ | |
| CATALOGS = $(patsubst %,po/%,@CATALOGS@) | |
| CC = @CC@ | |
| CFLAGS = @CFLAGS@ | |
| WARN_CFLAGS = @warn@ @c_warn@ @WARN_PEDANTIC@ @WERROR@ | |
| CXX = @CXX@ | |
| CXXFLAGS = @CXXFLAGS@ | |
| WARN_CXXFLAGS = @warn@ @WARN_PEDANTIC@ @WERROR@ | |
| CPP = @CPP@ | |
| CPPFLAGS = @CPPFLAGS@ | |
| EXEEXT = @EXEEXT@ | |
| GMSGFMT = @GMSGFMT@ | |
| INCINTL = @INCINTL@ | |
| INSTALL_DATA = @INSTALL_DATA@ | |
| INSTALL_PROGRAM = @INSTALL_PROGRAM@ | |
| INSTALL_SCRIPT = @INSTALL_SCRIPT@ | |
| LDFLAGS = @LDFLAGS@ | |
| LIBICONV = @LIBICONV@ | |
| LIBINTL = @LIBINTL@ | |
| PACKAGE = @PACKAGE@ | |
| RANLIB = @RANLIB@ | |
| SHELL = @SHELL@ | |
| USED_CATALOGS = @USED_CATALOGS@ | |
| XGETTEXT = @XGETTEXT@ | |
| CCDEPMODE = @CCDEPMODE@ | |
| CXXDEPMODE = @CXXDEPMODE@ | |
| DEPDIR = @DEPDIR@ | |
| NOEXCEPTION_FLAGS = @noexception_flags@ | |
| PICFLAG = @PICFLAG@ | |
| CET_HOST_FLAGS = @CET_HOST_FLAGS@ | |
| datarootdir = @datarootdir@ | |
| datadir = @datadir@ | |
| exec_prefix = @prefix@ | |
| libdir = @libdir@ | |
| localedir = $(datadir)/locale | |
| prefix = @prefix@ | |
| MSGMERGE = msgmerge | |
| mkinstalldirs = $(SHELL) $(srcdir)/../mkinstalldirs | |
| depcomp = $(SHELL) $(srcdir)/../depcomp | |
| INCLUDES = -I$(srcdir) -I. -I$(srcdir)/../include @INCINTL@ \ | |
| -I$(srcdir)/include | |
| ALL_CFLAGS = $(CFLAGS) $(WARN_CFLAGS) $(INCLUDES) $(CPPFLAGS) $(PICFLAG) \ | |
| $(CET_HOST_FLAGS) | |
| ALL_CXXFLAGS = $(CXXFLAGS) $(WARN_CXXFLAGS) $(NOEXCEPTION_FLAGS) $(INCLUDES) \ | |
| $(CPPFLAGS) $(PICFLAG) $(CET_HOST_FLAGS) | |
| # The name of the compiler to use. | |
| COMPILER = $(CXX) | |
| COMPILER_FLAGS = $(ALL_CXXFLAGS) | |
| DEPMODE = $(CXXDEPMODE) | |
| libcpp_a_OBJS = charset.o directives.o errors.o \ | |
| expr.o files.o identifiers.o init.o lex.o line-map.o macro.o \ | |
| mkdeps.o pch.o symtab.o traditional.o | |
| libcpp_a_SOURCES = charset.cc directives.cc errors.cc \ | |
| expr.cc files.cc identifiers.cc init.cc lex.cc line-map.cc macro.cc \ | |
| mkdeps.cc pch.cc symtab.cc traditional.cc | |
| all: libcpp.a $(USED_CATALOGS) | |
| .SUFFIXES: | |
| .SUFFIXES: .cc .gmo .o .obj .po .pox | |
| libcpp.a: $(libcpp_a_OBJS) | |
| -rm -f libcpp.a | |
| $(AR) $(ARFLAGS) libcpp.a $(libcpp_a_OBJS) | |
| $(RANLIB) libcpp.a | |
| # Rules to rebuild the configuration | |
| Makefile: $(srcdir)/Makefile.in config.status | |
| $(SHELL) ./config.status Makefile | |
| config.status: $(srcdir)/configure | |
| $(SHELL) ./config.status --recheck | |
| $(srcdir)/configure: @MAINT@ $(srcdir)/aclocal.m4 | |
| cd $(srcdir) && $(AUTOCONF) | |
| $(srcdir)/aclocal.m4: @MAINT@ $(srcdir)/../config/acx.m4 \ | |
| $(srcdir)/../config/gettext-sister.m4 $(srcdir)/../config/iconv.m4 \ | |
| $(srcdir)/../config/codeset.m4 $(srcdir)/../config/lib-ld.m4 \ | |
| $(srcdir)/../config/lib-link.m4 $(srcdir)/../config/lib-prefix.m4 \ | |
| $(srcdir)/../config/override.m4 $(srcdir)/../config/proginstall.m4 \ | |
| $(srcdir)/configure.ac | |
| cd $(srcdir) && $(ACLOCAL) -I ../config | |
| config.h: stamp-h1 | |
| test -f config.h || (rm -f stamp-h1 && $(MAKE) stamp-h1) | |
| stamp-h1: $(srcdir)/config.in config.status | |
| -rm -f stamp-h1 | |
| $(SHELL) ./config.status config.h | |
| $(srcdir)/config.in: @MAINT@ $(srcdir)/configure.ac | |
| cd $(srcdir) && $(AUTOHEADER) | |
| -rm -f stamp-h1 | |
| # It is not possible to get LOCALEDIR defined in config.h because | |
| # the value it needs to be defined to is only determined in the | |
| # Makefile. Hence we do this instead. | |
| localedir.h: localedir.hs; @true | |
| localedir.hs: Makefile | |
| echo "#define LOCALEDIR \"$(localedir)\"" > localedir.new | |
| $(srcdir)/../move-if-change localedir.new localedir.h | |
| echo timestamp > localedir.hs | |
| # Installation rules and other phony targets | |
| # These rule has to look for .gmo modules in both srcdir and | |
| # the cwd, and has to check that we actually have a catalog | |
| # for each language, in case they weren't built or included | |
| # with the distribution. | |
| installdirs: | |
| @$(mkinstalldirs) $(DESTDIR)$(datadir); \ | |
| cats="$(CATALOGS)"; for cat in $$cats; do \ | |
| lang=`basename $$cat | sed 's/\.gmo$$//'`; \ | |
| if [ -f $$cat ] || [ -f $(srcdir)/$$cat ]; then \ | |
| dir=$(localedir)/$$lang/LC_MESSAGES; \ | |
| $(mkinstalldirs) $(DESTDIR)$$dir || exit 1; \ | |
| fi; \ | |
| done | |
| install-strip install: all installdirs | |
| cats="$(CATALOGS)"; for cat in $$cats; do \ | |
| lang=`basename $$cat | sed 's/\.gmo$$//'`; \ | |
| if [ -f $$cat ]; then :; \ | |
| elif [ -f $(srcdir)/$$cat ]; then cat=$(srcdir)/$$cat; \ | |
| else continue; \ | |
| fi; \ | |
| dir=$(localedir)/$$lang/LC_MESSAGES; \ | |
| echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ | |
| $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ | |
| done | |
| mostlyclean: | |
| -rm -f *.o | |
| clean: mostlyclean | |
| -rm -rf libcpp.a $(srcdir)/autom4te.cache | |
| distclean: clean | |
| -rm -f config.h stamp-h1 config.status config.cache config.log \ | |
| configure.lineno configure.status.lineno Makefile localedir.h \ | |
| localedir.hs $(DEPDIR)/*.Po | |
| -rmdir $(DEPDIR) | |
| maintainer-clean: distclean | |
| @echo "This command is intended for maintainers to use" | |
| @echo "it deletes files that may require special tools to rebuild." | |
| -rm -f $(srcdir)/configure $(srcdir)/aclocal.m4 | |
| check: | |
| installcheck: | |
| dvi: | |
| pdf: | |
| html: | |
| info: | |
| install-info: | |
| install-pdf: | |
| install-dvi: | |
| install-man: | |
| install-html: | |
| update-po: $(CATALOGS:.gmo=.pox) | |
| .PHONY: installdirs install install-strip mostlyclean clean distclean \ | |
| maintainer-clean check installcheck dvi pdf html info install-info \ | |
| install-man update-po install-html install-pdf install-dvi | |
| # Dependency rule. | |
| COMPILE.base = $(COMPILER) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(COMPILER_FLAGS) -c | |
| ifeq ($(DEPMODE),depmode=gcc3) | |
| # Note that we put the dependencies into a .Tpo file, then move them | |
| # into place if the compile succeeds. We need this because gcc does | |
| # not atomically write the dependency output file. | |
| COMPILE = $(COMPILE.base) -o $@ -MT $@ -MMD -MP -MF $(DEPDIR)/$*.Tpo | |
| POSTCOMPILE = @mv $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po | |
| else | |
| COMPILE = source='$<' object='$@' libtool=no DEPDIR=$(DEPDIR) $(DEPMODE) \ | |
| $(depcomp) $(COMPILE.base) | |
| # depcomp handles atomicity for us, so we don't need a postcompile | |
| # step. | |
| POSTCOMPILE = | |
| endif | |
| # Implicit rules and I18N | |
| .cc.o: | |
| $(COMPILE) $< | |
| $(POSTCOMPILE) | |
| # N.B. We do not attempt to copy these into $(srcdir). | |
| .po.gmo: | |
| $(mkinstalldirs) po | |
| $(GMSGFMT) --statistics -o $@ $< | |
| # The new .po has to be gone over by hand, so we deposit it into | |
| # build/po with a different extension. | |
| # If build/po/$(PACKAGE).pot exists, use it (it was just created), | |
| # else use the one in srcdir. | |
| .po.pox: | |
| $(mkinstalldirs) po | |
| $(MSGMERGE) $< `if test -f po/$(PACKAGE).pot; \ | |
| then echo po/$(PACKAGE).pot; \ | |
| else echo $(srcdir)/po/$(PACKAGE).pot; fi` -o $@ | |
| # Rule for regenerating the message template. | |
| $(PACKAGE).pot: po/$(PACKAGE).pot | |
| po/$(PACKAGE).pot: $(libcpp_a_SOURCES) | |
| $(mkinstalldirs) $(srcdir)/po | |
| $(XGETTEXT) --default-domain=$(PACKAGE) \ | |
| --keyword=_ --keyword=N_ \ | |
| --keyword=cpp_error:3 \ | |
| --keyword=cpp_warning:3 \ | |
| --keyword=cpp_pedwarning:3 \ | |
| --keyword=cpp_warning_syshdr:3 \ | |
| --keyword=cpp_warning_at:4 \ | |
| --keyword=cpp_pedwarning_at:4 \ | |
| --keyword=cpp_error_with_line:5 \ | |
| --keyword=cpp_warning_with_line:5 \ | |
| --keyword=cpp_pedwarning_with_line:5 \ | |
| --keyword=cpp_warning_with_line_syshdr:5 \ | |
| --keyword=cpp_error_at:4 \ | |
| --keyword=cpp_errno:3 \ | |
| --keyword=SYNTAX_ERROR --keyword=SYNTAX_ERROR2 \ | |
| --copyright-holder="Free Software Foundation, Inc." \ | |
| --msgid-bugs-address="https://gcc.gnu.org/bugs/" \ | |
| --language=GCC-source -o po/$(PACKAGE).pot.tmp $^ | |
| sed 's:$(srcdir)/::g' <po/$(PACKAGE).pot.tmp >po/$(PACKAGE).pot | |
| rm po/$(PACKAGE).pot.tmp | |
| ETAGS = @ETAGS@ | |
| TAGS_SOURCES = $(libcpp_a_SOURCES) internal.h system.h ucnid.h \ | |
| include/cpplib.h include/line-map.h include/mkdeps.h include/symtab.h \ | |
| include/rich-location.h include/label-text.h | |
| TAGS: $(TAGS_SOURCES) | |
| cd $(srcdir) && $(ETAGS) $(TAGS_SOURCES) | |
| # Tell versions [3.59,3.63) of GNU make to not export all variables. | |
| # Otherwise a system limit (for SysV at least) may be exceeded. | |
| .NOEXPORT: | |
| # Dependencies | |
| -include $(patsubst %.o, $(DEPDIR)/%.Po, $(libcpp_a_OBJS)) | |
| # Dependencies on generated headers have to be explicit. | |
| init.o: localedir.h |