#
# Makefile for directory with subdirs to build.
-# Copyright (C) 1990, 91, 92, 93, 94, 95, 96, 1997 Free Software Foundation
+# Copyright (C) 1990, 91, 92, 93, 94, 95, 96, 97, 1998 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
# This is set by the configure script to the list of directories which
# should be built using the target tools.
-TARGET_CONFIGDIRS = libiberty libgloss newlib libio librx libstdc++ libg++ winsup
+TARGET_CONFIGDIRS = libiberty libgloss newlib libio librx libstdc++ libg++ libf2c winsup
# Target libraries are put under this directory:
# Changed by configure to $(target_alias) if cross.
ALL = all.normal
INSTALL_TARGET = installdirs \
+ install-gcc \
$(INSTALL_MODULES) \
$(INSTALL_TARGET_MODULES) \
$(INSTALL_X11_MODULES) \
- install-gcc \
$(INSTALL_DOSREL)
+INSTALL_TARGET_CROSS = installdirs \
+ install-gcc-cross \
+ $(INSTALL_MODULES) \
+ $(INSTALL_TARGET_MODULES) \
+ $(INSTALL_X11_MODULES) \
+ $(INSTALL_DOSREL)
CC_FOR_TARGET = ` \
if [ -f $$r/gcc/xgcc ] ; then \
"MAKE=$(MAKE)" \
"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
"NM_FOR_TARGET=$(NM_FOR_TARGET)" \
- "PICFLAG=$(PICFLAG)" \
- "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
"RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET)" \
"SHELL=$(SHELL)" \
"EXPECT=$(EXPECT)" \
"YACC=$(YACC)" \
"exec_prefix=$(exec_prefix)" \
"prefix=$(prefix)" \
- "tooldir=$(tooldir)"
+ "tooldir=$(tooldir)" \
+ "gxx_include_dir=$(gxx_include_dir)"
# Flags to pass down to most sub-makes, in which we're building with
# the host environment.
'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \
'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET)' \
'NM=$$(NM_FOR_TARGET)' \
- 'PICFLAG=$$(PICFLAG_FOR_TARGET)' \
'RANLIB=$$(RANLIB_FOR_TARGET)' \
'WINDRES=$$(WINDRES_FOR_TARGET)'
all-target-librx \
all-target-libg++ \
all-target-newlib \
+ all-target-libf2c \
all-target-winsup \
all-target-libgloss \
all-target-libiberty \
configure-target-librx \
configure-target-libg++ \
configure-target-newlib \
+ configure-target-libf2c \
configure-target-winsup \
configure-target-libgloss \
configure-target-libiberty \
check-target-libstdc++ \
check-target-libg++ \
check-target-newlib \
+ check-target-libf2c \
check-target-winsup \
check-target-libiberty \
check-target-gperf
install-target-libstdc++ \
install-target-libg++ \
install-target-newlib \
+ install-target-libf2c \
install-target-winsup \
install-target-libgloss \
install-target-libiberty \
clean-target-librx \
clean-target-libg++ \
clean-target-newlib \
+ clean-target-libf2c \
clean-target-winsup \
clean-target-libgloss \
clean-target-libiberty \
# Installation targets.
-.PHONY: install uninstall source-vault binary-vault vault-install
+.PHONY: install install-cross uninstall source-vault binary-vault vault-install
install: $(INSTALL_TARGET)
+install-cross: $(INSTALL_TARGET_CROSS)
uninstall:
@echo "the uninstall target is not supported in this tree"
libsrcdir="$$s/$${dir}"; \
fi; \
if [ -f $${libsrcdir}/configure ] ; then \
- $(SHELL) $${libsrcdir}/configure \
+ CONFIG_SITE=/dev/null $(SHELL) $${libsrcdir}/configure \
$(CONFIG_ARGUMENTS) $${srcdiroption} \
--with-target-subdir="$(TARGET_SUBDIR)"; \
else \
- $(SHELL) $$s/configure \
+ CONFIG_SITE=/dev/null $(SHELL) $$s/configure \
$(CONFIG_ARGUMENTS) $${srcdiroption} \
--with-target-subdir="$(TARGET_SUBDIR)"; \
fi; \
# In theory, on an SMP all those dependencies can be resolved
# in parallel.
#
-.PHONY: bootstrap bootstrap2 bootstrap3
-bootstrap bootstrap2 bootstrap3: all-texinfo all-bison all-byacc all-binutils all-gas all-ld
+.PHONY: bootstrap bootstrap-lean bootstrap2 bootstrap3 bootstrap4
+bootstrap bootstrap-lean bootstrap2 bootstrap3 bootstrap4: all-texinfo all-bison all-byacc all-binutils all-gas all-ld
@r=`pwd`; export r; \
s=`cd $(srcdir); pwd`; export s; \
$(SET_LIB_PATH) \
- echo "Bootstrapping the compiler with -O2 -g"; \
- cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) BOOT_CFLAGS="-O2 -g" $@
+ echo "Bootstrapping the compiler"; \
+ cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) $@
@r=`pwd`; export r; \
s=`cd $(srcdir); pwd`; export s; \
+ case "$@" in \
+ *bootstrap4 ) msg="Comparing stage3 and stage4 of the compiler"; \
+ compare=compare3 ;; \
+ *-lean ) msg="Comparing stage2 and stage3 of the compiler"; \
+ compare=compare-lean ;; \
+ * ) msg="Comparing stage2 and stage3 of the compiler"; \
+ compare=compare ;; \
+ esac; \
$(SET_LIB_PATH) \
- echo "Comparing stage2 and stage3 of the compiler"; \
- cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) BOOT_CFLAGS="-O2 -g" compare
+ echo "$$msg"; \
+ cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) $$compare
@echo "Building runtime libraries"; \
$(MAKE) all
+.PHONY: cross
+cross: all-texinfo all-bison all-byacc all-binutils all-gas all-ld
+ @r=`pwd`; export r; \
+ s=`cd $(srcdir); pwd`; export s; \
+ $(SET_LIB_PATH) \
+ echo "Building the C and C++ compiler"; \
+ cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++"
+ @echo "Building runtime libraries"; \
+ $(MAKE) all LANGUAGES="c c++"
+
.PHONY: check-gcc
check-gcc:
@if [ -f ./gcc/Makefile ] ; then \
r=`pwd`; export r; \
s=`cd $(srcdir); pwd`; export s; \
$(SET_LIB_PATH) \
- (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) install); \
+ (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++" install); \
else \
true; \
fi
-
+.PHONY: install-gcc-cross
+install-gcc-cross:
+ @if [ -f ./gcc/Makefile ] ; then \
+ r=`pwd`; export r; \
+ s=`cd $(srcdir); pwd`; export s; \
+ $(SET_LIB_PATH) \
+ (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) install); \
+ else \
+ true; \
+ fi
# EXPERIMENTAL STUFF
# This rule is used to install the modules which use FLAGS_TO_PASS.
# To build a target install-X means to cd to X and make install.
all-target-libgloss: configure-target-libgloss configure-target-newlib
configure-target-libio: $(ALL_GCC)
all-target-libio: configure-target-libio all-gas all-ld all-gcc all-target-libiberty all-target-newlib
+check-target-libio: all-target-libstdc++
all-libiberty:
configure-target-librx: $(ALL_GCC) configure-target-newlib
all-target-librx: configure-target-librx
configure-target-libstdc++: $(ALL_GCC)
all-target-libstdc++: configure-target-libstdc++ all-gas all-ld all-gcc all-target-libiberty all-target-newlib all-target-libio
+all-target-libf2c: configure-target-libf2c all-gas all-ld all-gcc all-target-libiberty all-target-newlib
all-m4: all-libiberty
all-make: all-libiberty
all-mmalloc: