1PORTNAME= gcc 2PORTVERSION= 13.3.0 3CATEGORIES= lang 4MASTER_SITES= GCC 5PKGNAMESUFFIX= ${SUFFIX} 6 7MAINTAINER= ports@MidnightBSD.org 8COMMENT= GNU Compiler Collection 13 9WWW= https://gcc.gnu.org 10 11LICENSE= gpl3 12 13LIB_DEPENDS= libgmp.so:math/gmp \ 14 libmpfr.so:math/mpfr \ 15 libmpc.so:math/mpc 16BUILD_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils 17RUN_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils 18 19.if defined(MAINTAINER_MODE) 20BUILD_DEPENDS+= runtest:misc/dejagnu 21.endif 22 23CPE_VENDOR= gnu 24 25GCC_VERSION= ${PORTVERSION} 26SUFFIX= ${PORTVERSION:C/([0-9]+).*/\1/} 27USES= compiler:c++11-lang cpe gmake iconv libtool makeinfo perl5 tar:xz 28USE_BINUTILS= yes 29USE_PERL5= build 30SSP_UNSAFE= yes 31CFLAGS:= ${CFLAGS:N-mretpoline} 32CXXFLAGS:= ${CXXFLAGS:N-mretpoline} 33 34OPTIONS_DEFINE= BOOTSTRAP GRAPHITE 35OPTIONS_DEFAULT= BOOTSTRAP 36BOOTSTRAP_DESC= Build using a full bootstrap 37GRAPHITE_DESC= Support for Graphite loop optimizations 38 39.if exists(/usr/lib32/libc.so) 40OPTIONS_DEFINE_amd64+= MULTILIB 41OPTIONS_DEFAULT_amd64+= MULTILIB 42OPTIONS_DEFINE_powerpc64+= MULTILIB 43OPTIONS_DEFAULT_powerpc64+= MULTILIB 44MULTILIB_DESC= Build support for 32-bit and 64-bit targets 45MULTILIB_CONFIGURE_ENABLE= multilib 46.else 47CONFIGURE_ARGS+= --disable-multilib 48.endif 49 50.include <bsd.port.pre.mk> 51 52.if ${ARCH} == amd64 53ARCH_64= 54CONFIGURE_TARGET= x86_64-portbld-freebsd11.4 55.else 56ARCH_64=@comment 57CONFIGURE_TARGET= ${ARCH}-portbld-freebsd11.4 58.endif 59 60LANGUAGES:= c,c++,objc,fortran,jit 61TARGLIB= ${PREFIX}/lib/gcc${SUFFIX} 62TARGLIB32= ${PREFIX}/lib32 # The version information is added later 63LIBEXEC= ${PREFIX}/libexec/gcc${SUFFIX} 64GNU_CONFIGURE= yes 65CONFIGURE_OUTSOURCE= yes 66.if empty(PORT_OPTIONS:MBOOTSTRAP) 67CONFIGURE_ARGS+=--disable-bootstrap 68.else 69CONFIGURE_ARGS+=--with-build-config=bootstrap-debug 70ALL_TARGET= bootstrap-lean 71.endif 72INSTALL_TARGET= install-strip 73.if ${UID} != 0 74BINMODE= 755 75.endif 76CONFIGURE_ARGS+=--disable-nls \ 77 --enable-gnu-indirect-function \ 78 --enable-host-shared \ 79 --enable-plugin \ 80 --libdir=${TARGLIB} \ 81 --libexecdir=${LIBEXEC} \ 82 --program-suffix=${SUFFIX} \ 83 --with-as=${LOCALBASE}/bin/as \ 84 --with-gmp=${LOCALBASE} \ 85 --with-gxx-include-dir=${TARGLIB}/include/c++/ \ 86 --with-gxx-libcxx-include-dir=/usr/include/c++/v1 \ 87 --with-ld=${LOCALBASE}/bin/ld \ 88 ${ICONV_CONFIGURE_ARG} \ 89 --with-pkgversion="MidnightBSD Ports Collection" \ 90 --with-system-zlib \ 91 --without-zstd 92MAKE_ARGS+= MAKEINFOFLAGS="--no-split" 93USE_LDCONFIG= ${TARGLIB} 94PLIST_SUB+= GCC_VERSION=${GCC_VERSION} \ 95 GNU_HOST=${CONFIGURE_TARGET} \ 96 SUFFIX=${SUFFIX} \ 97 ARCH_64=${ARCH_64} 98INFO= gcc${SUFFIX}/cpp \ 99 gcc${SUFFIX}/cppinternals \ 100 gcc${SUFFIX}/gcc \ 101 gcc${SUFFIX}/gccinstall \ 102 gcc${SUFFIX}/gccint \ 103 gcc${SUFFIX}/gfortran \ 104 gcc${SUFFIX}/libgccjit \ 105 gcc${SUFFIX}/libgomp 106# Release tarballs (as opposed to snapshots) always carry this. 107INFO+= gcc${SUFFIX}/libquadmath \ 108 gcc${SUFFIX}/libitm 109SUB_FILES= pkg-message 110SUB_LIST+= TARGLIB=${TARGLIB} 111 112.if ${PORT_OPTIONS:MGRAPHITE} 113LIB_DEPENDS+= libisl.so:devel/isl 114CONFIGURE_ARGS+=--with-isl=${LOCALBASE} 115.endif 116 117CONFIGURE_ARGS+=--enable-languages=${LANGUAGES} 118 119pre-everything:: 120 @${ECHO_MSG} "Making GCC ${PORTVERSION} for ${CONFIGURE_TARGET} [${LANGUAGES}]" 121 122pre-configure: 123 cd ${WRKSRC} ; contrib/gcc_update --touch 124 @${RM} ${WRKSRC}/gcc/*/*.info* 125 126.if defined(MAINTAINER_MODE) 127full-regression-test: build 128 cd ${TEST_WRKSRC}; ${MAKE_CMD} -sk check \ 129 ; ${WRKSRC}/contrib/test_summary 130.endif 131 132post-fake: 133 ${RM} -f ${PREFIX}/man/man7/* 134 -${RM} -fr ${FAKE_DESTDIR}${TARGLIB}/gcc/*/${GCC_VERSION}/include-fixed/ 135 # Add target libraries and include files to packaging list. 136 137.if ${ARCH} == amd64 && ${PORT_OPTIONS:MMULTILIB} 138 ${MKDIR} ${FAKE_DESTDIR}${TARGLIB32} 139 ${MV} ${FAKE_DESTDIR}${TRUE_PREFIX}/lib/lib32 ${FAKE_DESTDIR}${TARGLIB32}/gcc${SUFFIX} 140.endif 141 142.for d in ${TARGLIB:S/^${PREFIX}\///} ${TARGLIB32:S/^${PREFIX}\///} ${LIBEXEC:S/^${PREFIX}\///} 143 cd ${FAKE_DESTDIR}${TRUE_PREFIX} ; if [ -d $d ]; then \ 144 ${FIND} $d -type f -o -type l >>${WRKDIR}/PLIST.lib ;\ 145 fi 146.endfor 147 cd ${WRKDIR} ; ${SED} -i -e "/PLIST.lib/ r PLIST.lib" ${TMPPLIST} 148 149.include <bsd.port.post.mk> 150