148e4216a4
PR preprocessor/34695 gcc: * Makefile.in (c-opts.o): Depend on c-tree.h. * c-common.c: Move down include of diagnostic.h. (done_lexing, c_cpp_error): New. * c-common.h (done_lexing): Declare. * c-decl.c (c_write_global_declarations): Don't check cpp_errors (parse_in). * c-opts.c: Include c-tree.h. (c_common_init_options): Set preprocessor error callback. (c_common_handle_option): Do not set preprocessor inhibit_warnings, warnings_are_errors, warn_system_headers, pedantic_errors or inhibit_warnings flags. (c_common_post_options): Do not check cpp_errors (parse_in). (c_common_finish): Do not output dependencies if there were errors. Do not check return value of cpp_finish. * c-ppoutput.c (pp_file_change): Set input_location. * c-tree.h (c_cpp_error): Declare. * diagnostic.c (diagnostic_set_info_translated): Also initialize override_column. (diagnostic_build_prefix): Check override_column. * diagnostic.h (diagnostic_info): Add override_column field. (diagnostic_override_column): Define. gcc/cp: * cp-tree.h (cp_cpp_error): Remove. * error.c (cp_cpp_error): Remove. * parser.c (cp_lexer_new_main): Set done_lexing instead of client_diagnostic and error callback. gcc/fortran: * cpp.c (cb_cpp_error): New. (gfc_cpp_post_options): Don't set cpp_option->inhibit_warnings. Don't check cpp_errors (cpp_in). (gfc_cpp_init_0): Set cb->error. gcc/testsuite: * gcc.dg/builtin-redefine.c, gcc.dg/cpp/redef2.c, gcc.dg/cpp/redef3.c, gcc.dg/cpp/trad/redef2.c: Use dg-message instead of dg-warning for "previous definition" messages. * gcc.dg/cpp/Wvariadic-1.c, gcc.dg/cpp/Wvariadic-3.c: Expect "warnings being treated as errors" message. * gcc.dg/fltconst-1.c: Use -fshow-column. libcpp: * makedepend.c: Remove. * Makefile.in (makedepend_OBJS, makedepend$(EXEEXT)): Remove. (all, clean, TAGS_SOURCES, include): Remove makedepend handling. * directives.c (cpp_errors): Remove. * errors.c (print_location, _cpp_begin_message, v_message): Remove. (cpp_error, cpp_error_with_line): Always use error callback. (cpp_error, cpp_error_with_line, cpp_errno): Return bool. * include/cpplib.h (cpp_options): Remove pedantic_errors, inhibit_warnings, warn_system_headers, inhibit_errors, warnings_are_errors, client_diagnostic. (cpp_callbacks): Add extra arguments to error callback; make it return bool. (cpp_finish): Return void. (cpp_destroy): Remove inaccurate comment about return value. (cpp_errors, CPP_DL_EXTRACT, CPP_DL_WARNING_P): Remove. (CPP_DL_NOTE): Define. * include/line-map.h (linemap_print_containing_files): Remove. * init.c (cpp_finish): Do not check for or return number of errors. * internal.h (cpp_reader): Remove errors field. * line-map.c (linemap_print_containing_files): Remove. * macro.c (_cpp_create_definition): Use CPP_DL_NOTE for message about previous definition. Only emit it if previous diagnostic was emitted. From-SVN: r145263
260 lines
7.8 KiB
Makefile
260 lines
7.8 KiB
Makefile
# @configure_input@
|
|
# Makefile for libcpp. Run 'configure' to generate Makefile from Makefile.in
|
|
|
|
# Copyright (C) 2004, 2008, 2009 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)
|
|
#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 COPYING. If not, write to
|
|
#the Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
|
#Boston MA 02110-1301, USA.
|
|
|
|
@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_CFLAGS@ @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@
|
|
DEPMODE = @CCDEPMODE@
|
|
DEPDIR = @DEPDIR@
|
|
|
|
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)
|
|
|
|
libcpp_a_OBJS = charset.o directives.o directives-only.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 directives-only.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
|
|
|
|
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-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
|
|
|
|
# Dependency rule.
|
|
COMPILE.base = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(ALL_CFLAGS) -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
|
|
|
|
.c.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_errno:3 \
|
|
--keyword=cpp_error_with_line:5 \
|
|
--keyword=SYNTAX_ERROR --keyword=SYNTAX_ERROR2 \
|
|
--copyright-holder="Free Software Foundation, Inc." \
|
|
--msgid-bugs-address="http://gcc.gnu.org/bugs.html" \
|
|
--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 ucnid.h \
|
|
include/line-map.h include/symtab.h include/cpp-id-data.h \
|
|
include/cpplib.h include/mkdeps.h system.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
|