summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authorryoon <ryoon>2014-04-05 23:54:16 +0000
committerryoon <ryoon>2014-04-05 23:54:16 +0000
commitdaebee72fce3078c9990761072691c0d06f6f283 (patch)
treeb68ac25b4274a2bab6d62a654abae54d19fbcf53 /lang
parent42f8180fda71b16d4f7ad7ec5899842c692bb94e (diff)
downloadpkgsrc-daebee72fce3078c9990761072691c0d06f6f283.tar.gz
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.
Diffstat (limited to 'lang')
-rw-r--r--lang/gfortran/DESCR2
-rw-r--r--lang/gfortran/Makefile154
-rw-r--r--lang/gfortran/PLIST16
-rw-r--r--lang/gfortran/buildlink3.mk12
-rw-r--r--lang/gfortran/options.mk64
5 files changed, 248 insertions, 0 deletions
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