infodir = $(prefix)/info
includedir = $(prefix)/include
docdir = $(datadir)/doc
+GDB_NLM_DEPS =
SHELL = /bin/sh
# We don't specify -g -O because many compilers don't support -g -O,
# and/or -O is broken in and of itself.
CFLAGS = -g
+LIBCFLAGS = $(CFLAGS)
+CFLAGS_FOR_TARGET = $(CFLAGS)
+LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
+PICFLAG =
+PICFLAG_FOR_TARGET =
# start-sanitize-chill
CHILLFLAGS = $(CFLAGS)
CXX = gcc
# Use -O2 to stress test the compiler.
-CXXFLAGS = -g -O2 -fno-implicit-templates
+CXXFLAGS = -g -O2
+LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
+CXXFLAGS_FOR_TARGET = $(CXXFLAGS)
+LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
RANLIB = ranlib
NM = nm
if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
echo $(CC); \
else \
- t='$(program_transform_name)'; echo gcc | sed -e 's/brokensed/brokensed/' $$t; \
+ t='$(program_transform_name)'; echo gcc | sed -e 's/x/x/' $$t; \
fi; \
fi`
# start-sanitize-chill
CHILL_FOR_TARGET = ` \
if [ -f $$r/gcc/Makefile ] ; then \
- echo $$r/gcc/xgcc -B$$r/gcc/ -L$$r/chillrt/; \
+ echo $$r/gcc/xgcc -B$$r/gcc/ -L$$r/gcc/ch/runtime/; \
else \
if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
echo $(CC); \
else \
- t='$(program_transform_name)'; echo gcc | sed -e 's/brokensed/brokensed/' $$t; \
+ t='$(program_transform_name)'; echo gcc | sed -e 's/x/x/' $$t; \
fi; \
fi`
if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
echo $(CXX); \
else \
- t='$(program_transform_name)'; echo gcc | sed -e 's/brokensed/brokensed/' $$t; \
+ t='$(program_transform_name)'; echo gcc | sed -e 's/x/x/' $$t; \
fi; \
fi`
AS_FOR_TARGET = ` \
- if [ -f $$r/gas/Makefile ] ; then \
+ if [ -f $$r/gas/as.new ] ; then \
echo $$r/gas/as.new ; \
else \
if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
echo $(AS); \
else \
- t='$(program_transform_name)'; echo as | sed -e 's/brokensed/brokensed/' $$t ; \
+ t='$(program_transform_name)'; echo as | sed -e 's/x/x/' $$t ; \
+ fi; \
+ fi`
+
+DLLTOOL_FOR_TARGET = ` \
+ if [ -f $$r/binutils/dlltool ] ; then \
+ echo $$r/binutils/dlltool ; \
+ else \
+ if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
+ echo $(DLLTOOL); \
+ else \
+ t='$(program_transform_name)'; echo dlltool | sed -e 's/x/x/' $$t ; \
fi; \
fi`
if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
echo $(AR); \
else \
- t='$(program_transform_name)'; echo ar | sed -e 's/brokensed/brokensed/' $$t ; \
+ t='$(program_transform_name)'; echo ar | sed -e 's/x/x/' $$t ; \
fi; \
fi`
if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
echo $(RANLIB); \
else \
- t='$(program_transform_name)'; echo ranlib | sed -e 's/brokensed/brokensed/' $$t ; \
+ t='$(program_transform_name)'; echo ranlib | sed -e 's/x/x/' $$t ; \
fi; \
fi`
NM_FOR_TARGET = ` \
- if [ -f $$r/binutils/Makefile ] ; then \
+ if [ -f $$r/binutils/nm.new ] ; then \
echo $$r/binutils/nm.new ; \
else \
if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
echo $(NM); \
else \
- t='$(program_transform_name)'; echo nm | sed -e 's/brokensed/brokensed/' $$t ; \
+ t='$(program_transform_name)'; echo nm | sed -e 's/x/x/' $$t ; \
fi; \
fi`
-
#### host and target specific makefile fragments come in here.
###
"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
"CC_FOR_TARGET=$(CC_FOR_TARGET)" \
"CFLAGS=$(CFLAGS)" \
+ "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
$(start-sanitize-chill)\
"CHILLFLAGS=$(CHILLFLAGS)" \
"CHILL_FOR_TARGET=$(CHILL_FOR_TARGET)" \
$(end-sanitize-chill)\
"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)" \
"GCC_FOR_TARGET=$(CC_FOR_TARGET)" \
"INSTALL=$(INSTALL)" \
"INSTALL_DATA=$(INSTALL_DATA)" \
"INSTALL_XFORM=$(INSTALL_XFORM)" \
"LDFLAGS=$(LDFLAGS)" \
"LEX=$(LEX)" \
+ "LIBCFLAGS=$(LIBCFLAGS)" \
+ "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
+ "LIBCXXFLAGS=$(LIBCXXFLAGS)" \
+ "LIBCXXFLAGS_FOR_TARGET=$(LIBCXXFLAGS_FOR_TARGET)" \
"M4=$(M4)" \
"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)" \
'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)' \
+ 'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \
+ 'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET)' \
'NM=$$(NM_FOR_TARGET)' \
+ 'PICFLAG=$$(PICFLAG_FOR_TARGET)' \
'RANLIB=$$(RANLIB_FOR_TARGET)'
TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)
all-flex \
all-gas \
all-gawk \
- all-gdb \
all-gprof \
all-grep \
all-gzip \
all-make \
all-mmalloc \
all-opcodes \
- all-pagas \
all-patch \
all-prms \
all-rcs \
check-find \
check-gas \
check-gawk \
- check-gdb \
check-gprof \
check-grep \
check-gzip \
check-make \
check-mmcheckoc \
check-opcodes \
- check-pagas \
check-patch \
check-prms \
check-rcs \
install-flex \
install-gas \
install-gawk \
- install-gdb \
- install-glob \
install-gprof \
install-grep \
install-gzip \
install-make \
install-mmalloc \
install-opcodes \
- install-pagas \
install-patch \
install-prms \
install-rcs \
ALL_X11_MODULES = \
all-emacs \
all-emacs19 \
+ all-gdb \
all-expect \
all-gash \
all-tclX \
# compiled using $(X11_FLAGS_TO_PASS).
CHECK_X11_MODULES = \
check-emacs \
+ check-gdb \
check-expect \
check-gash \
check-tclX \
INSTALL_X11_MODULES = \
install-emacs \
install-emacs19 \
+ install-gdb \
install-expect \
install-gash \
install-tclX \
all-chillrt \
$(end-sanitize-chill) \
all-libio \
+ all-libstdc++ \
all-librx \
all-libg++ \
all-newlib \
+ all-libgloss \
all-xiberty
# This is a list of the check targets for all of the modules which are
check-chillrt \
$(end-sanitize-chill) \
check-libio \
+ check-libstdc++ \
check-libg++ \
check-newlib \
check-xiberty
install-chillrt \
$(end-sanitize-chill) \
install-libio \
+ install-libstdc++ \
install-libg++ \
install-newlib \
+ install-libgloss \
install-xiberty
# This is a shell case of all modules which are compiled using
# $(TARGET_FLAGS_TO_PASS), used in the do-X rule.
-TARGET_LIBS = libio | librx | libg++ | newlib | xiberty
+TARGET_LIBS = libio | libstdc++ | librx | libg++ | newlib | xiberty
# start-sanitize-chill
-TARGET_LIBS = chillrt | libio | librx | libg++ | newlib | xiberty
+TARGET_LIBS = chillrt | libio | libstdc++ | librx | libg++ | newlib | xiberty
# end-sanitize-chill
# The first rule in the file had better be this one. Don't put any above it.
# Installation targets.
-.PHONY: install uninstall vault-install
+.PHONY: install uninstall source-vault binary-vault vault-install
install: $(INSTALL_TARGET)
uninstall:
@echo "the uninstall target is not supported in this tree"
+source-vault:
+ $(MAKE) -f ./release/Build-A-Release \
+ host=$(host_alias) source-vault
+
+binary-vault:
+ $(MAKE) -f ./release/Build-A-Release \
+ host=$(host_alias) target=$(target_alias)
+
vault-install:
@if [ -f ./release/vault-install ] ; then \
./release/vault-install $(host_alias) $(target_alias) ; \
# This rule is used to build the modules which use FLAGS_TO_PASS. To
# build a target all-X means to cd to X and make all.
-# all-glob is handled specially because it doesn't actually build.
#
# all-gui, and all-libproc are handled specially because
# they are still experimental, and if they fail to build, that
# shouldn't stop "make all".
-.PHONY: $(ALL_MODULES) all-glob all-gui all-libproc
-$(ALL_MODULES) all-glob all-gui all-libproc:
+.PHONY: $(ALL_MODULES) all-gui all-libproc
+$(ALL_MODULES) all-gui all-libproc:
@dir=`echo $@ | sed -e 's/all-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
r=`pwd`; export r; \
# This is a list of inter-dependencies among modules.
all-autoconf: all-m4
all-bfd:
-all-binutils: all-libiberty all-opcodes all-bfd all-flex
+all-binutils: all-libiberty all-opcodes all-bfd all-flex all-byacc
all-byacc:
# start-sanitize-chill
all-chillrt: all-binutils all-gas all-gcc all-newlib
all-gas: all-libiberty all-opcodes all-bfd
all-gash: all-tcl
all-gawk:
-all-gcc: all-libiberty all-byacc all-binutils all-gas all-pagas
-all-gdb: all-libiberty all-opcodes all-bfd all-mmalloc all-readline all-glob all-byacc all-sim all-gcc all-ld
-all-glob:
+all-gcc: 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-gui: all-gdb all-libproc all-librx
all-gzip: all-libiberty
all-hello: all-libiberty
all-indent:
-all-ispell: all-emacs # all-emacs19 ??? is this needed?
+all-ispell: all-emacs19
all-ld: all-libiberty all-bfd all-byacc all-flex
-all-libg++: all-gas all-pagas all-ld all-gcc all-xiberty all-newlib \
- all-libio all-librx
-all-libio: all-gas all-pagas all-ld all-gcc all-xiberty all-newlib
+all-libg++: all-gas all-ld all-gcc all-xiberty all-newlib all-libio all-librx all-libstdc++
+all-libio: all-gas all-ld all-gcc all-xiberty all-newlib
all-libiberty:
+all-libstdc++: all-gas all-ld all-gcc all-xiberty all-newlib all-libio
all-m4: all-libiberty
all-make: all-libiberty
all-mmalloc:
-all-newlib: all-binutils all-gas all-pagas all-gcc
+all-newlib: all-binutils all-gas all-gcc
all-opcodes: all-bfd
all-patch:
all-prms: all-libiberty
# distribution (perhaps it would be better to include it anyway).
ETC_SUPPORT= Makefile.in cfg-paper.texi configure.in configure.man \
configure.texi standards.texi make-stds.texi
+ETC_SUPPORT_PFX=configure.info standards.info cfg-paper.info
# When you use `make setup-dirs' or `make taz' you should always redefine
# this macro.
# Files where "byacc" (Cygnus version) should be changed to "bison -y" (FSF).
DISTBISONFILES= binutils/Makefile.in gas/Makefile.in gdb/Makefile.in
# Directories where "info" should be built.
-DISTDOCDIRS= ld gprof binutils gas bfd libg++ libio gdb gnats send-pr
+DISTDOCDIRS= ld gprof binutils gas bfd libg++ libio gdb gnats send-pr etc
.PHONY: taz
if [ -d $$d ]; then \
case " $$p " in \
*" $$d "*) \
- echo making diststuff in $$d ; \
- (cd $$d ; pwd ; $(MAKE) diststuff ) || exit 1 ;; \
+ (cd $$d ; $(MAKE) diststuff ) || exit 1 ;; \
esac ; \
if [ -d $$d/proto-$$d.dir ]; then \
ln -s ../$$d/proto-$$d.dir proto-toplev/$$d ; \
$(MAKE) distclean
#
mkdir proto-toplev/etc
- (cd proto-toplev/etc; for i in $(ETC_SUPPORT); do \
+ (cd proto-toplev/etc; \
+ for i in $(ETC_SUPPORT); do \
ln -s ../../etc/$$i . ; \
- done)
+ done ; \
+ for i in $(ETC_SUPPORT_PFX); do \
+ ln -s ../../etc/$$i* . ; \
+ done)
#
- # Take out texinfo and glob from configurable dirs
+ # Take out texinfo from configurable dirs
rm proto-toplev/configure.in
sed -e '/^host_tools=/s/texinfo //' \
- -e '/^host_libs=/s/glob //' \
<configure.in >proto-toplev/configure.in
#
mkdir proto-toplev/texinfo
# The FSF "binutils" release includes gprof and ld.
.PHONY: binutils.tar.gz
-BINUTILS_SUPPORT_DIRS= bfd include libiberty opcodes ld gprof
+BINUTILS_SUPPORT_DIRS= bfd gas include libiberty opcodes ld gprof
binutils.tar.gz: $(DIST_SUPPORT) $(BINUTILS_SUPPORT_DIRS) binutils
$(MAKE) -f Makefile.in taz TOOL=binutils \
- SUPPORT_FILES="$(BINUTILS_SUPPORT_DIRS)"
+ SUPPORT_FILES="$(BINUTILS_SUPPORT_DIRS) makeall.bat configure.bat"
.PHONY: gas+binutils.tar.gz
GASB_SUPPORT_DIRS= $(GAS_SUPPORT_DIRS) binutils ld gprof
gas+binutils.tar.gz: $(DIST_SUPPORT) $(GASB_SUPPORT_DIRS) gas
$(MAKE) -f Makefile.in taz TOOL=gas \
- SUPPORT_FILES="$(GASB_SUPPORT_DIRS)"
+ SUPPORT_FILES="$(GASB_SUPPORT_DIRS) makeall.bat configure.bat"
.PHONY: libg++.tar.gz
-LIBGXX_SUPPORT_DIRS=include libio librx libiberty xiberty
+LIBGXX_SUPPORT_DIRS=include libstdc++ libio librx libiberty xiberty
libg++.tar.gz: $(DIST_SUPPORT) libg++
$(MAKE) -f Makefile.in taz TOOL=libg++ \
SUPPORT_FILES="$(LIBGXX_SUPPORT_DIRS)"
SUPPORT_FILES="$(GNATS_SUPPORT_DIRS)"
.PHONY: gdb.tar.gz
-GDB_SUPPORT_DIRS= bfd glob include libiberty mmalloc opcodes readline sim
+GDB_SUPPORT_DIRS= bfd include libiberty mmalloc opcodes readline sim
gdb.tar.gz: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb
$(MAKE) -f Makefile.in taz TOOL=gdb \
SUPPORT_FILES="$(GDB_SUPPORT_DIRS)"
.PHONY: newlib.tar.gz
-NEWLIB_SUPPORT_DIRS=
+NEWLIB_SUPPORT_DIRS=libgloss
+# taz configures for the sun4 target which won't configure newlib.
+# We need newlib configured so that the .info files are made.
+# Unfortunately, it is not enough to just configure newlib separately:
+# 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.
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" \