Newer
Older
in
+]
# Makefile.in is generated from Makefile.tpl by 'autogen Makefile.def'.
#
# Makefile for directory with subdirs to build.
# Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
# 1999, 2000, 2001, 2002 Free Software Foundation
#
# This file 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 of the License, or
# (at your option) any later version.
#
# This program 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 this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
VPATH=@srcdir@
links=@configlinks@
build_alias=@build_alias@
build_cpu=@build_cpu@
build_vendor=@build_vendor@
build_os=@build_os@
build_canonical=@build_cpu@-@build_vendor@-@build_os@
host_alias=@host_alias@
host_cpu=@host_cpu@
host_vendor=@host_vendor@
host_os=@host_os@
host_canonical=@host_cpu@-@host_vendor@-@host_os@
target_alias=@target_alias@
target_cpu=@target_cpu@
target_vendor=@target_vendor@
target_os=@target_os@
target_canonical=@target_cpu@-@target_vendor@-@target_os@
enable_shared = @enable_shared@
enable_threads = @enable_threads@
enable_version_specific_runtime_libs = @enable_version_specific_runtime_libs@
# The file containing GCC's version number.
gcc_version_trigger = @gcc_version_trigger@
gcc_version = @gcc_version@
srcdir = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
includedir = @includedir@
oldincludedir = @oldincludedir@
infodir = @infodir@
mandir = @mandir@
gxx_include_dir = @gxx_include_dir@
libstdcxx_incdir = @libstdcxx_incdir@
tooldir = @tooldir@
build_tooldir = @build_tooldir@
program_transform_name = @program_transform_name@
man1dir = $(mandir)/man1
man2dir = $(mandir)/man2
man3dir = $(mandir)/man3
man4dir = $(mandir)/man4
man5dir = $(mandir)/man5
man6dir = $(mandir)/man6
man7dir = $(mandir)/man7
man8dir = $(mandir)/man8
man9dir = $(mandir)/man9
# Directory in which the compiler finds executables, libraries, etc.
libsubdir = $(libdir)/gcc-lib/$(target_alias)/$(gcc_version)
GDB_NLM_DEPS =
SHELL = @config_shell@
# pwd command to use. Allow user to override default by setting PWDCMD in
# the environment to account for automounters. The make variable must not
# be called PWDCMD, otherwise the value set here is passed to make
# subprocesses and overrides the setting from the user's environment.
PWD = $${PWDCMD-pwd}
# INSTALL_PROGRAM_ARGS is changed by configure.in to use -x for a
# cygwin host.
INSTALL_PROGRAM_ARGS =
INSTALL = $(SHELL) $$s/install-sh -c
INSTALL_PROGRAM = $(INSTALL) $(INSTALL_PROGRAM_ARGS)
INSTALL_SCRIPT = $(INSTALL)
INSTALL_DATA = $(INSTALL) -m 644
# Special variables passed down in EXTRA_GCC_FLAGS. They are defined
# here so that they can be overridden by Makefile fragments.
BUILD_CC = $(CC_FOR_BUILD)
BUILD_PREFIX = @BUILD_PREFIX@
BUILD_PREFIX_1 = @BUILD_PREFIX_1@
CFLAGS = @CFLAGS@
CXXFLAGS = @CXXFLAGS@
LDFLAGS =
LIBCFLAGS = $(CFLAGS)
CFLAGS_FOR_BUILD = $(CFLAGS)
# During gcc bootstrap, if we use some random cc for stage1 then
# CFLAGS will be just -g. We want to ensure that TARGET libraries
# (which we know are built with gcc) are built with optimizations so
# prepend -O2 when setting CFLAGS_FOR_TARGET.
CFLAGS_FOR_TARGET = -O2 $(CFLAGS)
LDFLAGS_FOR_TARGET =
LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
PICFLAG =
PICFLAG_FOR_TARGET =
# Use -O2 to stress test the compiler.
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
CXXFLAGS_FOR_TARGET = $(CXXFLAGS)
LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
DLLTOOL = @DLLTOOL@
WINDRES = @WINDRES@
# These values are substituted by configure.
DEFAULT_YACC = @DEFAULT_YACC@
DEFAULT_LEX = @DEFAULT_LEX@
DEFAULT_M4 = @DEFAULT_M4@
BISON=@BISON@
USUAL_BISON = `if [ -f $$r/bison/bison ] ; then \
echo $$r/bison/bison -L $$s/bison/ ; \
else \
echo bison ; \
fi`
YACC=@YACC@
USUAL_YACC = `if [ -f $$r/bison/bison ] ; then \
echo $$r/bison/bison -y -L $$s/bison/ ; \
elif [ -f $$r/byacc/byacc ] ; then \
echo $$r/byacc/byacc ; \
else \
echo ${DEFAULT_YACC} ; \
fi`
LEX=@LEX@
USUAL_LEX = `if [ -f $$r/flex/flex ] ; \
then echo $$r/flex/flex ; \
else echo ${DEFAULT_LEX} ; fi`
M4 = `if [ -f $$r/m4/m4 ] ; \
then echo $$r/m4/m4 ; \
else echo ${DEFAULT_M4} ; fi`
# For an installed makeinfo, we require it to be from texinfo 4 or
# higher, else we use the "missing" dummy.
MAKEINFO=@MAKEINFO@
USUAL_MAKEINFO = `if [ -f $$r/texinfo/makeinfo/makeinfo ] ; \
then echo $$r/texinfo/makeinfo/makeinfo ; \
else if (makeinfo --version \
| egrep 'texinfo[^0-9]*([1-3][0-9]|[4-9])') >/dev/null 2>&1; \
then echo makeinfo; else echo $$s/missing makeinfo; fi; fi`
# This just becomes part of the MAKEINFO definition passed down to
# sub-makes. It lets flags be given on the command line while still
# using the makeinfo from the object tree.
MAKEINFOFLAGS =
EXPECT = `if [ -f $$r/expect/expect ] ; \
then echo $$r/expect/expect ; \
else echo expect ; fi`
RUNTEST = `if [ -f $$s/dejagnu/runtest ] ; \
then echo $$s/dejagnu/runtest ; \
else echo runtest ; fi`
# compilers to use to create programs which must be run in the build
# environment.
# This is set by the configure script to the list of directories which
# should be built using the target tools.
TARGET_CONFIGDIRS = @target_configdirs@
# Target libraries are put under this directory:
# Changed by configure to $(target_alias) if cross.
TARGET_SUBDIR = @target_subdir@
BUILD_SUBDIR = @build_subdir@
# This is set by the configure script to the arguments to use when configuring
# directories built for the build system.
BUILD_CONFIGARGS = @build_configargs@
# This is set by the configure script to the arguments to use when configuring
# directories built for the host system.
HOST_CONFIGARGS = @host_configargs@
# This is set by the configure script to the arguments to use when configuring
# directories built for the target.
TARGET_CONFIGARGS = @target_configargs@
# This is set by configure to REALLY_SET_LIB_PATH if --enable-shared
# was used.
SET_LIB_PATH = @SET_LIB_PATH@
# This is the name of the environment variable used for the path to
# the libraries. This may be changed by configure.in.
RPATH_ENVVAR = @RPATH_ENVVAR@
# This is the list of directories that may be needed in RPATH_ENVVAR
# so that programs built for the host machine work.
HOST_LIB_PATH = $$r/bfd:$$r/opcodes
# This is the list of directories that may be needed in RPATH_ENVVAR
# so that prorgams built for the target machine work.
TARGET_LIB_PATH = $$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs:
# configure.in sets SET_LIB_PATH to this if --enable-shared was used.
# Some platforms don't like blank entries, so we remove duplicate,
# leading and trailing colons.
REALLY_SET_LIB_PATH = \
$(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH):$(TARGET_LIB_PATH):$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR);
# Should be substed by configure.in
FLAGS_FOR_TARGET = @FLAGS_FOR_TARGET@
CC_FOR_TARGET = @CC_FOR_TARGET@
CXX_FOR_TARGET = @CXX_FOR_TARGET@
RAW_CXX_FOR_TARGET = @RAW_CXX_FOR_TARGET@
CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
GCJ_FOR_TARGET = @GCJ_FOR_TARGET@
# If GCC_FOR_TARGET is not overriden on the command line, then this
# variable is passed down to the gcc Makefile, where it is used to
# build libgcc2.a. We define it here so that it can itself be
# overridden on the command line.
GCC_FOR_TARGET=@GCC_FOR_TARGET@
USUAL_GCC_FOR_TARGET = $(STAGE_CC_WRAPPER) $$r/gcc/xgcc -B$$r/gcc/ $(FLAGS_FOR_TARGET)
AS_FOR_TARGET=@AS_FOR_TARGET@
USUAL_AS_FOR_TARGET = ` \
if [ -f $$r/gas/as-new ] ; then \
echo $$r/gas/as-new ; \
elif [ -f $$r/gcc/xgcc ]; then \
$(CC_FOR_TARGET) -print-prog-name=as ; \
else \
if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
echo $(AS); \
else \
echo as | sed '$(program_transform_name)' ; \
LD_FOR_TARGET=@LD_FOR_TARGET@
USUAL_LD_FOR_TARGET = ` \
if [ -f $$r/ld/ld-new ] ; then \
echo $$r/ld/ld-new ; \
elif [ -f $$r/gcc/xgcc ]; then \
$(CC_FOR_TARGET) -print-prog-name=ld ; \
else \
if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
echo $(LD); \
else \
echo ld | sed '$(program_transform_name)' ; \
DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@
USUAL_DLLTOOL_FOR_TARGET = ` \
if [ -f $$r/binutils/dlltool ] ; then \
echo $$r/binutils/dlltool ; \
else \
if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
echo $(DLLTOOL); \
else \
echo dlltool | sed '$(program_transform_name)' ; \
WINDRES_FOR_TARGET=@WINDRES_FOR_TARGET@
USUAL_WINDRES_FOR_TARGET = ` \
if [ -f $$r/binutils/windres ] ; then \
echo $$r/binutils/windres ; \
else \
if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
echo $(WINDRES); \
else \
echo windres | sed '$(program_transform_name)' ; \
AR_FOR_TARGET=@AR_FOR_TARGET@
USUAL_AR_FOR_TARGET = ` \
if [ -f $$r/binutils/ar ] ; then \
echo $$r/binutils/ar ; \
else \
if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
echo $(AR); \
else \
echo ar | sed '$(program_transform_name)' ; \
RANLIB_FOR_TARGET=@RANLIB_FOR_TARGET@
USUAL_RANLIB_FOR_TARGET = ` \
if [ -f $$r/binutils/ranlib ] ; then \
echo $$r/binutils/ranlib ; \
else \
if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
if [ x'$(RANLIB)' != x ]; then \
echo $(RANLIB); \
else \
echo ranlib; \
fi; \
else \
echo ranlib | sed '$(program_transform_name)' ; \
NM_FOR_TARGET=@NM_FOR_TARGET@
USUAL_NM_FOR_TARGET = ` \
if [ -f $$r/binutils/nm-new ] ; then \
echo $$r/binutils/nm-new ; \
elif [ -f $$r/gcc/xgcc ]; then \
$(CC_FOR_TARGET) -print-prog-name=nm ; \
else \
if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
echo $(NM); \
else \
echo nm | sed '$(program_transform_name)' ; \
fi; \
fi`
# The first rule in the file had better be this one. Don't put any above it.
# This lives here to allow makefile fragments to contain dependencies.
all: all.normal
.PHONY: all
#### host and target specific makefile fragments come in here.
@target_makefile_frag@
@alphaieee_frag@
@ospace_frag@
@host_makefile_frag@
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
###
# Flags to pass down to all sub-makes.
# Please keep these in alphabetical order.
BASE_FLAGS_TO_PASS = \
"AR_FLAGS=$(AR_FLAGS)" \
"AR_FOR_TARGET=$(AR_FOR_TARGET)" \
"AS_FOR_TARGET=$(AS_FOR_TARGET)" \
"BISON=$(BISON)" \
"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
"CC_FOR_TARGET=$(CC_FOR_TARGET)" \
"CFLAGS=$(CFLAGS)" \
"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
"GCJ_FOR_TARGET=$(GCJ_FOR_TARGET)" \
"CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \
"CXXFLAGS=$(CXXFLAGS)" \
"CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \
"CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \
"DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \
"INSTALL=$(INSTALL)" \
"INSTALL_DATA=$(INSTALL_DATA)" \
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
"LDFLAGS=$(LDFLAGS)" \
"LEX=$(LEX)" \
"LD_FOR_TARGET=$(LD_FOR_TARGET)" \
"LIBCFLAGS=$(LIBCFLAGS)" \
"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
"LIBCXXFLAGS=$(LIBCXXFLAGS)" \
"LIBCXXFLAGS_FOR_TARGET=$(LIBCXXFLAGS_FOR_TARGET)" \
"M4=$(M4)" \
"MAKE=$(MAKE)" \
"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
"NM_FOR_TARGET=$(NM_FOR_TARGET)" \
"RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET)" \
"RPATH_ENVVAR=$(RPATH_ENVVAR)" \
"SHELL=$(SHELL)" \
"EXPECT=$(EXPECT)" \
"RUNTEST=$(RUNTEST)" \
"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
"TARGET_SUBDIR=$(TARGET_SUBDIR)" \
"WINDRES_FOR_TARGET=$(WINDRES_FOR_TARGET)" \
"YACC=$(YACC)" \
"bindir=$(bindir)" \
"datadir=$(datadir)" \
"exec_prefix=$(exec_prefix)" \
"includedir=$(includedir)" \
"infodir=$(infodir)" \
"libdir=$(libdir)" \
"libexecdir=$(libexecdir)" \
"lispdir=$(lispdir)" \
"libstdcxx_incdir=$(libstdcxx_incdir)" \
"libsubdir=$(libsubdir)" \
"localstatedir=$(localstatedir)" \
"mandir=$(mandir)" \
"oldincludedir=$(oldincludedir)" \
"prefix=$(prefix)" \
"sbindir=$(sbindir)" \
"sharedstatedir=$(sharedstatedir)" \
"sysconfdir=$(sysconfdir)" \
"tooldir=$(tooldir)" \
"build_tooldir=$(build_tooldir)" \
"gxx_include_dir=$(gxx_include_dir)" \
"gcc_version=$(gcc_version)" \
"gcc_version_trigger=$(gcc_version_trigger)" \
"target_alias=$(target_alias)"
# For any flags above that may contain shell code that varies from one
# target library to another. When doing recursive invocations of the
# top-level Makefile, we don't want the outer make to evaluate them,
# so we pass these variables down unchanged. They must not contain
# single nor double quotes.
RECURSE_FLAGS = \
CXX_FOR_TARGET='$(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)' \
RAW_CXX_FOR_TARGET='$(RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)' \
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
# Flags to pass down to most sub-makes, in which we're building with
# the host environment.
# If any variables are added here, they must be added to do-*, below.
EXTRA_HOST_FLAGS = \
'AR=$(AR)' \
'AS=$(AS)' \
'CC=$(CC)' \
'CXX=$(CXX)' \
'DLLTOOL=$(DLLTOOL)' \
'LD=$(LD)' \
'NM=$(NM)' \
"`echo 'RANLIB=$(RANLIB)' | sed -e s/.*=$$/XFOO=/`" \
'WINDRES=$(WINDRES)'
FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)
# Flags that are concerned with the location of the X11 include files
# and library files
#
# NOTE: until the top-level is getting the values via autoconf, it only
# causes problems to have this top-level Makefile overriding the autoconf-set
# values in child directories. Only variables that don't conflict with
# autoconf'ed ones should be passed by X11_FLAGS_TO_PASS for now.
#
X11_FLAGS_TO_PASS = \
'X11_EXTRA_CFLAGS=$(X11_EXTRA_CFLAGS)' \
'X11_EXTRA_LIBS=$(X11_EXTRA_LIBS)'
# Flags to pass down to makes which are built with the target environment.
# The double $ decreases the length of the command line; the variables
# are set in BASE_FLAGS_TO_PASS, and the sub-make will expand them.
# If any variables are added here, they must be added to do-*, below.
EXTRA_TARGET_FLAGS = \
'AR=$$(AR_FOR_TARGET)' \
'AS=$$(AS_FOR_TARGET)' \
'CC=$$(CC_FOR_TARGET)' \
'CFLAGS=$$(CFLAGS_FOR_TARGET)' \
'CXX=$$(CXX_FOR_TARGET)' \
'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \
'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \
'LD=$$(LD_FOR_TARGET)' \
'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \
'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET)' \
'NM=$$(NM_FOR_TARGET)' \
'RANLIB=$$(RANLIB_FOR_TARGET)' \
'WINDRES=$$(WINDRES_FOR_TARGET)'
TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)
# Flags to pass down to gcc. gcc builds a library, libgcc.a, so it
# unfortunately needs the native compiler and the target ar and
# ranlib.
# If any variables are added here, they must be added to do-*, below.
# The HOST_* variables are a special case, which are used for the gcc
# cross-building scheme.
EXTRA_GCC_FLAGS = \
'AR=$(AR)' \
'AS=$(AS)' \
'CC=$(CC)' \
'CXX=$(CXX)' \
'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \
'BUILD_PREFIX=$(BUILD_PREFIX)' \
'BUILD_PREFIX_1=$(BUILD_PREFIX_1)' \
'NM=$(NM)' \
"`echo 'RANLIB=$(RANLIB)' | sed -e s/.*=$$/XFOO=/`" \
'WINDRES=$$(WINDRES_FOR_TARGET)' \
"GCC_FOR_TARGET=$(GCC_FOR_TARGET)" \
"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
"`echo 'LANGUAGES=$(LANGUAGES)' | sed -e s/.*=$$/XFOO=/`" \
"`echo 'STMP_FIXPROTO=$(STMP_FIXPROTO)' | sed -e s/.*=$$/XFOO=/`" \
"`echo 'LIMITS_H_TEST=$(LIMITS_H_TEST)' | sed -e s/.*=$$/XFOO=/`" \
"`echo 'LIBGCC2_CFLAGS=$(LIBGCC2_CFLAGS)' | sed -e s/.*=$$/XFOO=/`" \
"`echo 'LIBGCC2_DEBUG_CFLAGS=$(LIBGCC2_DEBUG_CFLAGS)' | sed -e s/.*=$$/XFOO=/`" \
"`echo 'LIBGCC2_INCLUDES=$(LIBGCC2_INCLUDES)' | sed -e s/.*=$$/XFOO=/`" \
"`echo 'ENQUIRE=$(ENQUIRE)' | sed -e s/.*=$$/XFOO=/`" \
"`echo 'STAGE1_CFLAGS=$(STAGE1_CFLAGS)' | sed -e s/.*=$$/XFOO=/`" \
"`echo 'BOOT_CFLAGS=$(BOOT_CFLAGS)' | sed -e s/.*=$$/XFOO=/`"
GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS)
configure-host: @configure_host_modules@
configure-target: @configure_target_modules@
# This is a list of the targets for which we can do a clean-{target}.
IF (not (or (exist? "no_clean") (exist? "with_x"))) +] \
clean-[+module+][+
ENDIF no_clean +][+
ENDFOR host_modules +]
# All of the target modules that can be cleaned
CLEAN_TARGET_MODULES =[+
FOR target_modules +][+
IF (not (exist? "no_clean")) +] \
clean-target-[+module+][+
ENDIF no_clean +][+
ENDFOR target_modules +]
# All of the x11 modules that can be cleaned
CLEAN_X11_MODULES = [+ FOR host_modules +][+ IF with_x +]\
clean-[+module+] [+ ENDIF with_x +][+ ENDFOR host_modules +]
# This list only includes modules actually being configured and built.
all.normal: @all_build_modules@ \
@all_host_modules@ \
@all_target_modules@
all-host: @all_host_modules@
all-target: @all_target_modules@
# Do a target for all the subdirectories. A ``make do-X'' will do a
# ``make X'' in all subdirectories (because, in general, there is a
# dependency (below) of X upon do-X, a ``make X'' will also do this,
# but it may do additional work as well).
# This target ensures that $(BASE_FLAGS_TO_PASS) appears only once,
# because it is so large that it can easily overflow the command line
# length limit on some systems.
[+ FOR recursive_targets +]
.PHONY: do-[+target+]
do-[+target+]:
@r=`${PWD}`; export r; \
s=`cd $(srcdir); ${PWD}`; export s; \
$(SET_LIB_PATH) \
for i in $(SUBDIRS) -dummy-; do \
if [ -f ./$$i/Makefile ]; then \
case $$i in \
gcc) \
for flag in $(EXTRA_GCC_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
done; \
;; \
*) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
done; \
;; \
esac ; \
$(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
"CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
"`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
"DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
[+target+]) \
|| exit 1; \
r=`${PWD}`; export r; \
s=`cd $(srcdir); ${PWD}`; export s; \
$(SET_LIB_PATH) \
for i in $(TARGET_CONFIGDIRS) -dummy-; do \
if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \
for flag in $(EXTRA_TARGET_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
done; \
$(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
"CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
"`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
"DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
[+target+]) \
|| exit 1; \
[+ ENDFOR recursive_targets +]
# Here are the targets which correspond to the do-X targets.
.PHONY: info installcheck dvi install-info
.PHONY: clean distclean mostlyclean maintainer-clean realclean
.PHONY: local-clean local-distclean local-maintainer-clean
info: do-info
installcheck: do-installcheck
dvi: do-dvi
# Make sure makeinfo is built before we do a `make info', if we're
# in fact building texinfo.
do-info: maybe-all-texinfo
install-info: do-install-info dir.info
s=`cd $(srcdir); ${PWD}`; export s; \
if [ -f dir.info ] ; then \
$(INSTALL_DATA) dir.info $(infodir)/dir.info ; \
else true ; fi
local-clean:
-rm -f *.a TEMP errs core *.o *~ \#* TAGS *.E *.log
local-distclean:
-rm -f Makefile config.status config.cache mh-frag mt-frag
-rm -f multilib.out multilib.tmp maybedep.tmp serdep.tmp
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
-if [ "$(TARGET_SUBDIR)" != "." ]; then \
rm -rf $(TARGET_SUBDIR); \
else true; fi
-rm -f texinfo/po/Makefile texinfo/po/Makefile.in texinfo/info/Makefile
-rm -f texinfo/doc/Makefile texinfo/po/POTFILES
-rmdir texinfo/doc texinfo/info texinfo/intl texinfo/lib 2>/dev/null
-rmdir texinfo/makeinfo texinfo/po texinfo/util 2>/dev/null
-rmdir fastjar gcc libiberty texinfo zlib 2>/dev/null
local-maintainer-clean:
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
clean: do-clean local-clean
mostlyclean: do-mostlyclean local-clean
distclean: do-distclean local-clean local-distclean
maintainer-clean: local-maintainer-clean do-maintainer-clean local-clean
maintainer-clean: local-distclean
realclean: maintainer-clean
# This rule is used to clean specific modules.
.PHONY: $(CLEAN_MODULES) $(CLEAN_X11_MODULES) clean-gcc
$(CLEAN_MODULES) $(CLEAN_X11_MODULES) clean-gcc:
@dir=`echo $@ | sed -e 's/clean-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
r=`${PWD}`; export r; \
s=`cd $(srcdir); ${PWD}`; export s; \
$(SET_LIB_PATH) \
(cd $${dir} && $(MAKE) $(FLAGS_TO_PASS) clean); \
else \
true; \
fi
.PHONY: $(CLEAN_TARGET_MODULES)
$(CLEAN_TARGET_MODULES):
@dir=`echo $@ | sed -e 's/clean-target-//'`; \
rm -f $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/tmpmulti.out; \
if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
r=`${PWD}`; export r; \
s=`cd $(srcdir); ${PWD}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/$${dir} && $(MAKE) $(TARGET_FLAGS_TO_PASS) clean); \
else \
true; \
fi
clean-target: $(CLEAN_TARGET_MODULES) clean-target-libgcc
clean-target-libgcc:
test ! -d gcc/libgcc || \
(cd gcc/libgcc && find . -type d -print) | \
while read d; do rm -f gcc/$$d/libgcc.a || : ; done
-rm -rf gcc/libgcc
# Check target.
.PHONY: check do-check
check:
$(MAKE) do-check NOTPARALLEL=parallel-ok
# Only include modules actually being configured and built.
do-check: @check_host_modules@ \
@check_target_modules@
# Automated reporting of test results.
warning.log: build.log
$(srcdir)/contrib/warn_summary build.log > $@
mail-report.log:
if test x'$(BOOT_CFLAGS)' != x''; then \
BOOT_CFLAGS='$(BOOT_CFLAGS)'; export BOOT_CFLAGS; \
fi; \
$(srcdir)/contrib/test_summary -t >$@
chmod +x $@
echo If you really want to send e-mail, run ./$@ now
mail-report-with-warnings.log: warning.log
if test x'$(BOOT_CFLAGS)' != x''; then \
BOOT_CFLAGS='$(BOOT_CFLAGS)'; export BOOT_CFLAGS; \
fi; \
$(srcdir)/contrib/test_summary -t -i warning.log >$@
chmod +x $@
echo If you really want to send e-mail, run ./$@ now
# Installation targets.
.PHONY: install uninstall
install: installdirs @install_host_modules@ @install_target_modules@
install-target: @install_target_modules@
uninstall:
@echo "the uninstall target is not supported in this tree"
.PHONY: install.all
install.all: install-no-fixedincludes
@if [ -f ./gcc/Makefile ] ; then \
r=`${PWD}` ; export r ; \
$(SET_LIB_PATH) \
$(MAKE) $(FLAGS_TO_PASS) install-headers) ; \
else \
true ; \
fi
# install-no-fixedincludes is used because Cygnus can not distribute
# the fixed header files.
.PHONY: install-no-fixedincludes
install-no-fixedincludes: installdirs @install_host_modules_nogcc@ \
@install_target_modules@ gcc-no-fixedincludes
MAKEDIRS= \
$(DESTDIR)$(prefix) \
$(DESTDIR)$(exec_prefix)
.PHONY: installdirs
installdirs: mkinstalldirs
$(SHELL) $(srcdir)/mkinstalldirs $(MAKEDIRS)
dir.info: do-install-info
if [ -f $(srcdir)/texinfo/gen-info-dir ] ; then \
$(srcdir)/texinfo/gen-info-dir $(infodir) $(srcdir)/texinfo/dir.info-template > dir.info.new ; \
mv -f dir.info.new dir.info ; \
else true ; \
dist:
@echo "Building a full distribution of this tree isn't done"
@echo "via 'make dist'. Check out the etc/ subdirectory"
etags tags: TAGS
# Right now this just builds TAGS in each subdirectory. emacs19 has the
# ability to use several tags files at once, so there is probably no need
# to combine them into one big TAGS file (like CVS 1.3 does). We could
# (if we felt like it) have this Makefile write a piece of elisp which
# the user could load to tell emacs19 where all the TAGS files we just
# built are.
TAGS: do-TAGS
# --------------------------------------
# Modules which run on the build machine
# --------------------------------------
[+ FOR build_modules +]
.PHONY: configure-build-[+module+] maybe-configure-build-[+module+]
maybe-configure-build-[+module+]:
configure-build-[+module+]:
@test ! -f $(BUILD_SUBDIR)/[+module+]/Makefile || exit 0; \
[ -d $(BUILD_SUBDIR)/[+module+] ] || \
mkdir $(BUILD_SUBDIR)/[+module+];\
r=`${PWD}`; export r; \
s=`cd $(srcdir); ${PWD}`; export s; \
AR="$(AR_FOR_BUILD)"; export AR; \
AS="$(AS_FOR_BUILD)"; export AS; \
CC="$(CC_FOR_BUILD)"; export CC; \
CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \
CXX="$(CXX_FOR_BUILD)"; export CXX; \
CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \
GCJ="$(GCJ_FOR_BUILD)"; export GCJ; \
DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \
LD="$(LD_FOR_BUILD)"; export LD; \
LDFLAGS="$(LDFLAGS_FOR_BUILD)"; export LDFLAGS; \
NM="$(NM_FOR_BUILD)"; export NM; \
RANLIB="$(RANLIB_FOR_BUILD)"; export RANLIB; \
WINDRES="$(WINDRES_FOR_BUILD)"; export WINDRES; \
echo Configuring in $(BUILD_SUBDIR)/[+module+]; \
cd "$(BUILD_SUBDIR)/[+module+]" || exit 1; \
case $(srcdir) in \
/* | [A-Za-z]:[\\/]*) \
topdir=$(srcdir) ;; \
*) \
case "$(BUILD_SUBDIR)" in \
.) topdir="../$(srcdir)" ;; \
*) topdir="../../$(srcdir)" ;; \
esac ;; \
esac; \
if [ "$(srcdir)" = "." ] ; then \
if [ "$(BUILD_SUBDIR)" != "." ] ; then \
if $(SHELL) $$s/symlink-tree $${topdir}/[+module+] "no-such-file" ; then \
if [ -f Makefile ]; then \
if $(MAKE) distclean; then \
true; \
else \
exit 1; \
fi; \
else \
true; \
fi; \
else \
exit 1; \
fi; \
else \
true; \
fi; \
srcdiroption="--srcdir=."; \
libsrcdir="."; \
else \
srcdiroption="--srcdir=$${topdir}/[+module+]"; \
libsrcdir="$$s/[+module+]"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(BUILD_CONFIGARGS) $${srcdiroption} \
--with-build-subdir="$(BUILD_SUBDIR)" \
|| exit 1
.PHONY: all-build-[+module+] maybe-all-build-[+module+]
maybe-all-build-[+module+]:
all-build-[+module+]: configure-build-[+module+]
@r=`${PWD}`; export r; \
s=`cd $(srcdir); ${PWD}`; export s; \
(cd $(BUILD_SUBDIR)/[+module+] && $(MAKE) all)
[+ ENDFOR build_modules +]
# --------------------------------------
# Modules which run on the host machine
# --------------------------------------
[+ FOR host_modules +]
.PHONY: configure-[+module+] maybe-configure-[+module+]
maybe-configure-[+module+]:
configure-[+module+]:
@test ! -f [+module+]/Makefile || exit 0; \
[ -d [+module+] ] || mkdir [+module+]; \
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
r=`${PWD}`; export r; \
s=`cd $(srcdir); ${PWD}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
if [ z$(build_canonical) != z$(host_canoncial) ] ; then \
AR="$(AR)"; export AR; \
AS="$(AS)"; export AS; \
CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
LD="$(LD)"; export LD; \
NM="$(NM)"; export NM; \
RANLIB="$(RANLIB)"; export RANLIB; \
WINDRES="$(WINDRES)"; export WINDRES; \
OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
fi; \
echo Configuring in [+module+]; \
cd [+module+] || exit 1; \
case $(srcdir) in \
\.) \
srcdiroption="--srcdir=."; \
libsrcdir=".";; \
/* | [A-Za-z]:[\\/]*) \
srcdiroption="--srcdir=$(srcdir)/[+module+]"; \
libsrcdir="$$s/[+module+]";; \
*) \
srcdiroption="--srcdir=../$(srcdir)/[+module+]"; \
libsrcdir="$$s/[+module+]";; \
esac; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) $${srcdiroption} \
|| exit 1
.PHONY: all-[+module+] maybe-all-[+module+]
maybe-all-[+module+]:
all-[+module+]: configure-[+module+]
@r=`${PWD}`; export r; \
s=`cd $(srcdir); ${PWD}`; export s; \
$(SET_LIB_PATH) \
(cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+
IF with_x
+] $(X11_FLAGS_TO_PASS)[+
ENDIF with_x +] all)
[+ IF no_check +]
.PHONY: check-[+module+]
check-[+module+]:
[+ ELIF no_check_cross +]
.PHONY: check-[+module+]
# This module is only tested in a native toolchain.
check-[+module+]:
@if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
r=`${PWD}`; export r; \
s=`cd $(srcdir); ${PWD}`; export s; \
$(SET_LIB_PATH) \
(cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+
IF with_x
+] $(X11_FLAGS_TO_PASS)[+
ENDIF with_x +] check); \
[+ ELSE check +]
.PHONY: check-[+module+]
check-[+module+]:
@r=`${PWD}`; export r; \
s=`cd $(srcdir); ${PWD}`; export s; \
$(SET_LIB_PATH) \
(cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+
IF with_x
+] $(X11_FLAGS_TO_PASS)[+
ENDIF with_x +] check)
[+ ENDIF no_check +]
[+ IF no_install +]
.PHONY: install-[+module+] maybe-install-[+module+]
maybe-install-[+module+]:
install-[+module+]:
[+ ELSE install +]
.PHONY: install-[+module+] maybe-install-[+module+]
maybe-install-[+module+]:
install-[+module+]: installdirs
@r=`${PWD}`; export r; \
s=`cd $(srcdir); ${PWD}`; export s; \
$(SET_LIB_PATH) \
(cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+
IF with_x
+] $(X11_FLAGS_TO_PASS)[+
ENDIF with_x +] install)
[+ ENDIF no_install +]
[+ ENDFOR host_modules +]
# ---------------------------------------
# Modules which run on the target machine
# ---------------------------------------
[+ FOR target_modules +]
.PHONY: configure-target-[+module+] maybe-configure-target-[+module+]
maybe-configure-target-[+module+]:
# There's only one multilib.out. Cleverer subdirs shouldn't need it copied.
$(TARGET_SUBDIR)/[+module+]/multilib.out: multilib.out
@[ -d $(TARGET_SUBDIR)/[+module+] ] || \
mkdir $(TARGET_SUBDIR)/[+module+]; \
rm -f $(TARGET_SUBDIR)/[+module+]/Makefile || : ; \
cp multilib.out $(TARGET_SUBDIR)/[+module+]/multilib.out
configure-target-[+module+]: $(TARGET_SUBDIR)/[+module+]/multilib.out
@test ! -f $(TARGET_SUBDIR)/[+module+]/Makefile || exit 0; \
[ -d $(TARGET_SUBDIR)/[+module+] ] || \
mkdir $(TARGET_SUBDIR)/[+module+];\
r=`${PWD}`; export r; \
s=`cd $(srcdir); ${PWD}`; export s; \
$(SET_LIB_PATH) \
AR="$(AR_FOR_TARGET)"; export AR; \
AS="$(AS_FOR_TARGET)"; export AS; \
CC="$(CC_FOR_TARGET)"; export CC; \
CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \[+
IF raw_cxx +]
CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \
CXX="$(RAW_CXX_FOR_TARGET)"; export CXX; \[+
ELSE normal_cxx +]
CXX="$(CXX_FOR_TARGET)"; export CXX; \[+
ENDIF raw_cxx +]
CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
LD="$(LD_FOR_TARGET)"; export LD; \
LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
NM="$(NM_FOR_TARGET)"; export NM; \
RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
echo Configuring in $(TARGET_SUBDIR)/[+module+]; \