diff options
Diffstat (limited to 'make')
-rw-r--r-- | make/autoconf.mk | 4 | ||||
-rw-r--r-- | make/automake.mk | 4 | ||||
-rw-r--r-- | make/bash.mk | 1 | ||||
-rw-r--r-- | make/binutils-uclibc.mk | 26 | ||||
-rw-r--r-- | make/busybox.mk | 8 | ||||
-rw-r--r-- | make/ccache.mk | 32 | ||||
-rw-r--r-- | make/ext2root.mk | 2 | ||||
-rw-r--r-- | make/gcc-uclibc-2.95.mk | 35 | ||||
-rw-r--r-- | make/gcc-uclibc-3.x.mk (renamed from make/gcc-uclibc-3.3.mk) | 109 | ||||
-rw-r--r-- | make/gdb.mk | 189 | ||||
-rw-r--r-- | make/gdbserver.mk | 53 | ||||
-rw-r--r-- | make/kernel-headers.mk | 44 | ||||
-rw-r--r-- | make/libtool.mk | 6 | ||||
-rw-r--r-- | make/linux.mk | 8 | ||||
-rw-r--r-- | make/ltrace.mk | 6 | ||||
-rw-r--r-- | make/ncurses.mk | 3 | ||||
-rw-r--r-- | make/sed.mk | 4 | ||||
-rw-r--r-- | make/strace.mk | 6 | ||||
-rw-r--r-- | make/uclibc.mk | 60 | ||||
-rw-r--r-- | make/util-linux.mk | 2 |
20 files changed, 345 insertions, 257 deletions
diff --git a/make/autoconf.mk b/make/autoconf.mk index 8343160ae..4b39ebf9b 100644 --- a/make/autoconf.mk +++ b/make/autoconf.mk @@ -3,10 +3,10 @@ # autoconf # ############################################################# -AUTOCONF_SOURCE:=autoconf-2.57.tar.bz2 +AUTOCONF_SOURCE:=autoconf-2.59.tar.bz2 AUTOCONF_SITE:=ftp://ftp.gnu.org/gnu/autoconf AUTOCONF_CAT:=bzcat -AUTOCONF_DIR:=$(BUILD_DIR)/autoconf-2.57 +AUTOCONF_DIR:=$(BUILD_DIR)/autoconf-2.59 AUTOCONF_BINARY:=autoconf AUTOCONF_TARGET_BINARY:=usr/bin/autoconf diff --git a/make/automake.mk b/make/automake.mk index 6ac66003a..31abb805b 100644 --- a/make/automake.mk +++ b/make/automake.mk @@ -3,10 +3,10 @@ # automake # ############################################################# -AUTOMAKE_SOURCE:=automake-1.6.3.tar.bz2 +AUTOMAKE_SOURCE:=automake-1.9.tar.bz2 AUTOMAKE_SITE:=ftp://ftp.gnu.org/gnu/automake AUTOMAKE_CAT:=bzcat -AUTOMAKE_DIR:=$(BUILD_DIR)/automake-1.6.3 +AUTOMAKE_DIR:=$(BUILD_DIR)/automake-1.9 AUTOMAKE_BINARY:=automake AUTOMAKE_TARGET_BINARY:=usr/bin/automake diff --git a/make/bash.mk b/make/bash.mk index 26c408fc9..855c0fbe0 100644 --- a/make/bash.mk +++ b/make/bash.mk @@ -46,6 +46,7 @@ $(BASH_DIR)/.configured: $(BASH_DIR)/.unpacked $(DISABLE_LARGEFILE) \ --with-curses \ --enable-alias \ + --without-bash-malloc \ ); touch $(BASH_DIR)/.configured diff --git a/make/binutils-uclibc.mk b/make/binutils-uclibc.mk index 0f3296497..8ed94d6f3 100644 --- a/make/binutils-uclibc.mk +++ b/make/binutils-uclibc.mk @@ -3,25 +3,37 @@ # build binutils for use on the host system # ############################################################# +BINUTILS_VERSION:=$(strip $(BINUTILS_VERSION)) + BINUTILS_SITE:=http://ftp.kernel.org/pub/linux/devel/binutils -BINUTILS_SOURCE:=binutils-2.14.90.0.6.tar.bz2 -BINUTILS_DIR:=$(TOOL_BUILD_DIR)/binutils-2.14.90.0.6 +ifeq ($(BINUTILS_VERSION),2.15) +BINUTILS_SITE:=http://ftp.gnu.org/gnu/binutils/ +endif +ifeq ($(BINUTILS_VERSION),2.14) +BINUTILS_SITE:=http://ftp.gnu.org/gnu/binutils/ +endif +ifeq ($(BINUTILS_VERSION),2.13) +BINUTILS_SITE:=http://ftp.gnu.org/gnu/binutils/ +endif + +BINUTILS_SOURCE:=binutils-$(BINUTILS_VERSION).tar.bz2 +BINUTILS_DIR:=$(TOOL_BUILD_DIR)/binutils-$(BINUTILS_VERSION) BINUTILS_CAT:=bzcat -BINUTILS_DIR1:=$(TOOL_BUILD_DIR)/binutils-build +BINUTILS_DIR1:=$(TOOL_BUILD_DIR)/binutils-$(BINUTILS_VERSION)-build $(DL_DIR)/$(BINUTILS_SOURCE): + mkdir -p $(DL_DIR) $(WGET) -P $(DL_DIR) $(BINUTILS_SITE)/$(BINUTILS_SOURCE) $(BINUTILS_DIR)/.unpacked: $(DL_DIR)/$(BINUTILS_SOURCE) mkdir -p $(TOOL_BUILD_DIR) - mkdir -p $(DL_DIR) $(BINUTILS_CAT) $(DL_DIR)/$(BINUTILS_SOURCE) | tar -C $(TOOL_BUILD_DIR) -xvf - touch $(BINUTILS_DIR)/.unpacked $(BINUTILS_DIR)/.patched: $(BINUTILS_DIR)/.unpacked - # Apply any files named binutils-*.patch from the source directory to binutils - $(SOURCE_DIR)/patch-kernel.sh $(BINUTILS_DIR) $(SOURCE_DIR) binutils-uclibc*.patch + # Apply appropriate binutils patches. + $(SOURCE_DIR)/patch-kernel.sh $(BINUTILS_DIR) $(SOURCE_DIR)/binutils/$(BINUTILS_VERSION) *.patch touch $(BINUTILS_DIR)/.patched $(BINUTILS_DIR1)/.configured: $(BINUTILS_DIR)/.patched @@ -77,7 +89,7 @@ binutils-dirclean: # build binutils for use on the target system # ############################################################# -BINUTILS_DIR2:=$(BUILD_DIR)/binutils-target +BINUTILS_DIR2:=$(BUILD_DIR)/binutils-$(BINUTILS_VERSION)-target $(BINUTILS_DIR2)/.configured: $(BINUTILS_DIR)/.patched mkdir -p $(BINUTILS_DIR2) (cd $(BINUTILS_DIR2); \ diff --git a/make/busybox.mk b/make/busybox.mk index 4ad737ccd..b6cd287fc 100644 --- a/make/busybox.mk +++ b/make/busybox.mk @@ -4,14 +4,14 @@ # ############################################################# -ifeq ($(USE_BUSYBOX_SNAPSHOT),true) +ifneq ($(strip $(USE_BUSYBOX_SNAPSHOT)),) # Be aware that this changes daily.... BUSYBOX_DIR:=$(BUILD_DIR)/busybox -BUSYBOX_SOURCE:=busybox-snapshot.tar.bz2 +BUSYBOX_SOURCE:=busybox-$(strip $(USE_BUSYBOX_SNAPSHOT)).tar.bz2 BUSYBOX_SITE:=http://www.busybox.net/downloads/snapshots else -BUSYBOX_DIR:=$(BUILD_DIR)/busybox-1.00-pre8 -BUSYBOX_SOURCE:=busybox-1.00-pre8.tar.bz2 +BUSYBOX_DIR:=$(BUILD_DIR)/busybox-1.00-rc2 +BUSYBOX_SOURCE:=busybox-1.00-rc2.tar.bz2 BUSYBOX_SITE:=http://www.busybox.net/downloads endif BUSYBOX_UNZIP=bzcat diff --git a/make/ccache.mk b/make/ccache.mk index f495be954..eea70017f 100644 --- a/make/ccache.mk +++ b/make/ccache.mk @@ -19,8 +19,11 @@ $(CCACHE_DIR1)/.unpacked: $(DL_DIR)/$(CCACHE_SOURCE) touch $(CCACHE_DIR1)/.unpacked $(CCACHE_DIR1)/.patched: $(CCACHE_DIR1)/.unpacked - $(SED) "s,getenv(\"CCACHE_PATH\"),\"$(STAGING_DIR)/usr/bin\",g" \ + # WARNING - this will break if the toolchain is moved. + # Should probably patch things to use a relative path. + $(SED) "s,getenv(\"CCACHE_PATH\"),\"$(STAGING_DIR)/bin-ccache\",g" \ $(CCACHE_DIR1)/execute.c + # WARNING - this will break if the toolchain build dir is deleted. $(SED) "s,getenv(\"CCACHE_DIR\"),\"$(CCACHE_DIR1)/cache\",g" \ $(CCACHE_DIR1)/ccache.c mkdir -p $(CCACHE_DIR1)/cache @@ -43,14 +46,16 @@ $(CCACHE_DIR1)/$(CCACHE_BINARY): $(CCACHE_DIR1)/.configured $(STAGING_DIR)/$(CCACHE_TARGET_BINARY): $(CCACHE_DIR1)/$(CCACHE_BINARY) mkdir -p $(STAGING_DIR)/usr/bin; - mkdir -p $(TOOL_BUILD_DIR)/.ccache; cp $(CCACHE_DIR1)/ccache $(STAGING_DIR)/usr/bin - (cd $(STAGING_DIR)/usr/bin; \ + # Keep the actual toolchain binaries in a directory at the same level. + # Otherwise, relative paths for include dirs break. + mkdir -p $(STAGING_DIR)/bin-ccache; + (cd $(STAGING_DIR)/bin-ccache; \ ln -fs $(OPTIMIZE_FOR_CPU)-linux-uclibc-gcc $(OPTIMIZE_FOR_CPU)-linux-gcc; \ ln -fs $(OPTIMIZE_FOR_CPU)-linux-uclibc-gcc $(OPTIMIZE_FOR_CPU)-linux-cc; \ ln -fs $(OPTIMIZE_FOR_CPU)-linux-uclibc-gcc $(OPTIMIZE_FOR_CPU)-linux-uclibc-cc); [ -f $(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)-linux-uclibc-gcc ] && \ - mv $(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)-linux-uclibc-gcc $(STAGING_DIR)/usr/bin/ + mv $(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)-linux-uclibc-gcc $(STAGING_DIR)/bin-ccache/ (cd $(STAGING_DIR)/bin; \ ln -fs ../usr/bin/ccache $(OPTIMIZE_FOR_CPU)-linux-cc; \ ln -fs ../usr/bin/ccache $(OPTIMIZE_FOR_CPU)-linux-gcc; \ @@ -58,9 +63,9 @@ $(STAGING_DIR)/$(CCACHE_TARGET_BINARY): $(CCACHE_DIR1)/$(CCACHE_BINARY) ln -fs ../usr/bin/ccache $(OPTIMIZE_FOR_CPU)-linux-uclibc-gcc); ifeq ($(INSTALL_LIBSTDCPP),true) [ -f $(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)-linux-uclibc-c++ ] && \ - mv $(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)-linux-uclibc-c++ $(STAGING_DIR)/usr/bin/ + mv $(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)-linux-uclibc-c++ $(STAGING_DIR)/bin-ccache/ [ -f $(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)-linux-uclibc-g++ ] && \ - mv $(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)-linux-uclibc-g++ $(STAGING_DIR)/usr/bin/ + mv $(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)-linux-uclibc-g++ $(STAGING_DIR)/bin-ccache/ (cd $(STAGING_DIR)/bin; \ ln -fs ../usr/bin/ccache $(OPTIMIZE_FOR_CPU)-linux-c++; \ ln -fs ../usr/bin/ccache $(OPTIMIZE_FOR_CPU)-linux-g++;\ @@ -68,11 +73,7 @@ ifeq ($(INSTALL_LIBSTDCPP),true) ln -fs ../usr/bin/ccache $(OPTIMIZE_FOR_CPU)-linux-uclibc-g++); endif -ifeq ($(GCC_2_95_TOOLCHAIN),true) -ccache: gcc2_95 $(STAGING_DIR)/$(CCACHE_TARGET_BINARY) -else -ccache: gcc3_3 $(STAGING_DIR)/$(CCACHE_TARGET_BINARY) -endif +ccache: gcc $(STAGING_DIR)/$(CCACHE_TARGET_BINARY) ccache-clean: $(MAKE) -C $(CCACHE_DIR1) uninstall @@ -128,12 +129,11 @@ $(TARGET_DIR)/$(CCACHE_TARGET_BINARY): $(CCACHE_DIR2)/$(CCACHE_BINARY) $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc # put a bunch of symlinks into /bin, since that is earlier # in the default PATH than /usr/bin where gcc lives - (cd $(TARGET_DIR)/usr/bin; ln -fs gcc cc) (cd $(TARGET_DIR)/bin; \ - ln -fs ../usr/bin/ccache cc; \ - ln -fs ../usr/bin/ccache gcc; \ - ln -fs ../usr/bin/ccache c++; \ - ln -fs ../usr/bin/ccache g++;) + ln -fs /usr/bin/ccache cc; \ + ln -fs /usr/bin/ccache gcc; \ + ln -fs /usr/bin/ccache c++; \ + ln -fs /usr/bin/ccache g++;) ccache_target: uclibc $(TARGET_DIR)/$(CCACHE_TARGET_BINARY) diff --git a/make/ext2root.mk b/make/ext2root.mk index 84e14b48f..ff2877145 100644 --- a/make/ext2root.mk +++ b/make/ext2root.mk @@ -34,7 +34,7 @@ genext2fs: $(GENEXT2_DIR)/genext2fs # How much KB we want to add to the calculated size for slack space GENEXT2_REALSIZE=$(subst total,, $(shell LANG=C du $(TARGET_DIR) -s -c -k | grep total )) GENEXT2_ADDTOROOTSIZE=$(shell if [ $(GENEXT2_REALSIZE) -ge 20000 ] ; then echo 16384; else echo 16; fi) -GENEXT2_SIZE=$(shell expr $(GENEXT2_REALSIZE) + $(GENEXT2_ADDTOROOTSIZE)) +GENEXT2_SIZE=$(shell expr $(GENEXT2_REALSIZE) + $(GENEXT2_ADDTOROOTSIZE) + 200) # We currently add about 400 device nodes, so add that into the total GENEXT2_INODES=$(shell expr $(shell find $(TARGET_DIR) | wc -l) + 400) #GENEXT2_SIZE=100000 diff --git a/make/gcc-uclibc-2.95.mk b/make/gcc-uclibc-2.95.mk index 9294b53f7..ddbf118e9 100644 --- a/make/gcc-uclibc-2.95.mk +++ b/make/gcc-uclibc-2.95.mk @@ -17,7 +17,8 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -ifeq ($(GCC_2_95_TOOLCHAIN),true) +ifeq ($(findstring 2.95,$(GCC_VERSION)),2.95) +GCC_VERSION:=$(strip $(GCC_VERSION)) GCC_SITE:=http://www.uclibc.org/downloads/toolchain GCC_SOURCE:=gcc-20011006.tar.bz2 @@ -48,20 +49,20 @@ endif # build the first pass gcc compiler # ############################################################# -GCC_BUILD_DIR1:=$(TOOL_BUILD_DIR)/gcc2_95-initial +GCC_BUILD_DIR1:=$(TOOL_BUILD_DIR)/gcc-$(GCC_VERSION)-initial $(DL_DIR)/$(GCC_SOURCE): + mkdir -p $(DL_DIR) $(WGET) -P $(DL_DIR) $(GCC_SITE)/$(GCC_SOURCE) $(GCC_DIR)/.unpacked: $(DL_DIR)/$(GCC_SOURCE) + mkdir -p $(TOOL_BUILD_DIR) $(GCC_CAT) $(DL_DIR)/$(GCC_SOURCE) | tar -C $(TOOL_BUILD_DIR) -xvf - touch $(GCC_DIR)/.unpacked $(GCC_DIR)/.patched: $(GCC_DIR)/.unpacked # Apply any files named gcc-*.patch from the source directory to gcc - $(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) $(SOURCE_DIR) gcc2.95-mega.patch.bz2 - $(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) $(SOURCE_DIR) gcc2.95-uclibc-conf.patch - #$(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) $(SOURCE_DIR) gcc-uclibc2_95*.patch + $(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) $(SOURCE_DIR)/gcc/$(GCC_VERSION) *.patch # # We do not wish to build the libstdc++ library provided with gcc, # since it doesn't seem to work at all with uClibc plus gcc 2.95... @@ -107,13 +108,13 @@ $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-gcc: $(GCC_BUILD_DIR1)/.compiled #rm -f $(STAGING_DIR)/bin/gccbug $(STAGING_DIR)/bin/gcov #rm -rf $(STAGING_DIR)/info $(STAGING_DIR)/man $(STAGING_DIR)/share/doc $(STAGING_DIR)/share/locale -gcc2_95_initial: uclibc-configured binutils $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-gcc +gcc_initial: uclibc-configured binutils $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-gcc -gcc2_95_initial-clean: +gcc_initial-clean: rm -rf $(GCC_BUILD_DIR1) rm -f $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)* -gcc2_95_initial-dirclean: +gcc_initial-dirclean: rm -rf $(GCC_BUILD_DIR1) ############################################################# @@ -156,7 +157,7 @@ stlport-dirclean: # the newly built shared uClibc library. # ############################################################# -GCC_BUILD_DIR2:=$(TOOL_BUILD_DIR)/gcc2_95-final +GCC_BUILD_DIR2:=$(TOOL_BUILD_DIR)/gcc-$(GCC_VERSION)-final $(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/lib/libc.a mkdir -p $(GCC_BUILD_DIR2) @@ -200,16 +201,16 @@ endif ); touch $(GCC_BUILD_DIR2)/.installed -gcc2_95: uclibc-configured binutils gcc2_95_initial $(LIBFLOAT_TARGET) uclibc \ +gcc: uclibc-configured binutils gcc_initial $(LIBFLOAT_TARGET) uclibc \ $(GCC_BUILD_DIR2)/.installed $(GCC_TARGETS) $(STLPORT_TARGET) -gcc2_95-source: $(DL_DIR)/$(GCC_SOURCE) +gcc-source: $(DL_DIR)/$(GCC_SOURCE) -gcc2_95-clean: +gcc-clean: rm -rf $(GCC_BUILD_DIR2) rm -f $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)* -gcc2_95-dirclean: +gcc-dirclean: rm -rf $(GCC_BUILD_DIR2) ############################################################# @@ -217,7 +218,7 @@ gcc2_95-dirclean: # Next build target gcc compiler # ############################################################# -GCC_BUILD_DIR3:=$(BUILD_DIR)/gcc2_95-target +GCC_BUILD_DIR3:=$(BUILD_DIR)/gcc-$(GCC_VERSION)-target $(GCC_BUILD_DIR3)/.configured: $(GCC_BUILD_DIR2)/.installed mkdir -p $(GCC_BUILD_DIR3) @@ -264,13 +265,13 @@ $(TARGET_DIR)/usr/bin/gcc: $(GCC_BUILD_DIR3)/.compiled #rm -rf $(TARGET_DIR)/usr/lib/libgcc_s.so* #touch -c $(TARGET_DIR)/usr/bin/gcc -gcc2_95_target: uclibc_target binutils_target $(TARGET_DIR)/usr/bin/gcc +gcc_target: uclibc_target binutils_target $(TARGET_DIR)/usr/bin/gcc -gcc2_95_target-clean: +gcc_target-clean: rm -rf $(GCC_BUILD_DIR3) rm -f $(TARGET_DIR)/bin/$(REAL_GNU_TARGET_NAME)* -gcc2_95_target-dirclean: +gcc_target-dirclean: rm -rf $(GCC_BUILD_DIR3) endif diff --git a/make/gcc-uclibc-3.3.mk b/make/gcc-uclibc-3.x.mk index d39eed590..a4760dbdf 100644 --- a/make/gcc-uclibc-3.3.mk +++ b/make/gcc-uclibc-3.x.mk @@ -17,12 +17,11 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -ifneq ($(GCC_2_95_TOOLCHAIN),true) +ifneq ($(findstring 2.95,$(GCC_VERSION)),2.95) +GCC_VERSION:=$(strip $(GCC_VERSION)) -# Shiny new stuff... -GCC_VERSION:=3.3.4 GCC_SITE:=ftp://ftp.gnu.org/gnu/gcc/releases/gcc-$(GCC_VERSION) -GCC_SITE:=http://mirrors.rcn.net/pub/sourceware/gcc/releases/gcc-$(GCC_VERSION) +#GCC_SITE:=http://mirrors.rcn.net/pub/sourceware/gcc/releases/gcc-$(GCC_VERSION) # # snapshots.... @@ -55,31 +54,44 @@ endif # build the first pass gcc compiler # ############################################################# -GCC_BUILD_DIR1:=$(TOOL_BUILD_DIR)/gcc-3.3-initial +GCC_BUILD_DIR1:=$(TOOL_BUILD_DIR)/gcc-$(GCC_VERSION)-initial $(DL_DIR)/$(GCC_SOURCE): + echo GCC_SOURCE is $(GCC_SOURCE) + /bin/false + mkdir -p $(DL_DIR) $(WGET) -P $(DL_DIR) $(GCC_SITE)/$(GCC_SOURCE) $(GCC_DIR)/.unpacked: $(DL_DIR)/$(GCC_SOURCE) + mkdir -p $(TOOL_BUILD_DIR) $(GCC_CAT) $(DL_DIR)/$(GCC_SOURCE) | tar -C $(TOOL_BUILD_DIR) -xvf - touch $(GCC_DIR)/.unpacked $(GCC_DIR)/.patched: $(GCC_DIR)/.unpacked # Apply any files named gcc-*.patch from the source directory to gcc - $(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) $(SOURCE_DIR) gcc-uclibc-3.3*.patch + $(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) $(SOURCE_DIR)/gcc/$(GCC_VERSION) *.patch + # Note: The soft float situation has improved considerably with gcc 3.4.x. + # We can dispense with the custom spec files, as well as libfloat for the arm case. + # However, we still need a patch for arm. There's a similar patch for gcc 3.3.x + # which needs to be integrated so we can kill of libfloat for good, except for + # anyone (?) who might still be using gcc 2.95. mjn3 ifeq ($(SOFT_FLOAT),true) -ifeq ("$(strip $(ARCH))","i386") - $(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) $(SOURCE_DIR) i386-gcc-soft-float.patch +ifeq ("$(strip $(ARCH))","arm") + $(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) $(SOURCE_DIR)/gcc/$(GCC_VERSION) arm-softfloat.patch.conditional endif + # Not yet updated to 3.4.1. + #ifeq ("$(strip $(ARCH))","i386") + #$(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) $(SOURCE_DIR)/gcc i386-gcc-soft-float.patch + #endif endif touch $(GCC_DIR)/.patched # The --without-headers option stopped working with gcc 3.0 and has never been # # fixed, so we need to actually have working C library header files prior to # # the step or libgcc will not build... + $(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.patched mkdir -p $(GCC_BUILD_DIR1) - -mkdir -p $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/include (cd $(GCC_BUILD_DIR1); PATH=$(TARGET_PATH) \ $(GCC_DIR)/configure \ --prefix=$(STAGING_DIR) \ @@ -88,7 +100,6 @@ $(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.patched --target=$(REAL_GNU_TARGET_NAME) \ --enable-languages=c \ --disable-shared \ - --includedir=$(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/include \ --with-sysroot=$(TOOL_BUILD_DIR)/uClibc_dev/ \ --disable-__cxa_atexit \ --enable-target-optspace \ @@ -96,6 +107,7 @@ $(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.patched $(DISABLE_NLS) \ $(MULTILIB) \ $(SOFT_FLOAT_CONFIG_OPTION) \ + $(GCC_WITH_CPU) $(GCC_WITH_ARCH) $(GCC_WITH_TUNE) \ $(EXTRA_GCC_CONFIG_OPTIONS)); touch $(GCC_BUILD_DIR1)/.configured @@ -108,13 +120,13 @@ $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-gcc: $(GCC_BUILD_DIR1)/.compiled #rm -f $(STAGING_DIR)/bin/gccbug $(STAGING_DIR)/bin/gcov #rm -rf $(STAGING_DIR)/info $(STAGING_DIR)/man $(STAGING_DIR)/share/doc $(STAGING_DIR)/share/locale -gcc3_3_initial: uclibc-configured binutils $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-gcc +gcc_initial: uclibc-configured binutils $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-gcc -gcc3_3_initial-clean: +gcc_initial-clean: rm -rf $(GCC_BUILD_DIR1) rm -f $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)* -gcc3_3_initial-dirclean: +gcc_initial-dirclean: rm -rf $(GCC_BUILD_DIR1) ############################################################# @@ -123,11 +135,18 @@ gcc3_3_initial-dirclean: # the newly built shared uClibc library. # ############################################################# -GCC_BUILD_DIR2:=$(TOOL_BUILD_DIR)/gcc-3.3-final -$(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/lib/libc.a +# +# Sigh... I had to rework things because using --with-gxx-include-dir +# causes issues with include dir search order for g++. This seems to +# have something to do with "path translations" and possibly doesn't +# affect gcc-target. However, I haven't tested gcc-target yet so no +# guarantees. mjn3 + +GCC_BUILD_DIR2:=$(TOOL_BUILD_DIR)/gcc-$(GCC_VERSION)-final +$(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched $(STAGING_DIR)/lib/libc.a mkdir -p $(GCC_BUILD_DIR2) # Important! Required for limits.h to be fixed. - ln -sf include $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/sys-include + ln -sf ../include $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/sys-include (cd $(GCC_BUILD_DIR2); PATH=$(TARGET_PATH) \ $(GCC_DIR)/configure \ --prefix=$(STAGING_DIR) \ @@ -136,13 +155,13 @@ $(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched $(STAGING_DIR)/$(REAL_GNU_TAR --target=$(REAL_GNU_TARGET_NAME) \ --enable-languages=$(TARGET_LANGUAGES) \ --enable-shared \ - --with-gxx-include-dir=$(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/include/c++ \ --disable-__cxa_atexit \ --enable-target-optspace \ --with-gnu-ld \ $(DISABLE_NLS) \ $(MULTILIB) \ $(SOFT_FLOAT_CONFIG_OPTION) \ + $(GCC_WITH_CPU) $(GCC_WITH_ARCH) $(GCC_WITH_TUNE) \ $(GCC_USE_SJLJ_EXCEPTIONS) \ $(EXTRA_GCC_CONFIG_OPTIONS)); touch $(GCC_BUILD_DIR2)/.configured @@ -167,15 +186,6 @@ endif $(GNU_TARGET_NAME)$${app##$(REAL_GNU_TARGET_NAME)}; \ done; \ ); -ifeq ($(SOFT_FLOAT),true) - # Replace specs file with one that defaults to soft float mode. - if [ ! -f $(STAGING_DIR)/usr/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs ] ; then \ - echo staging dir specs file is missing ; \ - /bin/false ; \ - fi; - cp $(SOURCE_DIR)/specs-$(ARCH)-soft-float \ - $(STAGING_DIR)/usr/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs -endif touch $(GCC_BUILD_DIR2)/.installed $(TARGET_DIR)/lib/libgcc_s.so.1: $(GCC_BUILD_DIR2)/.installed @@ -184,16 +194,16 @@ $(TARGET_DIR)/lib/libgcc_s.so.1: $(GCC_BUILD_DIR2)/.installed -$(STRIP) $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/lib/libgcc_s.so.1 -cp -a $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/lib/libgcc_s* $(TARGET_DIR)/lib/ -gcc3_3: uclibc-configured binutils gcc3_3_initial $(LIBFLOAT_TARGET) uclibc \ +gcc: uclibc-configured binutils gcc_initial $(LIBFLOAT_TARGET) uclibc \ $(TARGET_DIR)/lib/libgcc_s.so.1 $(GCC_BUILD_DIR2)/.installed $(GCC_TARGETS) -gcc3_3-source: $(DL_DIR)/$(GCC_SOURCE) +gcc-source: $(DL_DIR)/$(GCC_SOURCE) -gcc3_3-clean: +gcc-clean: rm -rf $(GCC_BUILD_DIR2) rm -f $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)* -gcc3_3-dirclean: +gcc-dirclean: rm -rf $(GCC_BUILD_DIR2) ############################################################# @@ -201,7 +211,7 @@ gcc3_3-dirclean: # Next build target gcc compiler # ############################################################# -GCC_BUILD_DIR3:=$(BUILD_DIR)/gcc-3.3-target +GCC_BUILD_DIR3:=$(BUILD_DIR)/gcc-$(GCC_VERSION)-target $(GCC_BUILD_DIR3)/.configured: $(GCC_BUILD_DIR2)/.installed mkdir -p $(GCC_BUILD_DIR3) @@ -220,6 +230,7 @@ $(GCC_BUILD_DIR3)/.configured: $(GCC_BUILD_DIR2)/.installed $(DISABLE_NLS) \ $(MULTILIB) \ $(SOFT_FLOAT_CONFIG_OPTION) \ + $(GCC_WITH_CPU) $(GCC_WITH_ARCH) $(GCC_WITH_TUNE) \ $(GCC_USE_SJLJ_EXCEPTIONS) \ $(EXTRA_GCC_CONFIG_OPTIONS)); touch $(GCC_BUILD_DIR3)/.configured @@ -229,25 +240,23 @@ $(GCC_BUILD_DIR3)/.compiled: $(GCC_BUILD_DIR3)/.configured $(MAKE) $(JLEVEL) $(TARGET_GCC_ARGS) -C $(GCC_BUILD_DIR3) all touch $(GCC_BUILD_DIR3)/.compiled +# +# gcc-lib dir changes names to gcc with 3.4.mumble +# +ifeq ($(findstring 3.4.,$(GCC_VERSION)),3.4.) +GCC_LIB_SUBDIR=lib/gcc/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION) +else +GCC_LIB_SUBDIR=lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION) +endif + $(TARGET_DIR)/usr/bin/gcc: $(GCC_BUILD_DIR3)/.compiled PATH=$(TARGET_PATH) \ $(MAKE) $(JLEVEL) DESTDIR=$(TARGET_DIR) -C $(GCC_BUILD_DIR3) install -ifeq ($(SOFT_FLOAT),true) - # Replace specs file with one that defaults to soft float mode. - if [ ! -f $(TARGET_DIR)/usr/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs ] ; then \ - echo target dir specs file is missing ; \ - /bin/false ; \ - fi; - cp $(SOURCE_DIR)/specs-$(ARCH)-soft-float $(TARGET_DIR)/usr/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs - # Make sure gcc does not think we are cross compiling - $(SED) "s/^1/0/;" $(TARGET_DIR)/usr/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs -else # Remove broken specs file (cross compile flag is set). - rm -f $(TARGET_DIR)/usr/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs -endif + rm -f $(TARGET_DIR)/usr/$(GCC_LIB_SUBDIR)/specs -(cd $(TARGET_DIR)/bin; find -type f | xargs $(STRIP) > /dev/null 2>&1) -(cd $(TARGET_DIR)/usr/bin; find -type f | xargs $(STRIP) > /dev/null 2>&1) - -(cd $(TARGET_DIR)/usr/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION); $(STRIP) cc1 cc1plus collect2 > /dev/null 2>&1) + -(cd $(TARGET_DIR)/usr/$(GCC_LIB_SUBDIR); $(STRIP) cc1 cc1plus collect2 > /dev/null 2>&1) -(cd $(TARGET_DIR)/usr/lib; $(STRIP) libstdc++.so.*.*.* > /dev/null 2>&1) -(cd $(TARGET_DIR)/lib; $(STRIP) libgcc_s.so.*.*.* > /dev/null 2>&1) # @@ -255,18 +264,22 @@ endif #rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \ # $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc # Work around problem of missing syslimits.h - cp -f $(STAGING_DIR)/usr/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/include/syslimits.h $(TARGET_DIR)/usr/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/include/ + @if [ ! -f $(TARGET_DIR)/usr/$(GCC_LIB_SUBDIR)/include/syslimits.h ] ; then \ + echo "warning: working around missing syslimits.h" ; \ + cp -f $(STAGING_DIR)/$(GCC_LIB_SUBDIR)/include/syslimits.h \ + $(TARGET_DIR)/usr/$(GCC_LIB_SUBDIR)/include/ ; \ + fi # These are in /lib, so... #rm -rf $(TARGET_DIR)/usr/lib/libgcc_s.so* #touch -c $(TARGET_DIR)/usr/bin/gcc -gcc3_3_target: uclibc_target binutils_target $(TARGET_DIR)/usr/bin/gcc +gcc_target: uclibc_target binutils_target $(TARGET_DIR)/usr/bin/gcc -gcc3_3_target-clean: +gcc_target-clean: rm -rf $(GCC_BUILD_DIR3) rm -f $(TARGET_DIR)/bin/$(REAL_GNU_TARGET_NAME)* -gcc3_3_target-dirclean: +gcc_target-dirclean: rm -rf $(GCC_BUILD_DIR3) endif diff --git a/make/gdb.mk b/make/gdb.mk index 59a08be3d..4030ede7f 100644 --- a/make/gdb.mk +++ b/make/gdb.mk @@ -1,42 +1,112 @@ -############################################################# +###################################################################### # # gdb # -############################################################# +###################################################################### +GDB_VERSION:=$(strip $(GDB_VERSION)) -GDB_SITE:=ftp://ftp.gnu.org/gnu/gdb/ -GDB_DIR:=$(BUILD_DIR)/gdb-5.3 -GDB_SOURCE:=gdb-5.3.tar.gz -GDB_PATCH:=$(SOURCE_DIR)/gdb.patch -GDB_UCLIBC_PATCH:=$(SOURCE_DIR)/gdb-5.3-uclibc.patch +GDB_SITE:=http://ftp.gnu.org/gnu/gdb + +ifeq ($(GDB_VERSION),5.3) +GDB_SOURCE:=gdb-$(GDB_VERSION).tar.gz +GDB_CAT:=zcat +else +GDB_SOURCE:=gdb-$(GDB_VERSION).tar.bz2 +GDB_CAT:=bzcat +endif + +GDB_DIR:=$(TOOL_BUILD_DIR)/gdb-$(GDB_VERSION) $(DL_DIR)/$(GDB_SOURCE): $(WGET) -P $(DL_DIR) $(GDB_SITE)/$(GDB_SOURCE) -$(GDB_DIR)/.unpacked: $(DL_DIR)/$(GDB_SOURCE) $(GDB_PATCH) - gunzip -c $(DL_DIR)/$(GDB_SOURCE) | tar -C $(BUILD_DIR) -xvf - - cat $(GDB_PATCH) | patch -p1 -d $(GDB_DIR) - cat $(GDB_UCLIBC_PATCH) | patch -p1 -d $(GDB_DIR) - touch $(GDB_DIR)/.unpacked - -$(GDB_DIR)/.configured: $(GDB_DIR)/.unpacked +$(GDB_DIR)/.unpacked: $(DL_DIR)/$(GDB_SOURCE) + $(GDB_CAT) $(DL_DIR)/$(GDB_SOURCE) | tar -C $(TOOL_BUILD_DIR) -xvf - + $(SOURCE_DIR)/patch-kernel.sh $(GDB_DIR) $(SOURCE_DIR)/gdb/$(GDB_VERSION) *.patch # Copy a config.sub from gcc. This is only necessary until # gdb's config.sub supports <arch>-linux-uclibc tuples. + # Should probably integrate this into the patch. +ifeq ($(GDB_VERSION),5.3) + chmod u+x $(GDB_DIR)/gdb/gdbserver/configure cp $(GCC_DIR)/config.sub $(GDB_DIR) cp $(GCC_DIR)/config.sub $(GDB_DIR)/readline/support/ - (cd $(GDB_DIR); rm -rf config.cache; \ +endif + touch $(GDB_DIR)/.unpacked + +###################################################################### +# +# gdb target +# +###################################################################### + +GDB_TARGET_DIR:=$(BUILD_DIR)/gdb-$(GDB_VERSION)-target + +GDB_TARGET_CONFIGURE_VARS:= \ + ac_cv_type_uintptr_t=yes \ + gt_cv_func_gettext_libintl=yes \ + ac_cv_func_dcgettext=yes \ + gdb_cv_func_sigsetjmp=yes \ + bash_cv_func_strcoll_broken=no \ + bash_cv_must_reinstall_sighandlers=no \ + bash_cv_func_sigsetjmp=present \ + bash_cv_have_mbstate_t=yes + +$(GDB_TARGET_DIR)/.configured: $(GDB_DIR)/.unpacked + mkdir -p $(GDB_TARGET_DIR) + (cd $(GDB_TARGET_DIR); \ $(TARGET_CONFIGURE_OPTS) \ - CFLAGS="$(TARGET_CFLAGS)" \ - ac_cv_type_uintptr_t=yes \ - gt_cv_func_gettext_libintl=yes \ - ac_cv_func_dcgettext=yes \ - gdb_cv_func_sigsetjmp=yes \ - bash_cv_func_strcoll_broken=no \ - bash_cv_must_reinstall_sighandlers=no \ - bash_cv_func_sigsetjmp=present \ - ./configure \ + CFLAGS_FOR_TARGET="$(TARGET_CFLAGS)" \ + $(GDB_TARGET_CONFIGURE_VARS) \ + $(GDB_DIR)/configure \ + --build=$(GNU_HOST_NAME) \ + --host=$(REAL_GNU_TARGET_NAME) \ --target=$(REAL_GNU_TARGET_NAME) \ + --prefix=/usr \ + $(DISABLE_NLS) \ + --without-uiout --disable-gdbmi \ + --disable-tui --disable-gdbtk --without-x \ + --disable-sim --enable-gdbserver \ + --without-included-gettext \ + ); +ifeq ($(ENABLE_LOCALE),true) + -$(SED) "s,^INTL *=.*,INTL = -lintl,g;" $(GDB_DIR)/gdb/Makefile +endif + touch $(GDB_TARGET_DIR)/.configured + +$(GDB_TARGET_DIR)/gdb/gdb: $(GDB_TARGET_DIR)/.configured + $(MAKE) CC=$(TARGET_CC) MT_CFLAGS="$(TARGET_CFLAGS)" \ + -C $(GDB_TARGET_DIR) + $(STRIP) $(GDB_TARGET_DIR)/gdb/gdb + +$(TARGET_DIR)/usr/bin/gdb: $(GDB_TARGET_DIR)/gdb/gdb + install -c $(GDB_TARGET_DIR)/gdb/gdb $(TARGET_DIR)/usr/bin/gdb + +gdb_target: $(TARGET_DIR)/usr/bin/gdb + +gdb_target-source: $(DL_DIR)/$(GDB_SOURCE) + +gdb_target-clean: + $(MAKE) -C $(GDB_DIR) clean + +gdb_target-dirclean: + rm -rf $(GDB_DIR) + +###################################################################### +# +# gdbserver +# +###################################################################### + +GDB_SERVER_DIR:=$(BUILD_DIR)/gdbserver-$(GDB_VERSION) + +$(GDB_SERVER_DIR)/.configured: $(GDB_DIR)/.unpacked + mkdir -p $(GDB_SERVER_DIR) + (cd $(GDB_SERVER_DIR); \ + $(TARGET_CONFIGURE_OPTS) \ + $(GDB_DIR)/gdb/gdbserver/configure \ + --build=$(GNU_HOST_NAME) \ --host=$(REAL_GNU_TARGET_NAME) \ + --target=$(REAL_GNU_TARGET_NAME) \ --prefix=/usr \ --exec-prefix=/usr \ --bindir=/usr/bin \ @@ -51,30 +121,65 @@ $(GDB_DIR)/.configured: $(GDB_DIR)/.unpacked $(DISABLE_NLS) \ --without-uiout --disable-gdbmi \ --disable-tui --disable-gdbtk --without-x \ - --disable-sim --enable-gdbserver \ --without-included-gettext \ ); -ifeq ($(ENABLE_LOCALE),true) - -$(SED) "s,^INTL *=.*,INTL = -lintl,g;" $(GDB_DIR)/gdb/Makefile -endif - touch $(GDB_DIR)/.configured + touch $(GDB_SERVER_DIR)/.configured -$(GDB_DIR)/gdb/gdb: $(GDB_DIR)/.configured - $(MAKE) CC=$(TARGET_CC) -C $(GDB_DIR) - $(STRIP) $(GDB_DIR)/gdb/gdb +$(GDB_SERVER_DIR)/gdbserver: $(GDB_SERVER_DIR)/.configured + $(MAKE) CC=$(TARGET_CC) MT_CFLAGS="$(TARGET_CFLAGS)" \ + -C $(GDB_SERVER_DIR) + $(STRIP) $(GDB_SERVER_DIR)/gdbserver -$(TARGET_DIR)/usr/bin/gdb: $(GDB_DIR)/gdb/gdb - install -c $(GDB_DIR)/gdb/gdb $(TARGET_DIR)/usr/bin/gdb - rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \ - $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc +$(TARGET_DIR)/usr/bin/gdbserver: $(GDB_SERVER_DIR)/gdbserver + install -c $(GDB_SERVER_DIR)/gdbserver $(TARGET_DIR)/usr/bin/gdbserver -gdb: $(TARGET_DIR)/usr/bin/gdb +gdbserver: $(TARGET_DIR)/usr/bin/gdbserver -gdb-source: $(DL_DIR)/$(GDB_SOURCE) +gdbserver-clean: + $(MAKE) -C $(GDB_SERVER_DIR) clean + +gdbserver-dirclean: + rm -rf $(GDB_SERVER_DIR) + +###################################################################### +# +# gdb client +# +###################################################################### + +GDB_CLIENT_DIR:=$(TOOL_BUILD_DIR)/gdbclient-$(GDB_VERSION) + +$(GDB_CLIENT_DIR)/.configured: $(GDB_DIR)/.unpacked + mkdir -p $(GDB_CLIENT_DIR) + (cd $(GDB_CLIENT_DIR); \ + $(GDB_DIR)/configure \ + --prefix=$(STAGING_DIR) \ + --build=$(GNU_HOST_NAME) \ + --host=$(GNU_HOST_NAME) \ + --target=$(REAL_GNU_TARGET_NAME) \ + $(DISABLE_NLS) \ + --without-uiout --disable-gdbmi \ + --disable-tui --disable-gdbtk --without-x \ + --without-included-gettext \ + ); + touch $(GDB_CLIENT_DIR)/.configured + +$(GDB_CLIENT_DIR)/gdb/gdb: $(GDB_CLIENT_DIR)/.configured + $(MAKE) -C $(GDB_CLIENT_DIR) + strip $(GDB_CLIENT_DIR)/gdb/gdb + +$(TARGET_CROSS)gdb: $(GDB_CLIENT_DIR)/gdb/gdb + install -c $(GDB_CLIENT_DIR)/gdb/gdb $(TARGET_CROSS)gdb + ln -s ../../bin/$(OPTIMIZE_FOR_CPU)-linux-uclibc-gdb \ + $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/bin/gdb + +gdbclient: $(TARGET_CROSS)gdb + +gdbclient-clean: + $(MAKE) -C $(GDB_CLIENT_DIR) clean + +gdbclient-dirclean: + rm -rf $(GDB_CLIENT_DIR) -gdb-clean: - $(MAKE) -C $(GDB_DIR) clean -gdb-dirclean: - rm -rf $(GDB_DIR) diff --git a/make/gdbserver.mk b/make/gdbserver.mk deleted file mode 100644 index 1ab44a236..000000000 --- a/make/gdbserver.mk +++ /dev/null @@ -1,53 +0,0 @@ -############################################################# -# -# gdbserver -# -############################################################# - -#Use GDB_DIR/etc values from gdb.mk -#Build gdbserver in a dir outside of the main gdb tree -GDB_WDIR:=$(BUILD_DIR)/gdbserver - - -$(GDB_WDIR)/.configured: $(GDB_DIR)/.unpacked - mkdir -p $(GDB_WDIR) - (cd $(GDB_WDIR); rm -rf config.cache; \ - $(TARGET_CONFIGURE_OPTS) \ - $(GDB_DIR)/gdb/gdbserver/configure \ - --target=$(GNU_TARGET_NAME) \ - --host=$(GNU_TARGET_NAME) \ - --prefix=/usr \ - --exec-prefix=/usr \ - --bindir=/usr/bin \ - --sbindir=/usr/sbin \ - --libexecdir=/usr/lib \ - --sysconfdir=/etc \ - --datadir=/usr/share \ - --localstatedir=/var \ - --mandir=/usr/man \ - --infodir=/usr/info \ - --includedir=$(STAGING_DIR)/include \ - $(DISABLE_NLS) \ - --without-uiout --disable-gdbmi \ - --disable-tui --disable-gdbtk --without-x \ - --without-included-gettext \ - ); - touch $(GDB_WDIR)/.configured - -$(GDB_WDIR)/gdbserver: $(GDB_WDIR)/.configured - $(MAKE) CC=$(TARGET_CC) -C $(GDB_WDIR) - $(STRIP) $(GDB_WDIR)/gdbserver - -$(TARGET_DIR)/usr/bin/gdbserver: $(GDB_WDIR)/gdbserver - install -c $(GDB_WDIR)/gdbserver $(TARGET_DIR)/usr/bin/gdbserver - rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \ - $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc - -gdbserver: $(TARGET_DIR)/usr/bin/gdbserver - -gdbserver-clean: - $(MAKE) -C $(GDB_WDIR) clean - -gdbserver-dirclean: - rm -rf $(GDB_WDIR) - diff --git a/make/kernel-headers.mk b/make/kernel-headers.mk index c7b5a39e6..921b08cf9 100644 --- a/make/kernel-headers.mk +++ b/make/kernel-headers.mk @@ -7,28 +7,44 @@ # ############################################################# ifneq ($(filter $(TARGETS),kernel-headers),) +DEFAULT_KERNEL_HEADERS:=$(strip $(DEFAULT_KERNEL_HEADERS)) -VERSION=2 -PATCHLEVEL=4 -SUBLEVEL=25 +LINUX_SITE:=127.0.0.1 +LINUX_SOURCE:=unspecified-kernel-headers + +ifeq ("$(strip $(DEFAULT_KERNEL_HEADERS))","2.4.25") +VERSION:=2 +PATCHLEVEL:=4 +SUBLEVEL:=25 LINUX_SITE:=http://www.uclibc.org/downloads/toolchain LINUX_SOURCE:=kernel-headers-2.4.25.tar.bz2 LINUX_UNPACK_DIR:=$(TOOL_BUILD_DIR)/linux +endif +ifeq ("$(strip $(DEFAULT_KERNEL_HEADERS))","2.6.7") +VERSION:=2 +PATCHLEVEL:=6 +SUBLEVEL:=7 +LINUX_SITE:=http://ep09.pld-linux.org/~mmazur/linux-libc-headers/ +LINUX_SOURCE:=linux-libc-headers-2.6.7.0.tar.bz2 +LINUX_UNPACK_DIR:=$(TOOL_BUILD_DIR)/linux-libc-headers-2.6.7.0 +endif -# Uncomment this for 2.6.x kernel header files -#VERSION=2 -#PATCHLEVEL=6 -#SUBLEVEL=8 -#LINUX_SITE:=http://ep09.pld-linux.org/~mmazur/linux-libc-headers/ -#LINUX_SOURCE:=linux-libc-headers-2.6.8.0.tar.bz2 -#LINUX_UNPACK_DIR:=$(TOOL_BUILD_DIR)/linux-libc-headers-2.6.8.0 - +ifeq ("$(strip $(DEFAULT_KERNEL_HEADERS))","2.6.8") +VERSION:=2 +PATCHLEVEL:=6 +SUBLEVEL:=8 +LINUX_SITE:=http://ep09.pld-linux.org/~mmazur/linux-libc-headers/ +LINUX_SOURCE:=linux-libc-headers-2.6.8.0.tar.bz2 +LINUX_UNPACK_DIR:=$(TOOL_BUILD_DIR)/linux-libc-headers-2.6.8.0 +endif +LINUX_VERSION:=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL) LINUX_DIR:=$(TOOL_BUILD_DIR)/linux $(DL_DIR)/$(LINUX_SOURCE): + mkdir -p $(DL_DIR) $(WGET) -P $(DL_DIR) $(LINUX_SITE)/$(LINUX_SOURCE) $(LINUX_DIR)/.unpacked: $(DL_DIR)/$(LINUX_SOURCE) @@ -39,7 +55,11 @@ ifneq ($(LINUX_UNPACK_DIR),$(LINUX_DIR)) endif touch $(LINUX_DIR)/.unpacked -$(LINUX_DIR)/.configured: $(LINUX_DIR)/.unpacked +$(LINUX_DIR)/.patched: $(LINUX_DIR)/.unpacked + $(SOURCE_DIR)/patch-kernel.sh $(LINUX_DIR) $(SOURCE_DIR) linux-libc-headers-$(LINUX_VERSION)-*.patch + touch $(LINUX_DIR)/.patched + +$(LINUX_DIR)/.configured: $(LINUX_DIR)/.patched rm -f $(LINUX_DIR)/include/asm @if [ ! -f $(LINUX_DIR)/Makefile ] ; then \ echo -e "VERSION = $(VERSION)\nPATCHLEVEL = $(PATCHLEVEL)\n" > \ diff --git a/make/libtool.mk b/make/libtool.mk index fbe1fb663..fbee18e74 100644 --- a/make/libtool.mk +++ b/make/libtool.mk @@ -3,10 +3,10 @@ # libtool # ############################################################# -LIBTOOL_SOURCE:=libtool_1.4.3.orig.tar.gz -LIBTOOL_SITE:=http://ftp.debian.org/debian/pool/main/libt/libtool +LIBTOOL_SOURCE:=libtool-1.5.8.tar.gz +LIBTOOL_SITE:=ftp://ftp.gnu.org/gnu/libtool LIBTOOL_CAT:=zcat -LIBTOOL_DIR:=$(BUILD_DIR)/libtool-1.4.3 +LIBTOOL_DIR:=$(BUILD_DIR)/libtool-1.5.8 LIBTOOL_BINARY:=libtool LIBTOOL_TARGET_BINARY:=usr/bin/libtool diff --git a/make/linux.mk b/make/linux.mk index bb8f96b19..844429d24 100644 --- a/make/linux.mk +++ b/make/linux.mk @@ -45,11 +45,13 @@ LINUX_SOURCE_DIR=$(LINUX_DIR) $(DL_DIR)/$(LINUX_SOURCE): - $(WGET) -P $(DL_DIR) $(LINUX_SITE)/$(LINUX_SOURCE) + mkdir $(DL_DIR) + $(WGET) -P $(DL_DIR) $(LINUX_SITE)/$(LINUX_SOURCE) $(LINUX_DIR)/.unpacked: $(DL_DIR)/$(LINUX_SOURCE) - mkdir -p $(LINUX_DIR) $(TOOL_BUILD_DIR) - rm -rf $(LINUX_DIR) + mkdir $(TOOL_BUILD_DIR) + #mkdir -p $(LINUX_DIR) + #rm -rf $(LINUX_DIR) bzcat $(DL_DIR)/$(LINUX_SOURCE) | tar -C $(BUILD_DIR) -xvf - ifneq ($(DOWNLOAD_LINUX_VERSION),$(LINUX_VERSION)) # Rename the dir from the downloaded version to the AFTER patch version diff --git a/make/ltrace.mk b/make/ltrace.mk index 146bd4049..2170e3306 100644 --- a/make/ltrace.mk +++ b/make/ltrace.mk @@ -3,9 +3,9 @@ # ltrace # ############################################################# -LTRACE_SOURCE=ltrace_0.3.32.tar.gz +LTRACE_SOURCE=ltrace_0.3.35.tar.gz LTRACE_SITE=http://ftp.debian.org/debian/pool/main/l/ltrace -LTRACE_DIR=$(BUILD_DIR)/ltrace-0.3.32 +LTRACE_DIR=$(BUILD_DIR)/ltrace-0.3.35 LTRACE_BINARY=ltrace LTRACE_TARGET_BINARY=usr/bin/ltrace @@ -29,7 +29,7 @@ $(LTRACE_DIR)/.configured: $(LTRACE_DIR)/.source touch $(LTRACE_DIR)/.configured; $(LTRACE_DIR)/$(LTRACE_BINARY): $(LTRACE_DIR)/.configured - $(MAKE) CC=$(TARGET_CC) -C $(LTRACE_DIR) + $(MAKE) CC=$(TARGET_CC) LD=$(TARGET_CROSS)ld -C $(LTRACE_DIR) $(TARGET_DIR)/$(LTRACE_TARGET_BINARY): $(LTRACE_DIR)/$(LTRACE_BINARY) $(MAKE) DESTDIR=$(TARGET_DIR) -C $(LTRACE_DIR) install diff --git a/make/ncurses.mk b/make/ncurses.mk index 1768c1e4e..f57868e54 100644 --- a/make/ncurses.mk +++ b/make/ncurses.mk @@ -5,7 +5,7 @@ # ############################################################# # Copyright (C) 2002 by Ken Restivo <ken@246gt.com> -# $Id: ncurses.mk,v 1.33 2004/07/28 19:26:04 andersen Exp $ +# $Id: ncurses.mk,v 1.34 2004/09/03 00:49:33 mjn3 Exp $ # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU Library General Public License as @@ -35,6 +35,7 @@ $(NCURSES_DIR)/.dist: $(DL_DIR)/$(NCURSES_SOURCE) #use the local tic and not whatever the build system was going to find. $(SED) 's~\$$srcdir/shlib tic\$$suffix~/usr/bin/tic~' \ $(NCURSES_DIR)/misc/run_tic.in + $(SOURCE_DIR)/patch-kernel.sh $(NCURSES_DIR) $(SOURCE_DIR) ncurses-*.patch touch $(NCURSES_DIR)/.dist $(NCURSES_DIR)/.configured: $(NCURSES_DIR)/.dist diff --git a/make/sed.mk b/make/sed.mk index 2476c59aa..5d2f0f8b9 100644 --- a/make/sed.mk +++ b/make/sed.mk @@ -18,7 +18,8 @@ SED:=$(STAGING_DIR)/bin/sed -i -e HOST_SED_TARGET=$(shell ./sources/sedcheck.sh) $(DL_DIR)/$(SED_SOURCE): - $(WGET) -P $(DL_DIR) $(SED_SITE)/$(SED_SOURCE) + mkdir -p $(DL_DIR) + $(WGET) -P $(DL_DIR) $(SED_SITE)/$(SED_SOURCE) sed-source: $(DL_DIR)/$(SED_SOURCE) @@ -30,7 +31,6 @@ sed-source: $(DL_DIR)/$(SED_SOURCE) ############################################################# $(SED_DIR1)/.unpacked: $(DL_DIR)/$(SED_SOURCE) mkdir -p $(TOOL_BUILD_DIR) - mkdir -p $(DL_DIR) mkdir -p $(STAGING_DIR)/bin; $(SED_CAT) $(DL_DIR)/$(SED_SOURCE) | tar -C $(TOOL_BUILD_DIR) -xvf - touch $(SED_DIR1)/.unpacked diff --git a/make/strace.mk b/make/strace.mk index 546584d80..f74897465 100644 --- a/make/strace.mk +++ b/make/strace.mk @@ -3,10 +3,12 @@ # strace # ############################################################# -STRACE_SOURCE:=strace-4.5.3.tar.bz2 +#STRACE_SOURCE:=strace-4.5.3.tar.bz2 +STRACE_SOURCE:=strace-4.5.6.tar.bz2 STRACE_SITE:=http://aleron.dl.sourceforge.net/sourceforge/strace STRACE_CAT:=bzcat -STRACE_DIR:=$(BUILD_DIR)/strace-4.5.3 +#STRACE_DIR:=$(BUILD_DIR)/strace-4.5.3 +STRACE_DIR:=$(BUILD_DIR)/strace-4.5.6 $(DL_DIR)/$(STRACE_SOURCE): diff --git a/make/uclibc.mk b/make/uclibc.mk index e0de21a7e..7a837e427 100644 --- a/make/uclibc.mk +++ b/make/uclibc.mk @@ -3,14 +3,17 @@ # uClibc (the C library) # ############################################################# -ifeq ($(USE_UCLIBC_SNAPSHOT),true) + +ifneq ($(strip $(USE_UCLIBC_SNAPSHOT)),) # Be aware that this changes daily.... -UCLIBC_DIR=$(BUILD_DIR)/uClibc -UCLIBC_SOURCE=uClibc-snapshot.tar.bz2 +UCLIBC_DIR:=$(TOOL_BUILD_DIR)/uClibc +UCLIBC_SOURCE:=uClibc-$(strip $(USE_UCLIBC_SNAPSHOT)).tar.bz2 UCLIBC_SITE:=http://www.uclibc.org/downloads/snapshots else -UCLIBC_DIR:=$(BUILD_DIR)/uClibc-0.9.26 -UCLIBC_SOURCE:=uClibc-0.9.26.tar.bz2 +# Note: 0.9.26 has known problems. So best use a snapshot until .27 is out. +# Anticipate the change. +UCLIBC_DIR:=$(TOOL_BUILD_DIR)/uClibc-0.9.27 +UCLIBC_SOURCE:=uClibc-0.9.27.tar.bz2 UCLIBC_SITE:=http://www.uclibc.org/downloads endif @@ -30,21 +33,12 @@ UCLIBC_TARGET_ARCH:=$(shell echo $(ARCH) | sed -e s'/-.*//' \ $(DL_DIR)/$(UCLIBC_SOURCE): + mkdir -p $(DL_DIR) $(WGET) -P $(DL_DIR) $(UCLIBC_SITE)/$(UCLIBC_SOURCE) $(UCLIBC_DIR)/.unpacked: $(DL_DIR)/$(UCLIBC_SOURCE) -ifeq ($(SOFT_FLOAT),true) - # Make sure we have a soft float specs file for this arch - if [ ! -f $(SOURCE_DIR)/specs-$(ARCH)-soft-float ] ; then \ - echo soft float configured but no specs file for this arch ; \ - /bin/false ; \ - fi; -endif - bzcat $(DL_DIR)/$(UCLIBC_SOURCE) | tar -C $(BUILD_DIR) -xvf - - #(cd $(BUILD_DIR) ; ln -s $(DL_DIR)/uClibc) - #-mkdir $(UCLIBC_DIR) - #(cd $(DL_DIR)/uClibc && tar cf - .) | (cd $(UCLIBC_DIR) && tar xvfp - ) - $(SOURCE_DIR)/patch-kernel.sh $(UCLIBC_DIR) $(SOURCE_DIR) uClibc-*.patch + mkdir -p $(TOOL_BUILD_DIR) + bzcat $(DL_DIR)/$(UCLIBC_SOURCE) | tar -C $(TOOL_BUILD_DIR) -xvf - touch $(UCLIBC_DIR)/.unpacked $(UCLIBC_DIR)/.configured: $(UCLIBC_DIR)/.unpacked $(LINUX_DIR)/.configured @@ -77,38 +71,32 @@ endif mkdir -p $(TOOL_BUILD_DIR)/uClibc_dev/usr/include mkdir -p $(TOOL_BUILD_DIR)/uClibc_dev/usr/lib mkdir -p $(TOOL_BUILD_DIR)/uClibc_dev/lib - -$(MAKE) -C $(UCLIBC_DIR) \ - PREFIX=$(TOOL_BUILD_DIR)/uClibc_dev/ \ - DEVEL_PREFIX=/usr/ \ - RUNTIME_PREFIX=$(TOOL_BUILD_DIR)/uClibc_dev/ \ - HOSTCC="$(HOSTCC)" \ - oldconfig; - -$(MAKE) -C $(UCLIBC_DIR) \ + $(MAKE) -C $(UCLIBC_DIR) \ PREFIX=$(TOOL_BUILD_DIR)/uClibc_dev/ \ DEVEL_PREFIX=/usr/ \ RUNTIME_PREFIX=$(TOOL_BUILD_DIR)/uClibc_dev/ \ HOSTCC="$(HOSTCC)" \ - headers pregen install_dev; + pregen install_dev; touch $(UCLIBC_DIR)/.configured $(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.configured $(LIBFLOAT_TARGET) $(MAKE) -C $(UCLIBC_DIR) \ PREFIX= \ - DEVEL_PREFIX=$(REAL_GNU_TARGET_NAME)/ \ + DEVEL_PREFIX=/ \ RUNTIME_PREFIX=/ \ HOSTCC="$(HOSTCC)" \ all -$(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a +$(STAGING_DIR)/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a $(MAKE) -C $(UCLIBC_DIR) \ PREFIX=$(STAGING_DIR)/ \ - DEVEL_PREFIX=$(REAL_GNU_TARGET_NAME)/ \ - RUNTIME_PREFIX=$(REAL_GNU_TARGET_NAME)/ \ + DEVEL_PREFIX=/ \ + RUNTIME_PREFIX=/ \ install_runtime $(MAKE) -C $(UCLIBC_DIR) \ PREFIX=$(STAGING_DIR)/ \ - DEVEL_PREFIX=$(REAL_GNU_TARGET_NAME)/ \ - RUNTIME_PREFIX=$(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/ \ + DEVEL_PREFIX=/ \ + RUNTIME_PREFIX=/ \ install_dev $(MAKE) -C $(UCLIBC_DIR) \ PREFIX=$(STAGING_DIR) \ @@ -118,7 +106,7 @@ $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a $(MAKE) -C $(UCLIBC_DIR)/utils clean ifneq ($(TARGET_DIR),) -$(TARGET_DIR)/lib/libc.so.0: $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/lib/libc.a +$(TARGET_DIR)/lib/libc.so.0: $(STAGING_DIR)/lib/libc.a $(MAKE) -C $(UCLIBC_DIR) \ PREFIX=$(TARGET_DIR) \ DEVEL_PREFIX=/usr/ \ @@ -134,7 +122,7 @@ endif uclibc-configured: $(UCLIBC_DIR)/.configured -uclibc: $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-gcc $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/lib/libc.a \ +uclibc: $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-gcc $(STAGING_DIR)/lib/libc.a \ $(UCLIBC_TARGETS) uclibc-source: $(DL_DIR)/$(UCLIBC_SOURCE) @@ -165,11 +153,7 @@ $(TARGET_DIR)/usr/lib/libc.a: $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/lib/libc.a RUNTIME_PREFIX=/ \ install_dev -ifeq ($(GCC_2_95_TOOLCHAIN),true) -uclibc_target: gcc2_95 uclibc $(TARGET_DIR)/usr/lib/libc.a -else -uclibc_target: gcc3_3 uclibc $(TARGET_DIR)/usr/lib/libc.a -endif +uclibc_target: gcc uclibc $(TARGET_DIR)/usr/lib/libc.a uclibc_target-clean: rm -f $(TARGET_DIR)/include diff --git a/make/util-linux.mk b/make/util-linux.mk index c29a8403b..2a77d18f4 100644 --- a/make/util-linux.mk +++ b/make/util-linux.mk @@ -5,7 +5,7 @@ ############################################################# UTIL-LINUX_SOURCE:=util-linux_2.12.orig.tar.gz UTIL-LINUX_SITE:=http://ftp.debian.org/debian/pool/main/u/util-linux/ -UTIL-LINUX_PATCH:=util-linux_2.12-6.diff.gz +UTIL-LINUX_PATCH:=util-linux_2.12-7.diff.gz UTIL-LINUX_CAT:=zcat UTIL-LINUX_DIR:=$(BUILD_DIR)/util-linux-2.12 UTIL-LINUX_BINARY:=$(UTIL-LINUX_DIR)/misc-utils/mcookie |