move target/default/target_skeleton into package/base-files, put all the default files in ipkg packages, cleanup some junk in toolchain/, toolchain/ no longer changes build_mipsel/root

SVN-Revision: 1494
master
Felix Fietkau 20 years ago
parent a9a51421ce
commit 8cf55878a8
  1. 7
      openwrt/Makefile
  2. 9
      openwrt/package/Makefile
  3. 64
      openwrt/package/base-files/Makefile
  4. 0
      openwrt/package/base-files/default/bin/firstboot
  5. 0
      openwrt/package/base-files/default/bin/ipkg
  6. 0
      openwrt/package/base-files/default/bin/login
  7. 0
      openwrt/package/base-files/default/etc/banner
  8. 0
      openwrt/package/base-files/default/etc/dnsmasq.conf
  9. 0
      openwrt/package/base-files/default/etc/firewall.user
  10. 0
      openwrt/package/base-files/default/etc/functions.sh
  11. 0
      openwrt/package/base-files/default/etc/group
  12. 0
      openwrt/package/base-files/default/etc/hosts
  13. 0
      openwrt/package/base-files/default/etc/init.d/S10boot
  14. 0
      openwrt/package/base-files/default/etc/init.d/S40network
  15. 0
      openwrt/package/base-files/default/etc/init.d/S45firewall
  16. 0
      openwrt/package/base-files/default/etc/init.d/S50dnsmasq
  17. 0
      openwrt/package/base-files/default/etc/init.d/S50httpd
  18. 0
      openwrt/package/base-files/default/etc/init.d/S50telnet
  19. 0
      openwrt/package/base-files/default/etc/init.d/S99done
  20. 0
      openwrt/package/base-files/default/etc/init.d/rcS
  21. 0
      openwrt/package/base-files/default/etc/inittab
  22. 0
      openwrt/package/base-files/default/etc/ipkg.conf
  23. 0
      openwrt/package/base-files/default/etc/modules
  24. 0
      openwrt/package/base-files/default/etc/nvram.overrides
  25. 0
      openwrt/package/base-files/default/etc/passwd
  26. 0
      openwrt/package/base-files/default/etc/preinit
  27. 0
      openwrt/package/base-files/default/etc/profile
  28. 0
      openwrt/package/base-files/default/etc/protocols
  29. 0
      openwrt/package/base-files/default/etc/shells
  30. 0
      openwrt/package/base-files/default/etc/sysctl.conf
  31. 0
      openwrt/package/base-files/default/rom/note
  32. 0
      openwrt/package/base-files/default/sbin/backup
  33. 0
      openwrt/package/base-files/default/sbin/halt
  34. 0
      openwrt/package/base-files/default/sbin/hotplug
  35. 0
      openwrt/package/base-files/default/sbin/ifdown
  36. 0
      openwrt/package/base-files/default/sbin/ifup
  37. 0
      openwrt/package/base-files/default/sbin/mount_root
  38. 0
      openwrt/package/base-files/default/sbin/restore
  39. 0
      openwrt/package/base-files/default/usr/share/udhcpc/default.script
  40. 0
      openwrt/package/base-files/default/www/index.html
  41. 2
      openwrt/scripts/download.pl
  42. 29
      openwrt/target/Makefile
  43. 1
      openwrt/toolchain/Config.in
  44. 1
      openwrt/toolchain/Config.in.devel
  45. 22
      openwrt/toolchain/Makefile
  46. 21
      openwrt/toolchain/binutils/binutils.mk
  47. 11
      openwrt/toolchain/ccache/Config.in
  48. 8
      openwrt/toolchain/ccache/Config.in.2
  49. 6
      openwrt/toolchain/ccache/Makefile.in
  50. 151
      openwrt/toolchain/ccache/ccache.mk
  51. 51
      openwrt/toolchain/gcc/gcc-uclibc-3.x.mk
  52. 2
      openwrt/toolchain/uClibc/Makefile
  53. 49
      openwrt/toolchain/uClibc/uclibc.mk

