#
# 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. */
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
srcdir = .
# should be built using the target tools.
TARGET_CONFIGDIRS = libiberty libgloss newlib libio librx libstdc++ libg++ winsup
+# Target libraries are put under this directory:
+TARGET_SUBDIR = . # Changed by configure to $(target_alias) if cross.
+
# This is set by the configure script to the arguments passed to configure.
CONFIG_ARGUMENTS =
CC_FOR_TARGET = ` \
if [ -f $$r/gcc/Makefile ] ; then \
- if [ -f $$r/newlib/Makefile ] ; then \
- echo $$r/gcc/xgcc -B$$r/gcc/ -idirafter $$r/newlib/targ-include -idirafter $${srcroot}/newlib/libc/include -nostdinc; \
+ if [ -f $$r/$(TARGET_SUBDIR)/newlib/Makefile ] ; then \
+ echo $$r/gcc/xgcc -B$$r/gcc/ -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $${srcroot}/newlib/libc/include -nostdinc; \
else \
echo $$r/gcc/xgcc -B$$r/gcc/; \
fi; \
CXX_FOR_TARGET = ` \
if [ -f $$r/gcc/Makefile ] ; then \
- if [ -f $$r/newlib/Makefile ] ; then \
- echo $$r/gcc/xgcc -B$$r/gcc/ -idirafter $$r/newlib/targ-include -idirafter $${srcroot}/newlib/libc/include -nostdinc; \
+ if [ -f $$r/$(TARGET_SUBDIR)/newlib/Makefile ] ; then \
+ echo $$r/gcc/xgcc -B$$r/gcc/ -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $${srcroot}/newlib/libc/include -nostdinc; \
else \
echo $$r/gcc/xgcc -B$$r/gcc/; \
fi; \
'HOST_PREFIX=$(HOST_PREFIX)' \
'HOST_PREFIX_1=$(HOST_PREFIX_1)' \
'NM=$(NM)' \
- 'RANLIB=$$(RANLIB_FOR_TARGET)'
+ 'RANLIB=$$(RANLIB_FOR_TARGET)' \
+ `if test x"$(LANGUAGES)" != x; then echo "LANGUAGES=$(LANGUAGES)"; fi` \
+ `if test x"$(STMP_FIXPROTO)" != x; then echo "STMP_FIXPROTO=$(STMP_FIXPROTO)"; fi` \
+ `if test x"$(LIMITS_H_TEST)" != x; then echo "LIMITS_H_TEST=$(LIMITS_H_TEST)"; fi` \
+ `if test x"$(LIBGCC1_TEST)" != x; then echo "LIBGCC1_TEST=$(LIBGCC1_TEST)"; fi` \
+ `if test x"$(LIBGCC2_CFLAGS)" != x; then echo "LIBGCC2_CFLAGS=$(LIBGCC2_CFLAGS)"; fi` \
+ `if test x"$(LIBGCC2_INCLUDES)" != x; then echo "LIBGCC2_INCLUDES=$(LIBGCC2_INCLUDES)"; fi` \
+ `if test x"$(ENQUIRE)" != x; then echo "ENQUIRE=$(ENQUIRE)"; fi` \
+ `if test x"$(BOOT_CFLAGS)" != x; then echo "BOOT_CFLAGS=$(BOOT_CFLAGS)"; fi`
GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS)
all-gawk \
all-gprof \
all-grep \
+ all-grez \
all-gzip \
all-hello \
all-indent \
install-gawk \
install-gprof \
install-grep \
+ install-grez \
install-gzip \
install-hello \
install-indent \
# This is a list of the targets for all of the modules which are compiled
# using $(TARGET_FLAGS_TO_PASS).
-# RENAME these all-xinberty should be all-target-libiberty
ALL_TARGET_MODULES = \
all-target-libio \
all-target-libstdc++ \
all-target-newlib \
all-target-winsup \
all-target-libgloss \
- all-target-libiberty
+ all-target-libiberty \
+ all-target-examples
# This is a list of the configure targets for all of the modules which
# are compiled using the target tools.
configure-target-newlib \
configure-target-winsup \
configure-target-libgloss \
- configure-target-libiberty
+ configure-target-libiberty \
+ configure-target-examples
# This is a list of the check targets for all of the modules which are
# compiled using $(TARGET_FLAGS_TO_PASS).
# This is a list of the install targets for all of the modules which are
# compiled using $(TARGET_FLAGS_TO_PASS).
-CROSS=native # or CROSS=cross
-# Target libraries are put under this directory:
-TARGET_SUBDIR = . # Changed by configure to $(target_alias) if cross.
-
INSTALL_TARGET_MODULES = \
install-target-libio \
install-target-libstdc++ \
$${target}); \
then true; else exit 1; fi; \
else true; fi; \
- done;\
+ done
+ @target=`echo $@ | sed -e 's/^do-//'`; \
+ r=`pwd`; export r; \
+ srcroot=`cd $(srcdir); pwd`; export srcroot; \
for i in $(TARGET_CONFIGDIRS) -dummy-; do \
if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \
for flag in $(EXTRA_TARGET_FLAGS); do \
local-distclean:
-rm -f Makefile config.status
+ -if [ "$(TARGET_SUBDIR)" != "." ]; then \
+ rm -rf $(TARGET_SUBDIR); \
+ else true; fi
local-maintainer-clean:
@echo "This command is intended for maintainers to use;"
LD="$(LD_FOR_TARGET)"; export LD; \
NM="$(NM_FOR_TARGET)"; export NM; \
RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
+ echo Configuring in $(TARGET_SUBDIR)/$${dir}; \
cd $(TARGET_SUBDIR)/$${dir}; \
- $${srcroot}/configure $(CONFIG_ARGUMENTS) --srcdir=$${srcroot}/$${dir}; \
+ case $(srcdir) in \
+ /*) \
+ topdir=$(srcdir) ;; \
+ *) \
+ case "$(TARGET_SUBDIR)" in \
+ .) topdir="../$(srcdir)" ;; \
+ *) topdir="../../$(srcdir)" ;; \
+ esac ;; \
+ esac; \
+ if [ "$(srcdir)" = "." ] ; then \
+ if [ "$(TARGET_SUBDIR)" != "." ] ; then \
+ if $(SHELL) $${srcroot}/symlink-tree $${topdir}/$${dir} "Makefile" ; then \
+ true; \
+ else \
+ exit 1; \
+ fi; \
+ else \
+ true; \
+ fi; \
+ srcdiroption="--srcdir=."; \
+ libsrcdir="."; \
+ else \
+ srcdiroption="--srcdir=$${topdir}/$${dir}"; \
+ libsrcdir="$${srcroot}/$${dir}"; \
+ fi; \
+ if [ -f $${libsrcdir}/configure ] ; then \
+ $(SHELL) $${libsrcdir}/configure \
+ $(CONFIG_ARGUMENTS) $${srcdiroption} \
+ --with-target-subdir="$(TARGET_SUBDIR)"; \
+ else \
+ $(SHELL) $${srcroot}/configure \
+ $(CONFIG_ARGUMENTS) $${srcdiroption} \
+ --with-target-subdir="$(TARGET_SUBDIR)"; \
+ fi; \
else \
true; \
fi \
true; \
fi
+.PHONY: all-bootstrap
+all-bootstrap:
+ @if [ -f ./gcc/Makefile ] ; then \
+ r=`pwd`; export r; \
+ srcroot=`cd $(srcdir); pwd`; export srcroot; \
+ (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) bootstrap); \
+ else \
+ true; \
+ fi
+
.PHONY: check-gcc
check-gcc:
@if [ -f ./gcc/Makefile ] ; then \
all-emacs:
all-emacs19: all-byacc
all-etc:
+configure-target-examples: $(ALL_GCC)
+all-target-examples: configure-target-examples
all-expect: all-tcl all-tk
all-fileutils: all-libiberty
all-find:
all-gawk:
ALL_GCC = all-gcc
all-gcc: all-libiberty all-byacc all-binutils all-gas all-ld
+all-bootstrap: all-libiberty all-byacc all-binutils all-gas all-ld
all-gdb: all-libiberty all-opcodes all-bfd all-mmalloc all-readline all-byacc all-sim $(gdbnlmrequirements)
all-gprof: all-libiberty all-bfd
all-grep: all-libiberty
+all-grez: all-libiberty all-bfd
all-gui: all-gdb all-libproc all-target-librx
all-gzip: all-libiberty
all-hello: all-libiberty
all-indent:
all-ispell: all-emacs19
all-ld: all-libiberty all-bfd all-byacc all-flex
-configure-target-libg++: $(ALL_GCC)
+configure-target-libg++: $(ALL_GCC) configure-target-librx
all-target-libg++: configure-target-libg++ all-gas all-ld all-gcc all-target-libiberty all-target-newlib all-target-libio all-target-librx all-target-libstdc++
configure-target-libgloss: $(ALL_GCC)
-all-target-libgloss: configure-target-libgloss
+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
all-libiberty:
configure-target-newlib: $(ALL_GCC)
all-target-newlib: configure-target-newlib all-binutils all-gas all-gcc
all-opcodes: all-bfd
-all-patch:
+all-patch: all-libiberty
all-prms: all-libiberty
all-rcs:
all-readline:
all-tgas: all-libiberty all-bfd
all-time:
all-wdiff:
-all-target-winsup: all-target-newlib
+all-target-winsup: all-target-newlib configure-target-winsup
configure-target-winsup: configure-target-newlib
all-uudecode: all-libiberty
configure-target-libiberty: $(ALL_GCC)
DEVO_SUPPORT= README Makefile.in configure configure.in \
config.guess config.sub config move-if-change \
mpw-README mpw-build.in mpw-config.in mpw-configure \
- COPYING COPYING.LIB install.sh cfg-ml-com.in cfg-ml-pos.in
+ COPYING COPYING.LIB install.sh config-ml.in symlink-tree
# Files in devo/etc used in any net release.
# ChangeLog omitted because it may refer to files which are not in this
# taz will build the .info files but since SUBDIRS won't contain newlib,
# distclean won't be run (leaving Makefile, config.status, and the tmp files
# used in building the .info files, eg: *.def, *.ref).
-# Compensate here by configuring newlib for a simple (no multilib support)
-# cross target (sparc64), building the info files, and doing make distclean
-# ourselves.
+# The problem isn't solvable however without a lot of extra work because
+# target libraries are built in subdir $(target_alias) which gets nuked during
+# the make distclean. For now punt on the issue of shipping newlib info files
+# with newlib net releases and wait for a day when some native target (sun4?)
+# supports newlib (if only minimally).
newlib.tar.gz: $(DIST_SUPPORT) $(NEWLIB_SUPPORT_DIRS) newlib
- rootme=`pwd` ; \
- cd newlib && ../configure --srcdir $$rootme/newlib \
- --host sun4 --target sparc64-elf
- cd newlib ; make info
- cd newlib ; make distclean
$(MAKE) -f Makefile.in taz TOOL=newlib \
SUPPORT_FILES="$(NEWLIB_SUPPORT_DIRS)" \
DEVO_SUPPORT="$(DEVO_SUPPORT) COPYING.NEWLIB" newlib