# $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"