- #
- # Copyright (C) 2008 OpenWrt.org
- #
- # This is free software, licensed under the GNU General Public License v2.
- # See /LICENSE for more information.
- #
- #
-
- include $(TOPDIR)/rules.mk
-
- PKG_NAME:=gcc
- PKG_VERSION:=4.8.3
- PKG_RELEASE:=1
- PKG_SOURCE_URL:=@GNU/gcc/gcc-$(PKG_VERSION)
-
- PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
- PKG_MD5SUM:=7c60f24fab389f77af203d2516ee110f
- PKG_INSTALL:=1
- PKG_FIXUP:=libtool
- PKG_BUILD_PARALLEL:=1
-
- include $(INCLUDE_DIR)/package.mk
-
- TARGET_LANGUAGES:="c,c++"
- BUGURL=https://dev.openwrt.org/
- PKGVERSION=OpenWrt GCC $(PKG_VERSION)
-
- # not using sstrip here as this fucks up the .so's somehow
- STRIP:=$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)strip
- RSTRIP:= \
- NM="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)nm" \
- STRIP="$(STRIP)" \
- STRIP_KMOD="$(STRIP) --strip-debug" \
- $(SCRIPT_DIR)/rstrip.sh
-
-
- define Package/gcc
- SECTION:=devel
- CATEGORY:=Development
- TITLE:=gcc
- MAINTAINER:=Christian Beier <cb@shoutrlabs.com>
- DEPENDS:= +binutils +libstdcpp
- endef
-
- define Package/gcc/description
- build a native toolchain for compiling on target
- endef
-
-
- define Build/Prepare
- $(PKG_UNPACK)
- # we have to download additional stuff before patching
- (cd $(PKG_BUILD_DIR) && ./contrib/download_prerequisites)
- $(Build/Patch)
- # poor man's fix for `none-openwrt-linux' not recognized when building with musl
- cp $(PKG_BUILD_DIR)/config.sub $(PKG_BUILD_DIR)/mpfr/
- cp $(PKG_BUILD_DIR)/config.sub $(PKG_BUILD_DIR)/gmp/
- cp $(PKG_BUILD_DIR)/config.sub $(PKG_BUILD_DIR)/mpc/
- endef
-
-
- define Build/Configure
- (cd $(PKG_BUILD_DIR); rm -f config.cache; \
- SHELL="$(BASH)" \
- $(TARGET_CONFIGURE_OPTS) \
- $(PKG_BUILD_DIR)/configure \
- $(CONFIGURE_ARGS) \
- --build=$(GNU_HOST_NAME) \
- --host=$(REAL_GNU_TARGET_NAME) \
- --target=$(REAL_GNU_TARGET_NAME) \
- --enable-languages=$(TARGET_LANGUAGES) \
- --with-bugurl=$(BUGURL) \
- --with-pkgversion="$(PKGVERSION)" \
- --enable-shared \
- --disable-__cxa_atexit \
- --enable-target-optspace \
- --with-gnu-ld \
- --disable-nls \
- --disable-libmudflap \
- --disable-multilib \
- --disable-libgomp \
- --disable-libquadmath \
- --disable-libssp \
- --disable-decimal-float \
- --disable-libstdcxx-pch \
- --with-host-libstdcxx=-lstdc++ \
- --prefix=/usr \
- --libexecdir=/usr/lib \
- $(SOFT_FLOAT_CONFIG_OPTION) \
- $(call qstrip,$(CONFIG_EXTRA_GCC_CONFIG_OPTIONS)) \
- $(if $(CONFIG_mips64)$(CONFIG_mips64el),--with-arch=mips64 \
- --with-abi=$(subst ",,$(CONFIG_MIPS64_ABI))) \
- );
- endef
-
- define Build/Compile
- export SHELL="$(BASH)"; $(MAKE_VARS) $(MAKE) -C $(PKG_BUILD_DIR) \
- DESTDIR="$(PKG_INSTALL_DIR)" $(MAKE_ARGS) all install
- endef
-
- define Package/gcc/install
- $(INSTALL_DIR) $(1)/usr/bin $(1)/usr/lib $(1)/usr/lib/$(PKG_NAME)/$(REAL_GNU_TARGET_NAME)/$(PKG_VERSION)
- cp -ar $(PKG_INSTALL_DIR)/usr/include $(1)/usr
- cp -a $(PKG_INSTALL_DIR)/usr/bin/{$(REAL_GNU_TARGET_NAME)-{g++,gcc},cpp,gcov} $(1)/usr/bin
- ln -s $(REAL_GNU_TARGET_NAME)-g++ $(1)/usr/bin/c++
- ln -s $(REAL_GNU_TARGET_NAME)-g++ $(1)/usr/bin/g++
- ln -s $(REAL_GNU_TARGET_NAME)-g++ $(1)/usr/bin/$(REAL_GNU_TARGET_NAME)-c++
- ln -s $(REAL_GNU_TARGET_NAME)-gcc $(1)/usr/bin/gcc
- ln -s $(REAL_GNU_TARGET_NAME)-gcc $(1)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc-$(PKG_VERSION)
- cp -ar $(PKG_INSTALL_DIR)/usr/lib/gcc $(1)/usr/lib
- $(RM) $(1)/usr/lib/$(PKG_NAME)/$(REAL_GNU_TARGET_NAME)/$(PKG_VERSION)/*.a
- cp -ar $(TOOLCHAIN_DIR)/include $(1)/usr/lib/$(PKG_NAME)/$(REAL_GNU_TARGET_NAME)/$(PKG_VERSION)
- cp -a $(TOOLCHAIN_DIR)/lib/*.{o,so*} $(1)/usr/lib/$(PKG_NAME)/$(REAL_GNU_TARGET_NAME)/$(PKG_VERSION)
- cp -a $(TOOLCHAIN_DIR)/lib/*nonshared*.a $(1)/usr/lib/$(PKG_NAME)/$(REAL_GNU_TARGET_NAME)/$(PKG_VERSION)
- grep "GROUP.*-lgcc" $(1)/usr/lib/$(PKG_NAME)/$(REAL_GNU_TARGET_NAME)/$(PKG_VERSION)/libgcc_s.so && cp -a $(PKG_INSTALL_DIR)/usr/lib/gcc/$(REAL_GNU_TARGET_NAME)/$(PKG_VERSION)/libgcc.a $(1)/usr/lib/$(PKG_NAME)/$(REAL_GNU_TARGET_NAME)/$(PKG_VERSION)/ ; true
- endef
-
- $(eval $(call BuildPackage,gcc))
|