summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-06-23 11:46:24 +0000
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-06-23 11:46:24 +0000
commit63ef78f3dad08c8e44920533817e569478d9c6b8 (patch)
treea12d198f71c27593a1d32ef041841175cbb7574d
parent814de68e5dab04406c3369dbf3975ae9eca4615a (diff)
[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/Makefile40
-rw-r--r--toolchain/gcc/Config.in8
-rw-r--r--toolchain/gcc/common.mk2
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