Top GCC Makefile:
ifeq ($(
TARGET_CPU),ikanos)
include Makefile.ikanos
ENDIAN := big
endif
#Pfade zum Halten temporärer Dateien
BUILD = build-$(TARGET_CPU)
GMP = ./$(BUILD)/gmp
GMP_VER = 4.2.2
MPFR = ./$(BUILD)/mpfr
MPFR_VER = 2.3.0
BINUTILS = ./$(BUILD)/binutils
BINUTILS_VER =
2.19.50
GCC =./$(BUILD)/gcc
GCC_VER =
3.4.6
SOURCE =./source
PATCH =./patches
#Wichtig!!! Postinstall
echo -e "$(ECHO_GRUEN)[GCC::binutils_postinstall]$(ECHO_END)"
rm -f `find $(PREFIX)/$(TARGET) -name assert.h ` # Achtung, diese Datei ist für unseren Crosscompiler nicht
# wichtig kann aber schwer nachzuvollziehende Fehler
# verursachen. Daher wird sie immer gelöscht.
#----------------------------------------------------- ALLGEMEIN --------------------------------------------------------
all: prepare tmp-$(TARGET_CPU)-gcc tmp-$(TARGET_CPU)-gdb
echo -e "$(ECHO_GRUEN)[GCC::all]$(ECHO_END)"
ifeq ($(TARGET_CPU),ikanos)
( export TARGET_CPU=xtensa ; make all )
endif
prepare:
echo -e "$(ECHO_GRUEN)[GCC:
repare]$(ECHO_END)"
#hier werden die Verzeichnisse angelegt in denen die Sourcen ausgepackt und bearbeitet werden.
if [ ! -d $(GCC) ] ; then \
mkdir -p $(GCC) $(GMP) $(MPFR) $(BINUTILS) ; \
fi
if [ ! -d $(SOURCE) ] ; then \
mkdir -p $(SOURCE) ; \
fi
clean:
echo -e "$(ECHO_GRUEN)[GCC::clean]$(ECHO_END)"
#Es werden alle neu angelegten Verzeichnisse und Dateien entfernt
...
ifeq ($(TARGET_CPU),ikanos)
( export TARGET_CPU=xtensa ; make clean )
endif
Makefile.ikanos:
patch -d $(SOURCE)/gcc-$(GCC_VER) -p1 <$(PATCH)/kkw_gcc_info_patch ;\
patch -d $(SOURCE)/gcc-$(GCC_VER) -p1 <$(PATCH)/uclibc_patch_g++ ;\
TARGET=xtensa-elf