[toolchain] add gfortran compiler support (#9600, patch from Xiangfu Liu via Qi hardware)
authorJo-Philipp Wich <jow@openwrt.org>
Thu, 23 Jun 2011 11:46:24 +0000 (11:46 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Thu, 23 Jun 2011 11:46:24 +0000 (11:46 +0000)
SVN-Revision: 27262

package/base-files/Makefile
toolchain/gcc/Config.in
toolchain/gcc/common.mk

index 23bd51a..ca4a689 100644 (file)
@@ -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))
index e6434d0..6b45da5 100644 (file)
@@ -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 ?
index e047ace..1ef14a8 100644 (file)
@@ -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