From daebee72fce3078c9990761072691c0d06f6f283 Mon Sep 17 00:00:00 2001 From: ryoon Date: Sat, 5 Apr 2014 23:54:16 +0000 Subject: Import gfortran-4.8.2 as lang/gfortran. gFortran compiler from the GNU Compiler Collection (GCC) 4.8 branch. gFrotran supports Fortran 95/2003/2008 standards. --- lang/gfortran/DESCR | 2 + lang/gfortran/Makefile | 154 ++++++++++++++++++++++++++++++++++++++++++++ lang/gfortran/PLIST | 16 +++++ lang/gfortran/buildlink3.mk | 12 ++++ lang/gfortran/options.mk | 64 ++++++++++++++++++ 5 files changed, 248 insertions(+) create mode 100644 lang/gfortran/DESCR create mode 100644 lang/gfortran/Makefile create mode 100644 lang/gfortran/PLIST create mode 100644 lang/gfortran/buildlink3.mk create mode 100644 lang/gfortran/options.mk (limited to 'lang') diff --git a/lang/gfortran/DESCR b/lang/gfortran/DESCR new file mode 100644 index 00000000000..02ac79d9a0d --- /dev/null +++ b/lang/gfortran/DESCR @@ -0,0 +1,2 @@ +gFortran compiler from the GNU Compiler Collection (GCC) 4.8 branch. +gFrotran supports Fortran 95/2003/2008 standards. diff --git a/lang/gfortran/Makefile b/lang/gfortran/Makefile new file mode 100644 index 00000000000..8a9d27c5e53 --- /dev/null +++ b/lang/gfortran/Makefile @@ -0,0 +1,154 @@ +# $NetBSD: Makefile,v 1.1 2014/04/05 23:54:16 ryoon Exp $ + +GCC_PKGNAME= gfortran +.include "../../lang/gcc48/version.mk" + +DISTNAME= gcc-${GCC48_DIST_VERSION} +PKGNAME= ${GCC_PKGNAME}-${GCC48_DIST_VERSION} +CATEGORIES= lang +MASTER_SITES= ${MASTER_SITE_GNU:=gcc/gcc-${GCC48_DIST_VERSION}/} +EXTRACT_SUFX= .tar.bz2 + +MAINTAINER= ryoon@NetBSD.org +HOMEPAGE= http://gcc.gnu.org/ +COMMENT= The GNU Compiler Collection (GCC) - 4.8 Release Series +LICENSE= gnu-gpl-v2 AND gnu-gpl-v3 AND gnu-lgpl-v2 AND gnu-lgpl-v3 + +DISTFILES= ${DEFAULT_DISTFILES} +EXTRACT_ONLY= ${DEFAULT_DISTFILES} + +DISTINFO_FILE= ${.CURDIR}/../../lang/gcc48/distinfo +PATCHDIR= ${.CURDIR}/../../lang/gcc48/patches + +NOT_FOR_PLATFORM= Interix-*-* + +USE_LANGUAGES= c c++ +USE_TOOLS+= gmake makeinfo sed:run +GNU_CONFIGURE= yes +## Build outside ${WRKSRC} +OBJDIR= ../build +CONFIGURE_DIRS= ${OBJDIR} +CONFIGURE_SCRIPT= ../${DISTNAME}/configure +GCC_PREFIX= ${PREFIX} +GNU_CONFIGURE_PREFIX= ${GCC_PREFIX} +#CONFIGURE_ARGS+= --program-suffix=-4.8 +INFO_FILES= yes + +UNLIMIT_RESOURCES+= datasize +UNLIMIT_RESOURCES+= stacksize + +SUBST_CLASSES+= vars +SUBST_MESSAGE.vars= Setting target machine name path in ${SUBST_FILES.vars} +SUBST_STAGE.vars= pre-configure +SUBST_FILES.vars= gcc/Makefile.in +SUBST_VARS.vars= GCC_TARGET_MACHINE + +.include "../../mk/bsd.prefs.mk" + +LANGS= fortran + +# In some cases LINKER_RPATH_FLAG needs a trailing space. +LINKER_RPATH_FLAG:= ${LINKER_RPATH_FLAG:S/-rpath/& /} + +## The Library rpath to use in end programs. +LDFLAGS_FOR_TARGET= ${LDFLAGS:M${COMPILER_RPATH_FLAG}*:N*/usr/lib*} + +# The "-static-libstdc++ -static-libgcc" flags are normally added to the +# boot-ldflags by configure but because we are supply the boot-ldflags +# we mash supply them. +BOOT_LDFLAGS= -static-libstdc++ -static-libgcc ${LDFLAGS_FOR_TARGET} +# Needed on Darwin when LDFLAGS point to a SDK +BOOT_LDFLAGS+= ${LDFLAGS:M-Wl,-syslibroot*} +# GCC does not understand this option; remove it, or stage build will fail +BUILDLINK_TRANSFORM+= rm:-stdlib=libc++ + +## For target librarys and libjava programs. +CONFIGURE_ENV+= LDFLAGS_FOR_TARGET=${LDFLAGS_FOR_TARGET:Q} + +CONFIGURE_ARGS+= --enable-languages=${LANGS:Q} +CONFIGURE_ARGS+= --enable-shared +CONFIGURE_ARGS+= --enable-long-long +CONFIGURE_ARGS+= --with-local-prefix=${GCC_PREFIX:Q} +CONFIGURE_ARGS+= --enable-libssp +CONFIGURE_ARGS+= --enable-threads=posix +CONFIGURE_ARGS+= --with-boot-ldflags=${BOOT_LDFLAGS:Q} +CONFIGURE_ARGS+= --disable-nls +CONFIGURE_ARGS+= --disable-build-with-cxx +CONFIGURE_ARGS+= --disable-build-poststage1-with-cxx +.if ${OPSYS} == "NetBSD" +CONFIGURE_ARGS+= --with-gnu-ld --with-ld=/usr/bin/ld +CONFIGURE_ARGS+= --with-gnu-as --with-as=/usr/bin/as +MAKE_ENV+= ac_cv_func_clock_gettime=yes +.endif +.if ${OPSYS} == "DragonFly" +CONFIGURE_ARGS+= --disable-bootstrap +.endif + +.if !empty(MACHINE_PLATFORM:MNetBSD-*-i386) || !empty(MACHINE_PLATFORM:MLinux-*-i386) +CONFIGURE_ARGS+= --with-arch=i486 --with-tune=i486 +.endif + +.include "options.mk" + +# ${WRKSRC}/fixincludes/ looks for sed and compiles the path to sed into +# a binary so we need to make sure we give it the installed sed and not +# the tool wrapped one. +MAKE_ENV+= ac_cv_path_SED=${TOOLS_SED} +MAKE_ENV+= lt_cv_path_SED=${TOOLS_SED} + +# Determine whether to use binutils +.if ${OPSYS} == "SunOS" +. if exists(/usr/sfw/bin/gobjdump) +CONFIGURE_ENV+= OBJDUMP=/usr/sfw/bin/gobjdump +. endif +. if exists(/usr/bin/ld) +CONFIGURE_ARGS+= --without-gnu-ld --with-ld=/usr/bin/ld +. else +CONFIGURE_ARGS+= --without-gnu-ld --with-ld=/usr/ccs/bin/ld +. endif +. if exists(/usr/sfw/bin/gas) +CONFIGURE_ARGS+= --with-gnu-as --with-as=/usr/sfw/bin/gas +. elif exists(/usr/ccs/bin/as) +CONFIGURE_ARGS+= --without-gnu-as --with-as=/usr/ccs/bin/as +. else +BUILDLINK_DEPMETHOD.binutils= full +. include "../../devel/binutils/buildlink3.mk" +CONFIGURE_ARGS+= --with-gnu-as --with-as=${PREFIX}/bin/gas +. endif +.endif + +pre-configure: + ${RUN} cd ${WRKSRC} && ${MKDIR} ${OBJDIR} + +INSTALLATION_DIRS+= bin +do-install: + cd ${WRKSRC}/${OBJDIR}/gcc && \ + env ${MAKE_ENV} \ + ${MAKE_PROGRAM} ${INSTALL_MAKE_FLAGS} \ + -f ${MAKE_FILE} \ + fortran.install-common + cd ${WRKSRC}/${OBJDIR}/${MACHINE_GNU_PLATFORM}/libgfortran && \ + env ${MAKE_ENV} \ + ${MAKE_PROGRAM} ${INSTALL_MAKE_FLAGS} \ + -f ${MAKE_FILE} \ + install + cd ${WRKSRC}/${OBJDIR}/${MACHINE_GNU_PLATFORM}/libgomp && \ + env ${MAKE_ENV} \ + ${MAKE_PROGRAM} ${INSTALL_MAKE_FLAGS} \ + -f ${MAKE_FILE} \ + install-nodist_fincludeHEADERS + cd ${WRKSRC}/${OBJDIR}/lto-plugin && \ + env ${MAKE_ENV} \ + ${MAKE_PROGRAM} ${INSTALL_MAKE_FLAGS} \ + -f ${MAKE_FILE} \ + install + ${INSTALL_PROGRAM} ${WRKSRC}/${OBJDIR}/gcc/f951 \ + ${DESTDIR}${PREFIX}/lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION} + cd ${DESTDIR}${PREFIX}/bin && \ + ${LN} -sf gfortran f77 && \ + ${LN} -sf gfortran g77 && \ + ${LN} -sf gfortran g95 + +.include "../../mk/dlopen.buildlink3.mk" +.include "../../mk/pthread.buildlink3.mk" +.include "../../mk/bsd.pkg.mk" diff --git a/lang/gfortran/PLIST b/lang/gfortran/PLIST new file mode 100644 index 00000000000..63e15aa878d --- /dev/null +++ b/lang/gfortran/PLIST @@ -0,0 +1,16 @@ +@comment $NetBSD: PLIST,v 1.1 2014/04/05 23:54:16 ryoon Exp $ +bin/f77 +bin/g77 +bin/g95 +bin/gfortran +bin/${MACHINE_GNU_PLATFORM}-gfortran +lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/f951 +lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/finclude/omp_lib.f90 +lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/finclude/omp_lib.h +lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/finclude/omp_lib.mod +lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/finclude/omp_lib_kinds.mod +lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/libcaf_single.la +lib/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/libgfortranbegin.la +lib/libgfortran.la +lib/libgfortran.spec +libexec/gcc/${MACHINE_GNU_PLATFORM}/${PKGVERSION}/liblto_plugin.la diff --git a/lang/gfortran/buildlink3.mk b/lang/gfortran/buildlink3.mk new file mode 100644 index 00000000000..c3d327d912f --- /dev/null +++ b/lang/gfortran/buildlink3.mk @@ -0,0 +1,12 @@ +# $NetBSD: buildlink3.mk,v 1.1 2014/04/05 23:54:16 ryoon Exp $ + +BUILDLINK_TREE+= gfortran + +.if !defined(GFORTRAN_BUILDLINK3_MK) +GFORTRAN_BUILDLINK3_MK:= + +BUILDLINK_API_DEPENDS.gfortran+= gfortran>=4.8.2 +BUILDLINK_PKGSRCDIR.gfortran?= ../../lang/gfortran +.endif # GFORTRAN_BUILDLINK3_MK + +BUILDLINK_TREE+= -gfortran diff --git a/lang/gfortran/options.mk b/lang/gfortran/options.mk new file mode 100644 index 00000000000..c2195cd186c --- /dev/null +++ b/lang/gfortran/options.mk @@ -0,0 +1,64 @@ +# $NetBSD: options.mk,v 1.1 2014/04/05 23:54:16 ryoon Exp $ + +PKG_OPTIONS_VAR= PKG_OPTIONS.${GCC_PKGNAME} +PKG_SUPPORTED_OPTIONS= gcc-inplace-math gcc-graphite +PKG_SUGGESTED_OPTIONS= gcc-graphite + +.if ${OPSYS} == "SunOS" +PKG_SUGGESTED_OPTIONS+= gcc-inplace-math +.endif + +### +### Determine if multilib is avalible. +### +MULTILIB_SUPPORTED?= unknown +.if !empty(MACHINE_PLATFORM:MLinux-*-x86_64) +. if exists(/usr/include/gnu/stubs-64.h) && \ + !exists(/usr/include/gnu/stubs-32.h) +MULTILIB_SUPPORTED=No +. else +MULTILIB_SUPPORTED=Yes +. endif +.endif +.if !empty(MULTILIB_SUPPORTED:M[Yy][Ee][Ss]) +PKG_SUPPORTED_OPTIONS+= gcc-multilib +PKG_SUGGESTED_OPTIONS+= gcc-multilib +.endif + +.include "../../mk/bsd.options.mk" + +### +### Multilib Support +### +.if (!empty(MULTILIB_SUPPORTED:M[Yy][Ee][Ss]) && \ + empty(PKG_OPTIONS:Mgcc-multilib) ) || \ + !empty(MULTILIB_SUPPORTED:M[Nn][Oo]) +CONFIGURE_ARGS+= --disable-multilib +.endif + +### +### Build math libraries in place +### +.if !empty(PKG_OPTIONS:Mgcc-inplace-math) +. include "../../devel/gmp/inplace.mk" +. include "../../math/mpcomplex/inplace.mk" +. include "../../math/mpfr/inplace.mk" +.else +CONFIGURE_ARGS+= --with-gmp=${BUILDLINK_PREFIX.gmp} +CONFIGURE_ARGS+= --with-mpc=${BUILDLINK_PREFIX.mpcomplex} +CONFIGURE_ARGS+= --with-mpfr=${BUILDLINK_PREFIX.mpfr} +LIBS.SunOS+= -lgmp +. include "../../devel/gmp/buildlink3.mk" +. include "../../math/mpcomplex/buildlink3.mk" +. include "../../math/mpfr/buildlink3.mk" +.endif + +### +### Graphite Support +### +.if !empty(PKG_OPTIONS:Mgcc-graphite) +CONFIGURE_ARGS+= --with-cloog=${BUILDLINK_PREFIX.cloog} +CONFIGURE_ARGS+= --enable-cloog-backend=isl +.include "../../math/cloog/buildlink3.mk" +.include "../../math/isl/buildlink3.mk" +.endif -- cgit v1.2.3