#
# Makefile for directory with subdirs to build.
# Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-# 1999, 2000 Free Software Foundation
+# 1999, 2000, 2001 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
LDFLAGS =
LIBCFLAGS = $(CFLAGS)
+CFLAGS_FOR_BUILD = $(CFLAGS)
CFLAGS_FOR_TARGET = $(CFLAGS)
LDFLAGS_FOR_TARGET =
LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
CC_FOR_TARGET =
CHILL_FOR_TARGET =
CXX_FOR_TARGET =
+CXX_FOR_TARGET_FOR_RECURSIVE_MAKE =
GCJ_FOR_TARGET =
# If GCC_FOR_TARGET is not overriden on the command line, then this
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 \
+ if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
echo $(AS); \
else \
t='$(program_transform_name)'; echo as | sed -e 's/x/x/' $$t ; \
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 \
+ if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
echo $(LD); \
else \
t='$(program_transform_name)'; echo ld | sed -e 's/x/x/' $$t ; \
if [ -f $$r/binutils/dlltool ] ; then \
echo $$r/binutils/dlltool ; \
else \
- if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
+ if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
echo $(DLLTOOL); \
else \
t='$(program_transform_name)'; echo dlltool | sed -e 's/x/x/' $$t ; \
if [ -f $$r/binutils/windres ] ; then \
echo $$r/binutils/windres ; \
else \
- if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
+ if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
echo $(WINDRES); \
else \
t='$(program_transform_name)'; echo windres | sed -e 's/x/x/' $$t ; \
if [ -f $$r/binutils/ar ] ; then \
echo $$r/binutils/ar ; \
else \
- if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
+ if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
echo $(AR); \
else \
t='$(program_transform_name)'; echo ar | sed -e 's/x/x/' $$t ; \
if [ -f $$r/binutils/ranlib ] ; then \
echo $$r/binutils/ranlib ; \
else \
- if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
- if [ x"$(RANLIB)" != x ]; then \
+ if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
+ if [ x'$(RANLIB)' != x ]; then \
echo $(RANLIB); \
else \
echo ranlib; \
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 \
+ if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
echo $(NM); \
else \
t='$(program_transform_name)'; echo nm | sed -e 's/x/x/' $$t ; \
"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)'
+
# 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.
"`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_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)
all-sed \
all-send-pr \
all-shellutils \
+ all-sid \
all-sim \
all-snavigator \
all-tar \
check-send-pr \
check-shellutils \
check-snavigator \
+ check-sid \
check-sim \
check-tar \
check-tcl \
install-sed \
install-send-pr \
install-shellutils \
+ install-sid \
install-sim \
install-snavigator \
install-tar \
clean-sed \
clean-send-pr \
clean-shellutils \
+ clean-sid \
clean-sim \
clean-snavigator \
clean-tar \
case $$i in \
gcc) \
for flag in $(EXTRA_GCC_FLAGS); do \
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'|"`; \
+ 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'|"`; \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
done; \
;; \
esac ; \
- export AR AS CC CXX LD NM RANLIB DLLTOOL WINDRES; \
if (cd ./$$i; \
$(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
"CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
- "`echo \"RANLIB=$${RANLIB}\" | sed -e \'s/.*=$$/XFOO=/\'`" \
+ "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
"DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
$${target}); \
then true; else exit 1; fi; \
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'|"`; \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
done; \
- export AR AS CC CXX LD NM RANLIB DLLTOOL WINDRES; \
if (cd $(TARGET_SUBDIR)/$$i; \
$(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
"CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
- "`echo \"RANLIB=$${RANLIB}\" | sed -e \'s/.*=$$/XFOO=/\'`" \
+ "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
"DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
$${target}); \
then true; else exit 1; fi; \
.PHONY: $(CHECK_MODULES) $(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES)
$(NATIVE_CHECK_MODULES):
- @if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
+ @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
dir=`echo $@ | sed -e 's/check-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
r=`pwd`; export r; \
r=`pwd`; export r; \
s=`cd $(srcdir); pwd`; export s; \
$(SET_LIB_PATH) \
- (cd $(TARGET_SUBDIR)/$${dir}; $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
+ (cd $(TARGET_SUBDIR)/$${dir}; \
+ $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
else \
true; \
fi
r=`pwd`; export r; \
s=`cd $(srcdir); pwd`; export s; \
$(SET_LIB_PATH) \
- (cd $(TARGET_SUBDIR)/$${dir};$(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
+ (cd $(TARGET_SUBDIR)/$${dir}; \
+ $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
else \
true; \
fi
s=`cd $(srcdir); pwd` ; export s; \
$(SET_LIB_PATH) \
echo "Building runtime libraries"; \
- $(MAKE) $(BASE_FLAGS_TO_PASS) all
+ $(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) all
.PHONY: cross
cross: all-texinfo all-bison all-byacc all-binutils all-gas all-ld
s=`cd $(srcdir); pwd` ; export s; \
$(SET_LIB_PATH) \
echo "Building runtime libraries"; \
- $(MAKE) $(BASE_FLAGS_TO_PASS) all LANGUAGES="c c++"
+ $(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) \
+ LANGUAGES="c c++" all
.PHONY: check-gcc
check-gcc:
s=`cd $(srcdir); pwd`; export s; \
$(SET_LIB_PATH) \
(cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++); \
- $(MAKE) check-target-libstdc++-v3 \
+ $(MAKE) check-target-libstdc++-v3; \
else \
true; \
fi
all-sed: all-libiberty
all-send-pr: all-prms
all-shellutils:
+all-sid: all-tcl all-tk
all-sim: all-libiberty all-bfd all-opcodes all-readline all-cgen
all-snavigator: all-tcl all-tk all-itcl all-db all-grep all-libgui
all-tar: all-libiberty
all-target: $(ALL_TARGET_MODULES)
install-target: $(INSTALL_TARGET_MODULES)
install-gdb: install-tcl install-tk install-itcl install-tix install-libgui
+install-sid: install-tcl install-tk
### other supporting targets
MAKEDIRS= \