diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2011-06-23 11:46:24 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2011-06-23 11:46:24 +0000 |
commit | 5945c8a227a359582654216d2187fcb02672b5d7 (patch) | |
tree | a12d198f71c27593a1d32ef041841175cbb7574d | |
parent | 481279fb32cf9d66a5f7349f9ab6c99558955179 (diff) | |
download | upstream-5945c8a227a359582654216d2187fcb02672b5d7.tar.gz upstream-5945c8a227a359582654216d2187fcb02672b5d7.tar.bz2 upstream-5945c8a227a359582654216d2187fcb02672b5d7.zip |
[toolchain] add gfortran compiler support (#9600, patch from Xiangfu Liu via Qi hardware)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27262 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r-- | package/base-files/Makefile | 40 | ||||
-rw-r--r-- | toolchain/gcc/Config.in | 8 | ||||
-rw-r--r-- | toolchain/gcc/common.mk | 2 |
3 files changed, 49 insertions, 1 deletions
diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 23bd51a0bd..ca4a689623 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -247,6 +247,32 @@ define Package/librt/config endef +define Package/libgfortran +$(call Package/gcc/Default) + TITLE:=GFortran support library + DEPENDS+=@!(TARGET_avr32||TARGET_coldfire) @INSTALL_GFORTRAN +endef + +define Package/libgfortran/config + menu "Configuration" + depends EXTERNAL_TOOLCHAIN && PACKAGE_libgfortran + + config LIBGFORTRAN_ROOT_DIR + string + prompt "libgfortran shared library base directory" + depends EXTERNAL_TOOLCHAIN && PACKAGE_libgfortran + default TOOLCHAIN_ROOT if !NATIVE_TOOLCHAIN + default "/" if NATIVE_TOOLCHAIN + + config LIBGFORTRAN_FILE_SPEC + string + prompt "libgfortran shared library files (use wildcards)" + depends EXTERNAL_TOOLCHAIN && PACKAGE_libgfortran + default "./usr/lib/libgfortran.so.*" + + endmenu +endef + define Package/ldd $(call Package/libc/Default) SECTION:=utils @@ -466,6 +492,11 @@ ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),) $(CP) $(PKG_BUILD_DIR)/libgcc_s.so.* $(1)/lib/ endef + define Package/libgfortran/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(TOOLCHAIN_DIR)/lib/libgfortran.so.* $(1)/usr/lib/ + endef + define Package/libssp/install $(INSTALL_DIR) $(1)/lib $(CP) $(TOOLCHAIN_DIR)/lib/libssp.so.* $(1)/lib/ @@ -581,6 +612,14 @@ else exit 0 endef + define Package/libgfortran/install + for file in $(call qstrip,$(CONFIG_LIBGFORTRAN_FILE_SPEC)); do \ + dir=`dirname $$$$file` ; \ + $(INSTALL_DIR) $(1)/$$$$dir ; \ + $(CP) $(call qstrip,$(CONFIG_LIBGFORTRAN_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \ + done + endef + define Package/libssp/install for file in $(call qstrip,$(CONFIG_LIBSSP_FILE_SPEC)); do \ dir=`dirname $$$$file` ; \ @@ -657,5 +696,6 @@ $(eval $(call BuildPackage,libssp)) $(eval $(call BuildPackage,libstdcpp)) $(eval $(call BuildPackage,libpthread)) $(eval $(call BuildPackage,librt)) +$(eval $(call BuildPackage,libgfortran)) $(eval $(call BuildPackage,ldd)) $(eval $(call BuildPackage,ldconfig)) diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in index e6434d0f7d..6b45da55bd 100644 --- a/toolchain/gcc/Config.in +++ b/toolchain/gcc/Config.in @@ -89,3 +89,11 @@ config INSTALL_LIBGCJ default n help Build/install java compiler and GNU classpath ? + + +config INSTALL_GFORTRAN + bool + prompt "Build/install fortran compiler?" if TOOLCHAINOPTS + default n + help + Build/install GNU fortran compiler ? diff --git a/toolchain/gcc/common.mk b/toolchain/gcc/common.mk index e047ace653..1ef14a87ed 100644 --- a/toolchain/gcc/common.mk +++ b/toolchain/gcc/common.mk @@ -86,7 +86,7 @@ HOST_STAMP_CONFIGURED:=$(GCC_BUILD_DIR)/.configured HOST_STAMP_INSTALLED:=$(STAGING_DIR_HOST)/stamp/.gcc_$(GCC_VARIANT)_installed SEP:=, -TARGET_LANGUAGES:="c$(if $(CONFIG_INSTALL_LIBSTDCPP),$(SEP)c++)$(if $(CONFIG_INSTALL_LIBGCJ),$(SEP)java)" +TARGET_LANGUAGES:="c$(if $(CONFIG_INSTALL_LIBSTDCPP),$(SEP)c++)$(if $(CONFIG_INSTALL_LIBGCJ),$(SEP)java)$(if $(CONFIG_INSTALL_GFORTRAN),$(SEP)fortran)" export libgcc_cv_fixed_point=no ifdef CONFIG_USE_UCLIBC |