9518965c21
Instead of hardcoding the compiler target as FreeBSD, use the OPSYS variable to it. This makes no practical difference for FreeBSD, but it helps DragonFly get properly configured. Approved by: gerald
174 lines
4.9 KiB
Makefile
174 lines
4.9 KiB
Makefile
# Created by: Gerald Pfeifer <gerald@FreeBSD.org>
|
|
# $FreeBSD$
|
|
|
|
PORTNAME= gcc
|
|
PORTVERSION= 4.6.4
|
|
PORTEPOCH= 1
|
|
CATEGORIES= lang java
|
|
MASTER_SITES= ${MASTER_SITE_GCC}
|
|
MASTER_SITE_SUBDIR= releases/gcc-${DISTVERSION}
|
|
|
|
MAINTAINER= gerald@FreeBSD.org
|
|
COMMENT= GNU Compiler Collection 4.6
|
|
|
|
LIB_DEPENDS= gmp:${PORTSDIR}/math/gmp \
|
|
mpfr:${PORTSDIR}/math/mpfr \
|
|
mpc:${PORTSDIR}/math/mpc
|
|
BUILD_DEPENDS+= ${LOCALBASE}/bin/as:${PORTSDIR}/devel/binutils
|
|
RUN_DEPENDS+= ${LOCALBASE}/bin/as:${PORTSDIR}/devel/binutils
|
|
|
|
.if defined(MAINTAINER_MODE)
|
|
BUILD_DEPENDS+= runtest:${PORTSDIR}/misc/dejagnu
|
|
.endif
|
|
|
|
CONFLICTS= gcc-4.6.[123]*
|
|
|
|
# DISTVERSION relates to downloads, GCC_VERSION and SUFFIX to names
|
|
# of executables and directories once installed.
|
|
DISTVERSION= ${PORTVERSION}
|
|
GCC_VERSION= ${PORTVERSION:C/(.+)\.[0-9]{8}/\1/}
|
|
SUFFIX= ${PORTVERSION:C/([0-9]+).([0-9]+).*/\1\2/}
|
|
LATEST_LINK= gcc${SUFFIX}${PKGNAMESUFFIX}
|
|
ONLY_FOR_ARCHS= amd64 i386 ia64 powerpc sparc64
|
|
USES= bison gmake iconv
|
|
USE_BINUTILS= yes
|
|
USE_BZIP2= yes
|
|
USE_PERL5_BUILD=yes
|
|
|
|
PATCH_WRKSRC= ${SRCDIR}
|
|
CONFIGURE_SCRIPT= ../${SRCDIR:S/${WRKDIR}\///}/configure
|
|
|
|
OPTIONS_DEFINE= BOOTSTRAP
|
|
OPTIONS_DEFINE_i386= JAVA
|
|
OPTIONS_DEFINE_amd64= JAVA
|
|
OPTIONS_DEFAULT_i386= JAVA
|
|
OPTIONS_DEFAULT_amd64= JAVA
|
|
BOOTSTRAP_DESC= Build using a full bootstrap
|
|
|
|
.include <bsd.port.pre.mk>
|
|
|
|
.if ${ARCH} == "amd64"
|
|
CONFIGURE_TARGET= x86_64-portbld-${OPSYS:L}${OSREL}
|
|
.else
|
|
CONFIGURE_TARGET= ${ARCH}-portbld-${OPSYS:L}${OSREL}
|
|
.endif
|
|
|
|
LANGUAGES:= c,c++,objc,fortran
|
|
SRCDIR= ${WRKDIR}/gcc-${DISTVERSION}
|
|
WRKSRC= ${WRKDIR}/build
|
|
TARGLIB= ${PREFIX}/lib/gcc${SUFFIX}
|
|
LIBEXEC= ${PREFIX}/libexec/gcc${SUFFIX}
|
|
GNU_CONFIGURE= yes
|
|
CFLAGS+= -I${LOCALBASE}/include
|
|
.if empty(PORT_OPTIONS:MBOOTSTRAP)
|
|
CONFIGURE_ARGS+=--disable-bootstrap
|
|
.else
|
|
ALL_TARGET= bootstrap-lean
|
|
.endif
|
|
CONFIGURE_ARGS+=--disable-nls \
|
|
--libdir=${TARGLIB} \
|
|
--libexecdir=${LIBEXEC} \
|
|
--program-suffix=${SUFFIX} \
|
|
--with-as=${LOCALBASE}/bin/as \
|
|
--with-gmp=${LOCALBASE} \
|
|
--with-gxx-include-dir=${TARGLIB}/include/c++/ \
|
|
--with-ld=${LOCALBASE}/bin/ld \
|
|
${ICONV_CONFIGURE_ARG} \
|
|
--with-pkgversion="FreeBSD Ports Collection" \
|
|
--with-system-zlib
|
|
MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
|
|
USE_LDCONFIG= ${TARGLIB}
|
|
PLIST_SUB= GCC_VERSION=${GCC_VERSION} \
|
|
GNU_HOST=${CONFIGURE_TARGET} \
|
|
SUFFIX=${SUFFIX}
|
|
MAN1= cpp${SUFFIX}.1 \
|
|
g++${SUFFIX}.1 \
|
|
gcc${SUFFIX}.1 \
|
|
gcov${SUFFIX}.1 \
|
|
gfortran${SUFFIX}.1
|
|
INFO= gcc${SUFFIX}/cpp \
|
|
gcc${SUFFIX}/cppinternals \
|
|
gcc${SUFFIX}/gcc \
|
|
gcc${SUFFIX}/gccinstall \
|
|
gcc${SUFFIX}/gccint \
|
|
gcc${SUFFIX}/gfortran \
|
|
gcc${SUFFIX}/libgomp
|
|
# Release tarballs (as opposed to snapshots) always carry this.
|
|
#.if ${ARCH} != "ia64" && ${ARCH} != "powerpc" && ${ARCH} != "sparc64"
|
|
INFO+= gcc${SUFFIX}/libquadmath
|
|
#.endif
|
|
|
|
.if ${PORT_OPTIONS:MJAVA}
|
|
ECJ_JAR= ${LOCALBASE}/share/java/ecj-4.5.jar
|
|
BUILD_DEPENDS+= ${ECJ_JAR}:${PORTSDIR}/lang/gcc-ecj45 \
|
|
zip:${PORTSDIR}/archivers/zip
|
|
RUN_DEPENDS+= ${ECJ_JAR}:${PORTSDIR}/lang/gcc-ecj45
|
|
EXTRA_PATCHES+= ${FILESDIR}/java-patch-hier
|
|
CONFIGURE_ARGS+=--with-ecj-jar=${ECJ_JAR}
|
|
LANGUAGES:= ${LANGUAGES},java
|
|
MAN1+= aot-compile${SUFFIX}.1 \
|
|
gappletviewer${SUFFIX}.1 \
|
|
gc-analyze${SUFFIX}.1 \
|
|
gcj${SUFFIX}.1 \
|
|
gcj-dbtool${SUFFIX}.1 \
|
|
gcjh${SUFFIX}.1 \
|
|
gij${SUFFIX}.1 \
|
|
gjar${SUFFIX}.1 \
|
|
gjarsigner${SUFFIX}.1 \
|
|
gjavah${SUFFIX}.1 \
|
|
gjdoc${SUFFIX}.1 \
|
|
gkeytool${SUFFIX}.1 \
|
|
gnative2ascii${SUFFIX}.1 \
|
|
gorbd${SUFFIX}.1 \
|
|
grmic${SUFFIX}.1 \
|
|
grmid${SUFFIX}.1 \
|
|
grmiregistry${SUFFIX}.1 \
|
|
gserialver${SUFFIX}.1 \
|
|
gtnameserv${SUFFIX}.1 \
|
|
jcf-dump${SUFFIX}.1 \
|
|
jv-convert${SUFFIX}.1 \
|
|
rebuild-gcj-db${SUFFIX}.1
|
|
MAN3= ffi${SUFFIX}.3 \
|
|
ffi_call${SUFFIX}.3 \
|
|
ffi_prep_cif${SUFFIX}.3
|
|
INFO+= gcc${SUFFIX}/cp-tools \
|
|
gcc${SUFFIX}/gcj
|
|
PLIST_SUB+= JAVA=""
|
|
.else
|
|
CONFIGURE_ARGS+=--disable-libgcj
|
|
PLIST_SUB+= JAVA="@comment "
|
|
.endif
|
|
CONFIGURE_ARGS+=--enable-languages=${LANGUAGES}
|
|
|
|
pre-everything::
|
|
@${ECHO_MSG} "Making GCC ${PORTVERSION} for ${CONFIGURE_TARGET} [${LANGUAGES}]"
|
|
|
|
pre-configure:
|
|
cd ${SRCDIR} ; contrib/gcc_update --touch
|
|
@${RM} -f ${SRCDIR}/gcc/*/*.info*
|
|
@${MKDIR} ${CONFIGURE_WRKSRC}
|
|
|
|
.if defined(MAINTAINER_MODE)
|
|
full-regression-test: build
|
|
cd ${WRKSRC}; ${GMAKE} -sk check
|
|
.endif
|
|
|
|
post-install:
|
|
${RM} -f ${PREFIX}/man/man7/fsf-funding.7 \
|
|
${PREFIX}/man/man7/gfdl.7 ${PREFIX}/man/man7/gpl.7
|
|
${RM} -f ${TARGLIB}/*.la
|
|
# Add target libraries and include files to packaging list.
|
|
${RM} -f ${WRKDIR}/PLIST.lib
|
|
.for d in ${TARGLIB:S/^${PREFIX}\///} ${LIBEXEC:S/^${PREFIX}\///} include/gcj include/gnu include/java include/javax
|
|
cd ${PREFIX} ; if [ -d $d ]; then \
|
|
${FIND} $d -type f -o -type l >>${WRKDIR}/PLIST.lib ;\
|
|
${FIND} $d -type d | ${SORT} -r \
|
|
| ${SED} -e 's/^/@dirrm /g' >>${WRKDIR}/PLIST.lib ;\
|
|
fi
|
|
.endfor
|
|
cd ${WRKDIR} ; ${SED} -i -e "/PLIST.lib/ r PLIST.lib" ${TMPPLIST}
|
|
@if type ccache-update-links >/dev/null 2>&1; then \
|
|
ccache-update-links -v; \
|
|
fi
|
|
|
|
.include <bsd.port.post.mk>
|