# @configure_input@
# Makefile for libcpp. Run 'configure' to generate Makefile from Makefile.in
-# Copyright (C) 2004 Free Software Foundation, Inc.
+# Copyright (C) 2004-2020 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 2, or (at your option)
+#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,
#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 COPYING. If not, write to
-#the Free Software Foundation, 51 Franklin Street, Fifth Floor,
-#Boston MA 02110-1301, USA.
+#along with libcpp; see the file COPYING3. If not see
+#<http://www.gnu.org/licenses/>.
@SET_MAKE@
top_builddir = .
VPATH = @srcdir@
INSTALL = @INSTALL@
-AR = ar
+AR = @AR@
ARFLAGS = cru
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
-CATALOGS = @CATALOGS@
+CATALOGS = $(patsubst %,po/%,@CATALOGS@)
CC = @CC@
CFLAGS = @CFLAGS@
-WARN_CFLAGS = @WARN_CFLAGS@ @WARN_PEDANTIC@ @WERROR@
+WARN_CFLAGS = @warn@ @c_warn@ @WARN_PEDANTIC@ @WERROR@
+CXX = @CXX@
+CXXFLAGS = @CXXFLAGS@
+WARN_CXXFLAGS = @warn@ @WARN_PEDANTIC@ @WERROR@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
EXEEXT = @EXEEXT@
SHELL = @SHELL@
USED_CATALOGS = @USED_CATALOGS@
XGETTEXT = @XGETTEXT@
-DEPMODE = @CCDEPMODE@
+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@
INCLUDES = -I$(srcdir) -I. -I$(srcdir)/../include @INCINTL@ \
-I$(srcdir)/include
-ALL_CFLAGS = $(CFLAGS) $(WARN_CFLAGS) $(INCLUDES) $(CPPFLAGS)
+ALL_CFLAGS = $(CFLAGS) $(WARN_CFLAGS) $(INCLUDES) $(CPPFLAGS) $(PICFLAG) \
+ $(CET_HOST_FLAGS)
+ALL_CXXFLAGS = $(CXXFLAGS) $(WARN_CXXFLAGS) $(NOEXCEPTION_FLAGS) $(INCLUDES) \
+ $(CPPFLAGS) $(PICFLAG) $(CET_HOST_FLAGS)
-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
-makedepend_OBJS = makedepend.o
+# The name of the compiler to use.
+COMPILER = $(CXX)
+COMPILER_FLAGS = $(ALL_CXXFLAGS)
+DEPMODE = $(CXXDEPMODE)
-libcpp_a_SOURCES = charset.c directives.c errors.c expr.c files.c \
- identifiers.c init.c lex.c line-map.c macro.c mkdeps.c \
- pch.c symtab.c traditional.c
-all: libcpp.a makedepend$(EXEEXT) $(USED_CATALOGS)
+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.c directives.c errors.c \
+ expr.c files.c identifiers.c init.c lex.c line-map.c macro.c \
+ mkdeps.c pch.c symtab.c traditional.c
+
+all: libcpp.a $(USED_CATALOGS)
.SUFFIXES:
.SUFFIXES: .c .gmo .o .obj .po .pox
$(AR) $(ARFLAGS) libcpp.a $(libcpp_a_OBJS)
$(RANLIB) libcpp.a
-makedepend$(EXEEXT): $(makedepend_OBJS) libcpp.a ../libiberty/libiberty.a
- @rm -f makedepend$(EXEEXT)
- $(CC) $(CFLAGS) $(LDFLAGS) -o makedepend$(EXEEXT) \
- $(makedepend_OBJS) libcpp.a ../libiberty/libiberty.a \
- $(LIBINTL) $(LIBICONV)
-
# Rules to rebuild the configuration
Makefile: $(srcdir)/Makefile.in config.status
$(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
-rm -f stamp-h1
$(SHELL) ./config.status config.h
-$(srcdir)/config.in: @MAINT@ $(srcdir)/configure
+$(srcdir)/config.in: @MAINT@ $(srcdir)/configure.ac
cd $(srcdir) && $(AUTOHEADER)
-rm -f stamp-h1
-rm -f *.o
clean: mostlyclean
- -rm -rf makedepend$(EXEEXT) libcpp.a $(srcdir)/autom4te.cache
+ -rm -rf libcpp.a $(srcdir)/autom4te.cache
distclean: clean
-rm -f config.h stamp-h1 config.status config.cache config.log \
check:
installcheck:
dvi:
+pdf:
html:
info:
install-info:
+install-pdf:
install-man:
+install-html:
update-po: $(CATALOGS:.gmo=.pox)
.PHONY: installdirs install install-strip mostlyclean clean distclean \
- maintainer-clean check installcheck dvi html info install-info \
- install-man update-po
+ maintainer-clean check installcheck dvi pdf html info install-info \
+ install-man update-po install-html
# Dependency rule.
-COMPILE.base = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(ALL_CFLAGS) -c
+COMPILE.base = $(COMPILER) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(COMPILER_FLAGS) -c
ifeq ($(DEPMODE),depmode=gcc3)
-COMPILE = $(COMPILE.base) -o $@ -MT $@ -MD -MP -MF $(DEPDIR)/$*.Po
+# 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
.c.o:
$(COMPILE) $<
+ $(POSTCOMPILE)
# N.B. We do not attempt to copy these into $(srcdir).
.po.gmo:
- -test -d po || mkdir po
+ $(mkinstalldirs) po
$(GMSGFMT) --statistics -o $@ $<
# The new .po has to be gone over by hand, so we deposit it into
# If build/po/$(PACKAGE).pot exists, use it (it was just created),
# else use the one in srcdir.
.po.pox:
- -test -d po || mkdir po
+ $(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)
- -test -d $(srcdir)/po || mkdir $(srcdir)/po
+ $(mkinstalldirs) $(srcdir)/po
$(XGETTEXT) --default-domain=$(PACKAGE) \
--keyword=_ --keyword=N_ \
- --keyword=cpp_error:3 --keyword=cpp_errno:3 \
+ --keyword=cpp_error:3 \
+ --keyword=cpp_warning:3 \
+ --keyword=cpp_pedwarning:3 \
+ --keyword=cpp_warning_syshdr:3 \
--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_errno:3 \
--keyword=SYNTAX_ERROR --keyword=SYNTAX_ERROR2 \
--copyright-holder="Free Software Foundation, Inc." \
- --msgid-bugs-address="http://gcc.gnu.org/bugs.html" \
+ --msgid-bugs-address="https://gcc.gnu.org/bugs/" \
--language=c -o po/$(PACKAGE).pot.tmp $^
sed 's:$(srcdir)/::g' <po/$(PACKAGE).pot.tmp >po/$(PACKAGE).pot
rm po/$(PACKAGE).pot.tmp
+TAGS_SOURCES = $(libcpp_a_SOURCES) internal.h system.h ucnid.h \
+ include/cpplib.h include/line-map.h include/mkdeps.h include/symtab.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) $(makedepend_OBJS))
+-include $(patsubst %.o, $(DEPDIR)/%.Po, $(libcpp_a_OBJS))
# Dependencies on generated headers have to be explicit.
init.o: localedir.h