@ -77,9 +77,9 @@ package_install: package_compile toolchain
# In this section, we need .config # In this section, we need .config
include .config.cmd include .config.cmd
world: $(DL_DIR) $(BUILD_DIR) configtest target_prepare $(TARGET_DIR) toolchain_install package_install target_install package_index world: $(DL_DIR) $(BUILD_DIR) configtest toolchain_install package_install target_install package_index
.PHONY: all world clean dirclean distclean image_clean target_clean source target_prepare target_install toolchain_install package_install configtest .PHONY: all world clean dirclean distclean image_clean target_clean source target_install toolchain_install package_install configtest
configtest: configtest:
-cp .config .config.test -cp .config .config.test
@ -90,9 +90,6 @@ package_index:
$(STAGING_DIR)/usr/bin/ipkg-make-index . > Packages \ $(STAGING_DIR)/usr/bin/ipkg-make-index . > Packages \
) )
target_prepare:
$(MAKE) -C target prepare
target_compile: target_compile:
$(MAKE) -C target compile $(MAKE) -C target compile

@ -146,11 +146,16 @@ DEV_LIBS:=tcp_wrappers glib ncurses openssl pcre popt zlib libnet libpcap mysql
DEV_LIBS_COMPILE:=$(patsubst %,%-compile,$(DEV_LIBS)) DEV_LIBS_COMPILE:=$(patsubst %,%-compile,$(DEV_LIBS))
SDK_DEFAULT_PACKAGES:=busybox dnsmasq iptables wireless-tools dropbear bridge ipkg ppp SDK_DEFAULT_PACKAGES:=busybox dnsmasq iptables wireless-tools dropbear bridge ipkg ppp
SDK_DEFAULT_COMPILE:=$(patsubst %,%-compile,$(SDK_DEFAULT_PACKAGES)) SDK_DEFAULT_COMPILE:=$(patsubst %,%-compile,$(SDK_DEFAULT_PACKAGES))
COMPILE_PACKAGES:=$(patsubst %,%-compile,$(package-y) $(package-m))
INSTALL_PACKAGES:=$(patsubst %,%-install,$(package-y))
all: compile install all: compile install
clean: $(patsubst %,%-clean,$(package-) $(package-y) $(package-m)) clean: $(patsubst %,%-clean,$(package-) $(package-y) $(package-m))
compile: $(patsubst %,%-compile,$(package-y) $(package-m)) compile: $(COMPILE_PACKAGES)
install: $(patsubst %,%-install,$(package-y)) install: base-files-install $(INSTALL_PACKAGES)
$(COMPILE_PACKAGES): base-files-install
$(INSTALL_PACKAGES): base-files-install
amwall-compile: libamsel-compile amwall-compile: libamsel-compile
arpwatch-compile: libpcap-compile arpwatch-compile: libpcap-compile

