2 # Copyright (C) 2008 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
7 include $(TOPDIR
)/rules.mk
9 PKG_VERSION
:=$(strip $(subst ",, $(CONFIG_GCC_VERSION)))#"))
11 PATCH_DIR
=$(TOPDIR
)/toolchain
/gcc
/patches
/$(PKG_VERSION
)
12 PKG_SOURCE_URL
:=ftp
://ftp.fu-berlin.de
/unix
/languages
/gcc
/releases
/gcc-
$(PKG_VERSION
) \
13 http
://mirrors.rcn.net
/pub
/sourceware
/gcc
/releases
/gcc-
$(PKG_VERSION
) \
14 ftp
://ftp.gnu.org
/gnu
/gcc
/releases
/gcc-
$(PKG_VERSION
)
16 PKG_SOURCE
:=$(PKG_NAME
)-$(PKG_VERSION
).
tar.bz2
17 PKG_MD5SUM
:=354853e0b2da90c527e35aabb8d6f1e6
19 include $(INCLUDE_DIR
)/package.mk
22 TARGET_LANGUAGES
:="c$(if $(CONFIG_INSTALL_LIBSTDCPP),$(SEP)c++)$(if $(CONFIG_INSTALL_LIBGCJ),$(SEP)java)"
23 EXTRA_TARGET
=$(if
$(CONFIG_EXTRA_TARGET_ARCH
),--enable-biarch
--enable-targets
=$(call qstrip
,$(CONFIG_EXTRA_TARGET_ARCH_NAME
))-linux-uclibc
)
29 DEPENDS
:=@TARGET_x86 @NO_STRIP
32 define Package
/gcc
/description
33 build a native toolchain for compiling on target
37 $(call Build
/Prepare
/Default
)
38 $(SED
) 's,\(version_string.. = "[0-9\.]*\).*\(";\),\1 (OpenWrt-2.0)\2,' $(PKG_BUILD_DIR
)/gcc
/version.c
39 $(SED
) 's,\(bug_report_url.. = "\).*\(";\),\1<URL:https://dev.openwrt.org/>\2,' $(PKG_BUILD_DIR
)/gcc
/version.c
40 (cd
$(PKG_BUILD_DIR
)/libstdc
++-v3
; autoconf
;);
41 $(SED
) 's,gcc_no_link=yes,gcc_no_link=no,' $(PKG_BUILD_DIR
)/libstdc
++-v3
/configure
44 define Build
/Configure
45 (cd
$(PKG_BUILD_DIR
); rm -f config.cache
; \
47 $(TARGET_CONFIGURE_OPTS
) \
48 $(PKG_BUILD_DIR
)/configure \
49 $(TARGET_CONFIGURE_ARGS
) \
50 --build
=$(GNU_HOST_NAME
) \
51 --host
=$(REAL_GNU_TARGET_NAME
) \
52 --target
=$(REAL_GNU_TARGET_NAME
) \
53 --enable-languages
=$(TARGET_LANGUAGES
) \
55 --disable-__cxa_atexit \
56 --enable-target-optspace \
59 --disable-libmudflap \
62 $(SOFT_FLOAT_CONFIG_OPTION
) \
63 $(call qstrip
,$(CONFIG_EXTRA_GCC_CONFIG_OPTIONS
)) \
68 export SHELL
="$(BASH)"; $(MAKE_VARS
) $(MAKE
) -C
$(PKG_BUILD_DIR
) \
69 DESTDIR
="$(PKG_INSTALL_DIR)" $(MAKE_ARGS
) all install
70 # Set up the symlinks to enable lying about target name.
72 (cd
$(TOOLCHAIN_DIR
); \
73 ln
-sf
$(REAL_GNU_TARGET_NAME
) $(GNU_TARGET_NAME
); \
75 for app in
$(REAL_GNU_TARGET_NAME
)-* ; do \
77 $(GNU_TARGET_NAME
)$$$${app
##$(REAL_GNU_TARGET_NAME)}; \
82 define Package
/gcc
/install
83 $(INSTALL_DIR
) $(1)/usr
/lib
/
84 cp
-r
$(PKG_INSTALL_DIR
)/* $(1)
85 cp
-r
$(TOOLCHAIN_DIR
)/include $(1)/usr
/
86 cp
$(TOOLCHAIN_DIR
)/lib
/crt
* $(1)/usr
/lib
/
87 cp
$(TOOLCHAIN_DIR
)/lib
/libc.so
$(1)/usr
/lib
/
90 $(eval
$(call BuildPackage
,gcc
))