freebsd-ports/lang/gcc47/Makefile
Gerald Pfeifer 43b7459981 Replace the use of DISTFILES by DISTNAME, since we are now down to
one in all cases.

On the way, update to the 20130216 snapshot of GCC 4.7.3.
2013-02-17 14:22:56 +00:00

173 lines
4.8 KiB
Makefile

# Created by: Gerald Pfeifer <gerald@FreeBSD.org>
# $FreeBSD$
PORTNAME= gcc
PORTVERSION= 4.7.3.20130216
CATEGORIES= lang java
MASTER_SITES= ${MASTER_SITE_GCC}
MASTER_SITE_SUBDIR= snapshots/${VERSIONSTRING}
DISTNAME= gcc-${VERSIONSTRING}
MAINTAINER= gerald@FreeBSD.org
COMMENT= GNU Compiler Collection 4.7
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
# VERSIONSTRING relates to downloads, GCC_VERSION and SUFFIX to names
# of executables and directories once installed.
VERSIONSTRING= ${PORTVERSION:C/([0-9]+\.[0-9]+).*\.([0-9]+)/\1-\2/}
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 powerpc powerpc64 sparc64
USE_BINUTILS= yes
USE_BISON= build
USE_BZIP2= yes
USE_GMAKE= yes
USE_ICONV= yes
USE_PERL5_BUILD=yes
MAKE_JOBS_SAFE= yes
PATCH_WRKSRC= ${SRCDIR}
CONFIGURE_SCRIPT= ../${SRCDIR:S/${WRKDIR}\///}/configure
OPTIONS_DEFINE_i386= JAVA
OPTIONS_DEFINE_amd64= JAVA
OPTIONS_DEFAULT_i386= JAVA
OPTIONS_DEFAULT_amd64= JAVA
.include <bsd.port.pre.mk>
.if ${ARCH} == "amd64"
CONFIGURE_TARGET= x86_64-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.endif
.if ${ARCH} == powerpc64
CONFIGURE_ENV+= UNAME_m="powerpc64"
.endif
LANGUAGES:= c,c++,objc,fortran
SRCDIR= ${WRKDIR}/gcc-${VERSIONSTRING}
WRKSRC= ${WRKDIR}/build
TARGLIB= ${PREFIX}/lib/gcc${SUFFIX}
LIBEXEC= ${PREFIX}/libexec/gcc${SUFFIX}
GNU_CONFIGURE= yes
CFLAGS+= -I${LOCALBASE}/include
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 \
--with-libiconv-prefix=${LOCALBASE} \
--with-pkgversion="FreeBSD Ports Collection" \
--with-system-zlib
MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
ALL_TARGET= bootstrap-lean
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
.if ${ARCH} == "i386" || ${ARCH} == "amd64" || ${ARCH} == "alpha"
INFO+= gcc${SUFFIX}/libquadmath \
gcc${SUFFIX}/libitm
.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>