summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2003-01-21 06:42:01 +0000
committerEric Andersen <andersen@codepoet.org>2003-01-21 06:42:01 +0000
commit9816f942928a6854fc3b8099033003c3f6998f97 (patch)
treee5329c825c0187e98f4dc012471789514d0b4fe3
parentc1701b3e17ab8da35678926dbf7f909d7854f7e0 (diff)
Ok, I think it really works now. :)
-rw-r--r--make/gcc_target.mk69
1 files changed, 43 insertions, 26 deletions
diff --git a/make/gcc_target.mk b/make/gcc_target.mk
index b674e96b7..4ac60ac4e 100644
--- a/make/gcc_target.mk
+++ b/make/gcc_target.mk
@@ -56,8 +56,9 @@ $(BINUTILS_DIR2)/.configured:
CC=$(TARGET_CROSS)gcc \
$(BINUTILS_DIR)/configure \
--target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
--prefix=/usr \
- --exec-prefix=$(STAGING_DIR) \
+ --exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--libexecdir=/usr/lib \
@@ -169,15 +170,19 @@ $(GCC_BUILD_DIR3)/.gcc_build_hacks:
# Make certain the uClibc include files are found
#
perl -i -p -e "s,^NATIVE_SYSTEM_HEADER_DIR.*,NATIVE_SYSTEM_HEADER_DIR=\
- $(STAGING_DIR)/include,;" $(GCC_DIR)/gcc/Makefile.in;
+ /usr/include,;" $(GCC_DIR)/gcc/Makefile.in;
perl -i -p -e "s,^CROSS_SYSTEM_HEADER_DIR.*,CROSS_SYSTEM_HEADER_DIR=\
- $(STAGING_DIR)/include,;" $(GCC_DIR)/gcc/Makefile.in;
+ /usr/include,;" $(GCC_DIR)/gcc/Makefile.in;
perl -i -p -e "s,^#define.*STANDARD_INCLUDE_DIR.*,#define STANDARD_INCLUDE_DIR \
\"/usr/include\",;" $(GCC_DIR)/gcc/cppdefault.h;
mkdir -p $(GCC_BUILD_DIR3)
touch $(GCC_BUILD_DIR3)/.gcc_build_hacks
$(GCC_BUILD_DIR3)/.configured: $(GCC_BUILD_DIR3)/.gcc_build_hacks
+ mkdir -p $(TARGET_DIR)/usr/lib/gcc-lib
+ mkdir -p $(TARGET_DIR)/usr/$(GNU_TARGET_NAME)
+ (cd $(TARGET_DIR)/usr/$(GNU_TARGET_NAME); ln -fs ../include)
+ (cd $(TARGET_DIR)/usr/$(GNU_TARGET_NAME); ln -fs ../include sys-include)
(cd $(GCC_BUILD_DIR3); PATH=$(STAGING_DIR)/bin:$$PATH \
AS=$(TARGET_CROSS)as \
LD=$(TARGET_CROSS)ld \
@@ -189,20 +194,20 @@ $(GCC_BUILD_DIR3)/.configured: $(GCC_BUILD_DIR3)/.gcc_build_hacks
RANLIB=$(TARGET_CROSS)ranlib \
$(GCC_DIR)/configure \
--target=$(GNU_TARGET_NAME) \
- --prefix=$(STAGING_DIR) \
- --exec-prefix=$(STAGING_DIR) \
- --bindir=$(STAGING_DIR)/bin \
- --sbindir=$(STAGING_DIR)/sbin \
- --sysconfdir=$(STAGING_DIR)/etc \
- --datadir=$(STAGING_DIR)/share \
- --localstatedir=$(STAGING_DIR)/var \
- --mandir=$(STAGING_DIR)/man \
- --infodir=$(STAGING_DIR)/info \
- --with-local-prefix=$(STAGING_DIR)/usr/local \
- --libdir=$(STAGING_DIR)/lib \
- --includedir=$(STAGING_DIR)/include \
- --with-gxx-include-dir=$(STAGING_DIR)/include/c++ \
- --oldincludedir=$(STAGING_DIR)/include \
+ --host=$(GNU_TARGET_NAME) \
+ --prefix=/usr \
+ --exec-prefix=/usr \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin \
+ --sysconfdir=/etc \
+ --datadir=/usr/share \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --with-local-prefix=/usr/local \
+ --libdir=/usr/lib \
+ --includedir=$(TARGET_DIR)/usr/include \
+ --with-gxx-include-dir=$(TARGET_DIR)/usr/include/c++ \
--enable-shared $(MULTILIB) \
--enable-target-optspace --disable-nls \
--with-gnu-ld --disable-__cxa_atexit \
@@ -220,46 +225,58 @@ $(GCC_BUILD_DIR3)/.compiled: $(GCC_BUILD_DIR3)/.configured
NM=$(TARGET_CROSS)nm \
CC=$(TARGET_CROSS)gcc \
GCC=$(TARGET_CROSS)gcc \
- CXX=$(TARGET_CROSS)c++ \
+ CXX=$(TARGET_CROSS)g++ \
RANLIB=$(TARGET_CROSS)ranlib \
$(MAKE) -C $(GCC_BUILD_DIR3)
touch $(GCC_BUILD_DIR3)/.compiled
$(TARGET_DIR)/usr/bin/gcc: $(GCC_BUILD_DIR3)/.compiled
- PATH=$(STAGING_DIR)/bin:$$PATH CC=$(TARGET_CROSS)gcc \
+ PATH=$(STAGING_DIR)/bin:$$PATH \
+ $(MAKE) \
+ CC=$(TARGET_CROSS)gcc \
AS=$(TARGET_CROSS)as \
LD=$(TARGET_CROSS)ld \
AR=$(TARGET_CROSS)ar \
NM=$(TARGET_CROSS)nm \
CC=$(TARGET_CROSS)gcc \
GCC=$(TARGET_CROSS)gcc \
- CXX=$(TARGET_CROSS)c++ \
+ CXX=$(TARGET_CROSS)g++ \
RANLIB=$(TARGET_CROSS)ranlib \
- $(MAKE) \
prefix=$(TARGET_DIR)/usr \
exec_prefix=$(TARGET_DIR)/usr \
bindir=$(TARGET_DIR)/usr/bin \
sbindir=$(TARGET_DIR)/usr/sbin \
- libexecdir=$(TARGET_DIR)/usr/lib \
+ libexecdir=$(TARGET_DIR)/usr/libexec \
datadir=$(TARGET_DIR)/usr/share \
sysconfdir=$(TARGET_DIR)/etc \
sharedstatedir=$(TARGET_DIR)/usr/com \
localstatedir=$(TARGET_DIR)/var \
libdir=$(TARGET_DIR)/usr/lib \
+ includedir=$(TARGET_DIR)/usr/include \
+ oldincludedir=$(TARGET_DIR)/usr/include \
infodir=$(TARGET_DIR)/usr/info \
mandir=$(TARGET_DIR)/usr/man \
- toolexecdir=$(TARGET_DIR)/lib/gcc-lib/$(GNU_TARGET_NAME) \
- -C $(GCC_BUILD_DIR3) install;
- -$(STRIP) $(TARGET_DIR)/bin/*
- -$(STRIP) $(TARGET_DIR)/usr/bin/*
+ gxx_include_dir=$(TARGET_DIR)/usr/include/c++ \
+ tooldir=$(TARGET_DIR)/usr/$(GNU_TARGET_NAME) \
+ build_tooldir=$(TARGET_DIR)/usr/$(GNU_TARGET_NAME) \
+ -C $(GCC_BUILD_DIR3)/gcc install;
(cd $(TARGET_DIR)/usr/bin; ln -fs gcc cc)
+ rm -rf $(TARGET_DIR)/usr/$(GNU_TARGET_NAME)/include
+ rm -rf $(TARGET_DIR)/usr/$(GNU_TARGET_NAME)/sys-include
-mv $(TARGET_DIR)/usr/bin/$(GNU_TARGET_NAME)-cpp $(TARGET_DIR)/usr/bin/cpp
-mv $(TARGET_DIR)/usr/bin/$(GNU_TARGET_NAME)-gcc $(TARGET_DIR)/usr/bin/gcc
-mv $(TARGET_DIR)/usr/bin/$(GNU_TARGET_NAME)-c++ $(TARGET_DIR)/usr/bin/c++
-mv $(TARGET_DIR)/usr/bin/$(GNU_TARGET_NAME)-g++ $(TARGET_DIR)/usr/bin/g++
-mv $(TARGET_DIR)/usr/bin/$(GNU_TARGET_NAME)-c++filt $(TARGET_DIR)/usr/bin/c++filt
+ -$(STRIP) $(TARGET_DIR)/bin/*
+ -$(STRIP) $(TARGET_DIR)/usr/bin/*
rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
$(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
+ # gcc "fixincludes" step is totally broken and takes unwanted
+ # stuff from the host system. Fix that here.
+ rm -rf $(TARGET_DIR)/usr/lib/gcc-lib/$(GNU_TARGET_NAME)/*/include/*
+ cp -a $(STAGING_DIR)/usr/lib/gcc-lib/$(GNU_TARGET_NAME)/*/include/* \
+ $(TARGET_DIR)/usr/lib/gcc-lib/$(GNU_TARGET_NAME)/*/include/
touch -c $(TARGET_DIR)/usr/bin/gcc
gcc_target: uclibc_target binutils_target $(TARGET_DIR)/usr/bin/gcc