@ -0,0 +1,64 @@
# $Id$
include $(TOPDIR)/rules.mk
PKG_NAME:=base-files
PKG_RELEASE:=1
IDIR_BASE:=$(BUILD_DIR)/base-files
IPKG_BASE:=$(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_RELEASE)_$(ARCH).ipk
LIBC_VERSION:=${shell cat $(STAGING_DIR)/uclibc_version}
IDIR_LIBC:=$(BUILD_DIR)/uclibc
IPKG_LIBC:=$(PACKAGE_DIR)/uclibc_$(LIBC_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk
GCC_VERSION:=${shell cat $(STAGING_DIR)/gcc_version}
IDIR_GCC:=$(BUILD_DIR)/libgcc
IPKG_GCC:=$(PACKAGE_DIR)/libgcc_$(GCC_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk
PACKAGES:=$(IPKG_BASE) $(IPKG_LIBC) $(IPKG_GCC)
$(PACKAGE_DIR):
mkdir -p $(PACKAGE_DIR)
$(IPKG_BASE): $(PACKAGE_DIR)
$(SCRIPT_DIR)/make-ipkg-dir.sh $(IDIR_BASE) ipkg/$(PKG_NAME).control $(PKG_RELEASE) $(ARCH)
cp -a ./default/* $(IDIR_BASE)
mkdir -p $(IDIR_BASE)/jffs
mkdir -p $(IDIR_BASE)/dev
mkdir -p $(IDIR_BASE)/proc
mkdir -p $(IDIR_BASE)/tmp
mkdir -p $(IDIR_BASE)/lib
mkdir -p $(IDIR_BASE)/usr/lib
mkdir -p $(IDIR_BASE)/usr/bin
ln -sf /tmp/resolv.conf $(IDIR_BASE)/etc/resolv.conf
rm -rf $(IDIR_BASE)/var
ln -sf /tmp $(IDIR_BASE)/var
-find $(IDIR_BASE) -type d -name CVS | xargs rm -rf
-find $(IDIR_BASE) -type d -name .svn | xargs rm -rf
mkdir -p $(IDIR_BASE)/etc
-grep \^BR2_SYSCONF $(TOPDIR)/.config > $(IDIR_BASE)/etc/sysconf
$(IPKG_BUILD) $(IDIR_BASE) $(PACKAGE_DIR)
$(IPKG_LIBC): $(PACKAGE_DIR)
$(SCRIPT_DIR)/make-ipkg-dir.sh $(IDIR_LIBC) ipkg/uclibc.control $(LIBC_VERSION)-$(PKG_RELEASE) $(ARCH)
mkdir -p $(IDIR_LIBC)/lib
cp -a $(STAGING_DIR)/lib/ld-uClibc*.so* $(IDIR_LIBC)/lib/
for file in c crypt dl m nsl resolv rt uClibc util; do \
cp -a $(STAGING_DIR)/lib/lib$$file*.so* $(IDIR_LIBC)/lib/; \
done
-$(STRIP) $(IDIR_LIBC)/lib/*
$(IPKG_BUILD) $(IDIR_LIBC) $(PACKAGE_DIR)
$(IPKG_GCC): $(PACKAGE_DIR)
$(SCRIPT_DIR)/make-ipkg-dir.sh $(IDIR_GCC) ipkg/libgcc.control $(GCC_VERSION)-$(PKG_RELEASE) $(ARCH)
mkdir -p $(IDIR_GCC)/lib
cp -a $(STAGING_DIR)/lib/libgcc*.so* $(IDIR_GCC)/lib/
-$(STRIP) $(IDIR_GCC)/lib/*
$(IPKG_BUILD) $(IDIR_GCC) $(PACKAGE_DIR)
prepare:
compile: $(PACKAGES)
install: compile
mkdir -p $(TARGET_DIR)
$(IPKG) install $(PACKAGES)

@ -57,7 +57,7 @@ sub cleanup
foreach my $mirror (@ARGV) { foreach my $mirror (@ARGV) {
if ($mirror =~ /^\@SF\/(.+)$/) { if ($mirror =~ /^\@SF\/(.+)$/) {
my $sfpath = $1; my $sfpath = $1;
open SF, "wget -t1 -q -O- 'http://prdownloads.sf.net/$sfpath/$filename' |"; open SF, "wget -t1 -q -O- 'http://prdownloads.sourceforge.net/$sfpath/$filename' |";
while (<SF>) { while (<SF>) {
/RADIO NAME=use_default VALUE=(\w+) OnClick="form\.submit\(\)">/ and do { /RADIO NAME=use_default VALUE=(\w+) OnClick="form\.submit\(\)">/ and do {
push @mirrors, "http://$1.dl.sourceforge.net/sourceforge/$sfpath"; push @mirrors, "http://$1.dl.sourceforge.net/sourceforge/$sfpath";

@ -5,38 +5,13 @@ TARGET_SKEL_DIR=default/target_skeleton
all: install all: install
$(TARGET_DIR):
mkdir -p $(TARGET_DIR)
if [ -f "$(TARGET_SKELETON)" ] ; then \
zcat $(TARGET_SKELETON) | tar -C $(BUILD_DIR) -xf -; \
fi;
if [ -d "$(TARGET_SKEL_DIR)" ] ; then \
cp -a $(TARGET_SKEL_DIR)/* $(TARGET_DIR)/; \
fi;
mkdir -p $(TARGET_DIR)/jffs
mkdir -p $(TARGET_DIR)/dev
mkdir -p $(TARGET_DIR)/proc
mkdir -p $(TARGET_DIR)/tmp
mkdir -p $(TARGET_DIR)/lib
mkdir -p $(TARGET_DIR)/usr/lib
mkdir -p $(TARGET_DIR)/usr/bin
ln -sf /tmp/resolv.conf $(TARGET_DIR)/etc/resolv.conf
rm -rf $(TARGET_DIR)/var
ln -sf /tmp $(TARGET_DIR)/var
-find $(TARGET_DIR) -type d -name CVS | xargs rm -rf
-find $(TARGET_DIR) -type d -name .svn | xargs rm -rf
$(BIN_DIR): $(BIN_DIR):
mkdir -p $(BIN_DIR) mkdir -p $(BIN_DIR)
$(TARGET_DIR)/etc/sysconf:
mkdir -p $(TARGET_DIR)/etc
-grep \^BR2_SYSCONF $(TOPDIR)/.config > $(TARGET_DIR)/etc/sysconf
linux-compile: utils-install lzma-install linux-compile: utils-install lzma-install
linux-install: $(TARGET_DIR)/etc/sysconf $(BIN_DIR) linux-install: $(BIN_DIR)
prepare: $(TARGET_DIR) prepare:
compile: linux-compile compile: linux-compile
install: image_clean linux-install install: image_clean linux-install
clean: linux-clean utils-clean lzma-clean image_clean clean: linux-clean utils-clean lzma-clean image_clean

@ -3,7 +3,6 @@
source "toolchain/uClibc/Config.in" source "toolchain/uClibc/Config.in"
source "toolchain/binutils/Config.in" source "toolchain/binutils/Config.in"
source "toolchain/gcc/Config.in" source "toolchain/gcc/Config.in"
source "toolchain/ccache/Config.in"
if CONFIG_DEVEL if CONFIG_DEVEL
comment "Common Toolchain Options" comment "Common Toolchain Options"

@ -5,7 +5,6 @@ menu "Toolchain Options"
source "toolchain/uClibc/Config.in" source "toolchain/uClibc/Config.in"
source "toolchain/binutils/Config.in" source "toolchain/binutils/Config.in"
source "toolchain/gcc/Config.in" source "toolchain/gcc/Config.in"
source "toolchain/ccache/Config.in"
source "toolchain/gdb/Config.in" source "toolchain/gdb/Config.in"

@ -15,8 +15,10 @@ gcc-prepare: binutils-install
uClibc-compile: gcc-prepare uClibc-compile: gcc-prepare
gcc-compile: uClibc-install gcc-compile: uClibc-install
$(STAMP_DIR): TOOLCHAIN_STAMP_DIR:=$(STAGING_DIR)/stampfiles
mkdir -p $(STAMP_DIR)
$(TOOLCHAIN_STAMP_DIR):
mkdir -p $(TOOLCHAIN_STAMP_DIR)
$(STAGING_DIR): $(STAGING_DIR):
@mkdir -p $(STAGING_DIR)/lib @mkdir -p $(STAGING_DIR)/lib
@ -27,19 +29,19 @@ $(STAGING_DIR):
$(TOOL_BUILD_DIR): $(TOOL_BUILD_DIR):
@mkdir -p $(TOOL_BUILD_DIR) @mkdir -p $(TOOL_BUILD_DIR)
%-prepare: $(STAMP_DIR) $(STAGING_DIR) $(TOOL_BUILD_DIR) %-prepare: $(TOOLCHAIN_STAMP_DIR) $(STAGING_DIR) $(TOOL_BUILD_DIR)
@[ -f $(STAMP_DIR)/.toolchain_$@ ] || $(MAKE) -C $(patsubst %-prepare,%,$@) prepare @[ -f $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@ ] || $(MAKE) -C $(patsubst %-prepare,%,$@) prepare
@touch $(STAMP_DIR)/.toolchain_$@ @touch $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@
%-compile: %-prepare %-compile: %-prepare
@[ -f $(STAMP_DIR)/.toolchain_$@ ] || $(MAKE) -C $(patsubst %-compile,%,$@) compile @[ -f $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@ ] || $(MAKE) -C $(patsubst %-compile,%,$@) compile
@touch $(STAMP_DIR)/.toolchain_$@ @touch $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@
%-install: %-compile %-install: %-compile
@[ -f $(STAMP_DIR)/.toolchain_$@ ] || $(MAKE) -C $(patsubst %-install,%,$@) install @[ -f $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@ ] || $(MAKE) -C $(patsubst %-install,%,$@) install
@touch $(STAMP_DIR)/.toolchain_$@ @touch $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@
%-clean: %-clean:
@$(MAKE) -C $(patsubst %-clean,%,$@) clean @$(MAKE) -C $(patsubst %-clean,%,$@) clean
@rm -f $(STAMP_DIR)/.toolchain_$(patsubst %-clean,%,$@)-* @rm -f $(TOOLCHAIN_STAMP_DIR)/.toolchain_$(patsubst %-clean,%,$@)-*

@ -133,24 +133,3 @@ $(BINUTILS_DIR2)/binutils/objdump: $(BINUTILS_DIR2)/.configured
PATH=$(TARGET_PATH) \ PATH=$(TARGET_PATH) \
$(MAKE) -C $(BINUTILS_DIR2) all $(MAKE) -C $(BINUTILS_DIR2) all
$(TARGET_DIR)/usr/bin/ld: $(BINUTILS_DIR2)/binutils/objdump
PATH=$(TARGET_PATH) \
$(MAKE) DESTDIR=$(TARGET_DIR) \
tooldir=/usr build_tooldir=/usr \
-C $(BINUTILS_DIR2) install
#rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
# $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
-$(STRIP) $(TARGET_DIR)/usr/$(REAL_GNU_TARGET_NAME)/bin/* > /dev/null 2>&1
-$(STRIP) $(TARGET_DIR)/usr/bin/* > /dev/null 2>&1
binutils_target: $(GCC_DEPENDANCY) $(TARGET_DIR)/usr/bin/ld
binutils_target-clean:
(cd $(TARGET_DIR)/usr/bin; \
rm -f addr2line ar as gprof ld nm objcopy \
objdump ranlib readelf size strings strip)
rm -f $(TARGET_DIR)/bin/$(REAL_GNU_TARGET_NAME)*
-$(MAKE) -C $(BINUTILS_DIR2) clean
binutils_target-toolclean:
rm -rf $(BINUTILS_DIR2)

@ -1,11 +0,0 @@
#
if CONFIG_DEVEL
comment "Ccache Options"
endif
config BR2_CCACHE
bool "Enable ccache support?" if CONFIG_DEVEL
default y
help
Enable ccache support?

@ -1,8 +0,0 @@
#
config BR2_PACKAGE_CCACHE_TARGET
bool"ccache support in the target filesystem"
default n
help
Add help text here.

@ -1,6 +0,0 @@
ifeq ($(strip $(BR2_CCACHE)),y)
TARGETS+=ccache
endif
ifeq ($(strip $(BR2_PACKAGE_CCACHE_TARGET)),y)
TARGETS+=ccache_target
endif

@ -1,151 +0,0 @@
#############################################################
#
# build ccache to make recompiles faster on the build system
#
#############################################################
CCACHE_VER:=2.3
CCACHE_SITE:=http://ccache.samba.org/ftp/ccache
CCACHE_SOURCE:=ccache-$(CCACHE_VER).tar.gz
CCACHE_DIR1:=$(TOOL_BUILD_DIR)/ccache-$(CCACHE_VER)
CCACHE_DIR2:=$(BUILD_DIR)/ccache-$(CCACHE_VER)
CCACHE_CAT:=zcat
CCACHE_BINARY:=ccache
CCACHE_TARGET_BINARY:=usr/bin/ccache
$(DL_DIR)/$(CCACHE_SOURCE):
$(WGET) -P $(DL_DIR) $(CCACHE_SITE)/$(CCACHE_SOURCE)
$(CCACHE_DIR1)/.unpacked: $(DL_DIR)/$(CCACHE_SOURCE)
$(CCACHE_CAT) $(DL_DIR)/$(CCACHE_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) -
touch $(CCACHE_DIR1)/.unpacked
$(CCACHE_DIR1)/.patched: $(CCACHE_DIR1)/.unpacked
# 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
touch $(CCACHE_DIR1)/.patched
$(CCACHE_DIR1)/.configured: $(CCACHE_DIR1)/.patched
mkdir -p $(CCACHE_DIR1)
(cd $(CCACHE_DIR1); rm -rf config.cache; \
CC=$(HOSTCC) \
$(CCACHE_DIR1)/configure \
--target=$(GNU_HOST_NAME) \
--host=$(GNU_HOST_NAME) \
--build=$(GNU_HOST_NAME) \
--prefix=/usr \
);
touch $(CCACHE_DIR1)/.configured
$(CCACHE_DIR1)/$(CCACHE_BINARY): $(CCACHE_DIR1)/.configured
$(MAKE) CC=$(HOSTCC) -C $(CCACHE_DIR1)
$(STAGING_DIR)/$(CCACHE_TARGET_BINARY): $(CCACHE_DIR1)/$(CCACHE_BINARY)
mkdir -p $(STAGING_DIR)/usr/bin;
cp $(CCACHE_DIR1)/ccache $(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 $(REAL_GNU_TARGET_NAME)-gcc $(GNU_TARGET_NAME)-gcc; \
ln -fs $(REAL_GNU_TARGET_NAME)-gcc $(GNU_TARGET_NAME)-cc; \
ln -fs $(REAL_GNU_TARGET_NAME)-gcc $(REAL_GNU_TARGET_NAME)-cc);
[ -f $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-gcc ] && \
mv $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-gcc $(STAGING_DIR)/bin-ccache/
(cd $(STAGING_DIR)/bin; \
ln -fs ../usr/bin/ccache $(GNU_TARGET_NAME)-cc; \
ln -fs ../usr/bin/ccache $(GNU_TARGET_NAME)-gcc; \
ln -fs ../usr/bin/ccache $(REAL_GNU_TARGET_NAME)-cc; \
ln -fs ../usr/bin/ccache $(REAL_GNU_TARGET_NAME)-gcc);
ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
[ -f $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-c++ ] && \
mv $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-c++ $(STAGING_DIR)/bin-ccache/
[ -f $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-g++ ] && \
mv $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-g++ $(STAGING_DIR)/bin-ccache/
(cd $(STAGING_DIR)/bin; \
ln -fs ../usr/bin/ccache $(GNU_TARGET_NAME)-c++; \
ln -fs ../usr/bin/ccache $(GNU_TARGET_NAME)-g++;\
ln -fs ../usr/bin/ccache $(REAL_GNU_TARGET_NAME)-c++; \
ln -fs ../usr/bin/ccache $(REAL_GNU_TARGET_NAME)-g++);
(cd $(STAGING_DIR)/bin-ccache; \
ln -fs $(REAL_GNU_TARGET_NAME)-c++ $(GNU_TARGET_NAME)-c++; \
ln -fs $(REAL_GNU_TARGET_NAME)-g++ $(GNU_TARGET_NAME)-g++);
endif
ccache: gcc $(STAGING_DIR)/$(CCACHE_TARGET_BINARY)
ccache-clean:
$(MAKE) -C $(CCACHE_DIR1) uninstall
-$(MAKE) -C $(CCACHE_DIR1) clean
ccache-toolclean:
rm -rf $(CCACHE_DIR1)
#############################################################
#
# build ccache for use on the target system
#
#############################################################
$(CCACHE_DIR2)/.unpacked: $(DL_DIR)/$(CCACHE_SOURCE)
$(CCACHE_CAT) $(DL_DIR)/$(CCACHE_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
touch $(CCACHE_DIR2)/.unpacked
$(CCACHE_DIR2)/.patched: $(CCACHE_DIR2)/.unpacked
touch $(CCACHE_DIR2)/.patched
$(CCACHE_DIR2)/.configured: $(CCACHE_DIR2)/.patched
mkdir -p $(CCACHE_DIR2)
(cd $(CCACHE_DIR2); rm -rf config.cache; \
$(TARGET_CONFIGURE_OPTS) \
$(CCACHE_DIR2)/configure \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_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 \
$(DISABLE_NLS) \
);
touch $(CCACHE_DIR2)/.configured
$(CCACHE_DIR2)/$(CCACHE_BINARY): $(CCACHE_DIR2)/.configured
$(MAKE) -C $(CCACHE_DIR2) CFLAGS="$(TARGET_CFLAGS)"
$(TARGET_DIR)/$(CCACHE_TARGET_BINARY): $(CCACHE_DIR2)/$(CCACHE_BINARY)
$(MAKE) DESTDIR=$(TARGET_DIR) -C $(CCACHE_DIR2) install
rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
$(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)/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++;)
ccache_target: uclibc $(TARGET_DIR)/$(CCACHE_TARGET_BINARY)
ccache_target-sources: $(DL_DIR)/$(CCACHE_SOURCE)
ccache_target-clean:
rm -f $(TARGET_DIR)/$(CCACHE_TARGET_BINARY)
-$(MAKE) -C $(CCACHE_DIR2) clean
ccache_target-toolclean:
rm -rf $(CCACHE_DIR2)

@ -171,6 +171,7 @@ $(GCC_BUILD_DIR2)/.compiled: $(GCC_BUILD_DIR2)/.configured
gcc-install: $(GCC_BUILD_DIR2)/.compiled gcc-install: $(GCC_BUILD_DIR2)/.compiled
PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR2) install PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR2) install
echo $(GCC_VERSION) > $(STAGING_DIR)/gcc_version
# Strip the host binaries # Strip the host binaries
ifeq ($(GCC_STRIP_HOST_BINARIES),true) ifeq ($(GCC_STRIP_HOST_BINARIES),true)
-strip --strip-all -R .note -R .comment $(STAGING_DIR)/bin/* -strip --strip-all -R .note -R .comment $(STAGING_DIR)/bin/*
@ -203,9 +204,6 @@ ifeq ($(findstring 3.3.,$(GCC_VERSION)),3.3.)
cp ./$(GCC_VERSION)/specs-$(ARCH)-soft-float $(STAGING_DIR)/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs cp ./$(GCC_VERSION)/specs-$(ARCH)-soft-float $(STAGING_DIR)/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs
endif endif
endif endif
# These are in /lib, so...
cp -a $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/lib/libgcc_s* $(TARGET_DIR)/lib/
$(STRIP) $(TARGET_DIR)/lib/libgcc_s.so.1
gcc: gcc_initial $(LIBFLOAT_TARGET) \ gcc: gcc_initial $(LIBFLOAT_TARGET) \
gcc-install $(GCC_TARGETS) gcc-install $(GCC_TARGETS)
@ -264,50 +262,3 @@ else
GCC_LIB_SUBDIR=lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION) GCC_LIB_SUBDIR=lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)
endif endif
$(TARGET_DIR)/usr/bin/gcc: $(GCC_BUILD_DIR3)/.compiled
PATH=$(TARGET_PATH) \
$(MAKE) DESTDIR=$(TARGET_DIR) -C $(GCC_BUILD_DIR3) install
# Remove broken specs file (cross compile flag is set).
rm -f $(TARGET_DIR)/usr/$(GCC_LIB_SUBDIR)/specs
#
# Now for the ugly 3.3.x soft float hack...
#
ifeq ($(BR2_SOFT_FLOAT),y)
ifeq ($(findstring 3.3.,$(GCC_VERSION)),3.3.)
# Add a specs file that defaults to soft float mode.
cp ./$(GCC_VERSION)/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
endif
endif
#
# Ok... that's enough of that.
#
-(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/$(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)
#
rm -f $(TARGET_DIR)/usr/lib/*.la*
#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
@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
gcc_target: uclibc_target binutils_target $(TARGET_DIR)/usr/bin/gcc
gcc_target-clean:
rm -rf $(GCC_BUILD_DIR3)
rm -f $(TARGET_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)*
gcc_target-toolclean:
rm -rf $(GCC_BUILD_DIR3)

@ -6,6 +6,4 @@ source: uclibc-source
prepare: uclibc-configured prepare: uclibc-configured
compile: $(UCLIBC_DIR)/lib/libc.a compile: $(UCLIBC_DIR)/lib/libc.a
install: uclibc install: uclibc
rm -rf $(TARGET_DIR)/lib/libpthread*.so*
$(STRIP) $(TARGET_DIR)/lib/*.so
clean: uclibc-toolclean clean: uclibc-toolclean

@ -10,9 +10,11 @@ UCLIBC_DIR:=$(TOOL_BUILD_DIR)/uClibc
UCLIBC_SOURCE:=uClibc-$(strip $(subst ",, $(BR2_USE_UCLIBC_SNAPSHOT))).tar.bz2 UCLIBC_SOURCE:=uClibc-$(strip $(subst ",, $(BR2_USE_UCLIBC_SNAPSHOT))).tar.bz2
#" #"
UCLIBC_SITE:=http://www.uclibc.org/downloads/snapshots UCLIBC_SITE:=http://www.uclibc.org/downloads/snapshots
UCLIBC_VER:=PKG_VERSION:=0.${shell date +"%G%m%d"}
else else
UCLIBC_DIR:=$(TOOL_BUILD_DIR)/uClibc-0.9.27 UCLIBC_VER:=0.9.27
UCLIBC_SOURCE:=uClibc-0.9.27.tar.bz2 UCLIBC_DIR:=$(TOOL_BUILD_DIR)/uClibc-$(UCLIBC_VER)
UCLIBC_SOURCE:=uClibc-$(UCLIBC_VER).tar.bz2
UCLIBC_SITE:=http://www.uclibc.org/downloads UCLIBC_SITE:=http://www.uclibc.org/downloads
endif endif
@ -99,6 +101,7 @@ $(STAGING_DIR)/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a
DEVEL_PREFIX=/ \ DEVEL_PREFIX=/ \
RUNTIME_PREFIX=/ \ RUNTIME_PREFIX=/ \
install_dev install_dev
echo $(UCLIBC_VER) > $(STAGING_DIR)/uclibc_version
# Build the host utils. Need to add an install target... - disabled # Build the host utils. Need to add an install target... - disabled
# $(MAKE1) -C $(UCLIBC_DIR)/utils \ # $(MAKE1) -C $(UCLIBC_DIR)/utils \
# PREFIX=$(STAGING_DIR) \ # PREFIX=$(STAGING_DIR) \
@ -106,23 +109,6 @@ $(STAGING_DIR)/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a
# hostutils # hostutils
touch -c $(STAGING_DIR)/lib/libc.a touch -c $(STAGING_DIR)/lib/libc.a
ifneq ($(TARGET_DIR),)
$(TARGET_DIR)/lib/libc.so.0: $(STAGING_DIR)/lib/libc.a
$(MAKE1) -C $(UCLIBC_DIR) \
PREFIX=$(TARGET_DIR) \
DEVEL_PREFIX=/usr/ \
RUNTIME_PREFIX=/ \
install_runtime
touch -c $(TARGET_DIR)/lib/libc.so.0
$(TARGET_DIR)/usr/bin/ldd:
$(MAKE1) -C $(UCLIBC_DIR) $(TARGET_CONFIGURE_OPTS) \
PREFIX=$(TARGET_DIR) utils install_utils
touch -c $(TARGET_DIR)/usr/bin/ldd
UCLIBC_TARGETS=$(TARGET_DIR)/lib/libc.so.0
endif
uclibc-configured: $(UCLIBC_DIR)/.configured uclibc-configured: $(UCLIBC_DIR)/.configured
uclibc: $(STAGING_DIR)/lib/libc.a \ uclibc: $(STAGING_DIR)/lib/libc.a \
@ -139,28 +125,3 @@ uclibc-clean:
uclibc-toolclean: uclibc-toolclean:
rm -rf $(UCLIBC_DIR) rm -rf $(UCLIBC_DIR)
uclibc-target-utils: $(TARGET_DIR)/usr/bin/ldd
#############################################################
#
# uClibc for the target just needs its header files
# and whatnot installed.
#
#############################################################
$(TARGET_DIR)/usr/lib/libc.a: $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/lib/libc.a
$(MAKE1) -C $(UCLIBC_DIR) \
PREFIX=$(TARGET_DIR) \
DEVEL_PREFIX=/usr/ \
RUNTIME_PREFIX=/ \
install_dev
touch -c $(TARGET_DIR)/usr/lib/libc.a
uclibc_target: gcc uclibc $(TARGET_DIR)/usr/lib/libc.a $(TARGET_DIR)/usr/bin/ldd
uclibc_target-clean:
rm -f $(TARGET_DIR)/include
uclibc_target-dirclean:
rm -f $(TARGET_DIR)/include

Loading…
Cancel
Save