Hi, I just successfully patched the openwrt-xburst to allow compilation of Fortran programs. The short patch is attached, and I'm ready to commit in case nobody objects.
To test the gfortran-enabled openwrt you need the following steps (after applying the patch): - make distclean - copy a new config to .config - enable the gfortan compiler via 'make menuconfig', deeply hidden in the the "advanced configuration options" menu - enable buildding of the the libgfortran run-time lib, in the "base system" menu (alternatively add these lines to your .config: CONFIG_INSTALL_GFORTRAN=y CONFIG_PACKAGE_libgfortran=y ) - install the libgfortran ipk on your nanonote Pre-build libgfortran ipk package available here: http://mosquito.dyndns.tv/~spock/openwrt/ For now I managed to compile and run a simple fortran90 hello world program: --8<-- program HelloWorld write (*,*) 'Hello, world!' ! This is an inline comment end program HelloWorld --8<-- via: mipsel-openwrt-linux-gfortran hello.f90 -o hello Did I overlook something? Is it just that simple? Never programmed in fortran. Next thing would be trying to port octave (probably using plplot as plotting backend?). cheers, David -- GnuPG public key: http://user.cs.tu-berlin.de/~dvdkhlng/dk.gpg Fingerprint: B17A DC95 D293 657B 4205 D016 7DEF 5323 C174 7D40
diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 06496ba..428e49b 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -100,7 +100,6 @@ define Package/libgcc/config endmenu endef - define Package/libssp $(call Package/gcc/Default) depend...@ssp_support @@ -247,6 +246,32 @@ define Package/librt/config endef +define Package/libgfortran +$(call Package/gcc/Default) + TITLE:=GFortran support library + depend...@!(TARGET_avr32||TARGET_coldfire) +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 "libgcc 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 @@ -402,6 +427,11 @@ ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),) $(CP) $(TOOLCHAIN_DIR)/lib/libgcc_s.so.* $(1)/lib/ endef + define Package/libgfortran/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(TOOLCHAIN_DIR)/usr/lib/libgfortran.so.* $(1)/usr/lib/ + endef + define Package/libssp/install $(INSTALL_DIR) $(1)/lib $(CP) $(TOOLCHAIN_DIR)/lib/libssp.so.* $(1)/lib/ @@ -497,6 +527,14 @@ else done 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` ; \ @@ -566,5 +604,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 b183e36..a5876f1 100644 --- a/toolchain/gcc/Config.in +++ b/toolchain/gcc/Config.in @@ -102,3 +102,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/Makefile b/toolchain/gcc/Makefile index 9536cc2..9d18023 100644 --- a/toolchain/gcc/Makefile +++ b/toolchain/gcc/Makefile @@ -76,7 +76,7 @@ HOST_BUILD_DIR1:=$(HOST_BUILD_DIR)-initial HOST_BUILD_DIR2:=$(HOST_BUILD_DIR)-final 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
pgpiFyhlldVlx.pgp
Description: PGP signature
_______________________________________________ Qi Hardware Discussion List Mail to list (members only): [email protected] Subscribe or Unsubscribe: http://lists.en.qi-hardware.com/mailman/listinfo/discussion

