731c4ce0e9
AIX supports "FAT" libraries containing 32 bit and 64 bit objects (similar to Darwin), but commands for manipulating libraries do not default to accept both 32 bit and 64 bit object files. While updating the AIX configuration to support building and running GCC as a 64 bit application, I have encountered some build libraries that hard code AR=ar instead of testing the environment. This patch adds AR_CHECK_TOOL(AR, ar) to configure.ac for the two libraries and updates Makefile.in to accept the substitution. 2020-05-23 David Edelsohn <dje.gcc@gmail.com> libcpp/ChangeLog: * Makefile.in (AR): Substitute @AR@. * configure.ac (CHECK_PROG AR): New. * configure: Regenerate. libdecnumber/ChangeLog: * Makefile.in (AR): Substitute @AR@. * configure.ac (CHECK_PROG AR): New. * configure: Regenerate.
281 lines
8.3 KiB
Makefile
281 lines
8.3 KiB
Makefile
# @configure_input@
|
|
# Makefile for libcpp. Run 'configure' to generate Makefile from Makefile.in
|
|
|
|
# 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 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.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
|
|
|
|
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 = $(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
|
|
|
|
.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_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="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))
|
|
|
|
# Dependencies on generated headers have to be explicit.
|
|
init.o: localedir.h
|