aboutsummaryrefslogtreecommitdiffstats
path: root/devel/mingw32-gcc/Makefile
blob: cc23fc10798e0e1e13cfe183f0e412e1efd6163e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# New ports collection makefile for:    mingw32-gcc
# Date created:     24 October 2002
# Whom:         Lev Serebryakov <lev@serebryakov.spb.ru>
#
# $FreeBSD$
#

PORTNAME=   gcc
PORTVERSION=    ${GCCVERSION}.${PATCHVERSION}
PORTEPOCH=  1
PORTREVISION=   1
CATEGORIES= devel
MASTER_SITES=   ${MASTER_SITE_SOURCEFORGE}
#MASTER_SITES=  ${MASTER_SITE_SOURCEWARE}
MASTER_SITE_SUBDIR= mingw
#MASTER_SITE_SUBDIR=    ${PORTNAME}/releases/${PORTNAME}-${GCCVERSION}
PKGNAMEPREFIX=  mingw32-
DISTFILES=  ${PORTNAME}-core-${GCCVERSION}-${PATCHVERSION:S/./-/g}-src${EXTRACT_SUFX} \
        ${PORTNAME}-g++-${GCCVERSION}-${PATCHVERSION:S/./-/g}-src${EXTRACT_SUFX} \
        ${PORTNAME}-objc-${GCCVERSION}-${PATCHVERSION:S/./-/g}-src${EXTRACT_SUFX} \
        ${PORTNAME}-g77-${GCCVERSION}-${PATCHVERSION:S/./-/g}-src${EXTRACT_SUFX} \
        ${PORTNAME}-ada-${GCCVERSION}-${PATCHVERSION:S/./-/g}-src${EXTRACT_SUFX} \
        ${PORTNAME}-java-${GCCVERSION}-${PATCHVERSION:S/./-/g}-src${EXTRACT_SUFX}
#DISTFILES= ${PORTNAME}-core-${GCCVERSION}${EXTRACT_SUFX} \
#       ${PORTNAME}-g++-${GCCVERSION}${EXTRACT_SUFX}  \
#       ${PORTNAME}-objc-${GCCVERSION}${EXTRACT_SUFX} \
#       ${PORTNAME}-g77-${GCCVERSION}${EXTRACT_SUFX} \
#       ${PORTNAME}-ada-${GCCVERSION}${EXTRACT_SUFX} \
#       ${PORTNAME}-java-${GCCVERSION}${EXTRACT_SUFX} \
#       ${PORTNAME}-testsuite-${GCCVERSION}${EXTRACT_SUFX}

# No pathes for this release
#PATCH_SITES=   ${MASTER_SITE_SOURCEFORGE}
# Special hack: I don't use SITE_SUBDIR & DIST_SUBDIR, and only pathces
#               will be placed to subdirectory
#               It allows to use main gcc sources from other ports.
#PATCHFILES=    mingw/${PORTNAME}-${GCCVERSION}-${PATCHVERSION:S/./-/}-src.diff.gz
# Skip patching of bohem-gc, it is bug of patch's authors
#PATCH_DIST_STRIP=  -p1

MAINTAINER= lev@FreeBSD.org
COMMENT=    FSF gcc-3.4 for Windows cross-development

BUILD_DEPENDS=  ${PKGNAMEPREFIX}as:${PORTSDIR}/devel/${PKGNAMEPREFIX}binutils \
        mingwm10.dll:${PORTSDIR}/devel/mingw32-bin-msvcrt
RUN_DEPENDS=    ${PKGNAMEPREFIX}as:${PORTSDIR}/devel/${PKGNAMEPREFIX}binutils

GCCVERSION= 3.4.5
PATCHVERSION=   20060117.1

WRKSRC=     ${WRKDIR}/${PORTNAME}-${GCCVERSION}-${PATCHVERSION:S/./-/g}

#USE_BZIP2= yes
USE_PERL5_BUILD=yes
USE_GMAKE=  yes
GNU_CONFIGURE=  yes
USE_ICONV=  yes
CONFIGURE_ARGS= --target=${PKGNAMEPREFIX:S/-$//} \
        --enable-languages=c,c++,f77,objc,java \
        --with-gcc --with-gnu-ld --with-gnu-as \
        --enable-threads --disable-nls \
        --disable-win32-registry --disable-shared \
        --enable-sjlj-exceptions --enable-libgcj \
        --disable-java-awt --without-x \
        --enable-java-gc=boehm --disable-libgcj-debug \
        --enable-interpreter --enable-hash-synchronization \
        --without-newlib \
        --with-gxx-include-dir=${PREFIX}/${PKGNAMEPREFIX:S/-$//}/include/c++/${GCCVERSION} \
        --infodir=${PREFIX}/${PKGNAMEPREFIX:S/-$//}/info \
        --includedir=${PREFIX}/${PKGNAMEPREFIX:S/-$//}/include \
        --datadir=${PREFIX}/${PKGNAMEPREFIX:S/-$//}/share
MAKE_ENV=   PATH=${PREFIX}/bin:${PATH}
LIBTOOLFILES=   configure gcc/configure
MAN1=       ${PKGNAMEPREFIX}gcc.1 ${PKGNAMEPREFIX}g++.1 ${PKGNAMEPREFIX}g77.1 \
        ${PKGNAMEPREFIX}gcj.1 ${PKGNAMEPREFIX}grepjar.1 ${PKGNAMEPREFIX}jar.1 \
        ${PKGNAMEPREFIX}cpp.1 ${PKGNAMEPREFIX}gcov.1 ${PKGNAMEPREFIX}jcf-dump.1 \
        ${PKGNAMEPREFIX}jv-convert.1 ${PKGNAMEPREFIX}jv-scan.1 ${PKGNAMEPREFIX}rmic.1 \
        ${PKGNAMEPREFIX}rmiregistry.1 ${PKGNAMEPREFIX}gcjh.1 ${PKGNAMEPREFIX}gij.1

PLIST_SUB+= PORTVERSION=${PORTVERSION} GCC_TARG=${PKGNAMEPREFIX:S/-$//} \
        GCC_REV=${GCCVERSION}

INFO=       cpp cppinternals g77 gcc gccinstall gccint gcj
INFO_PATH=  ${PKGNAMEPREFIX:S/-$//}/info

BINARIES=   gcc cpp g++ g77 gcov gcj gcjh jcf-dump jv-scan grepjar jar

.if exists(${LOCALBASE}/lib/libiconv.so.3)
WITH_LIBICONV=  yes
.endif

.if defined(WITH_LIBICONV)
USE_ICONV=  yes
CONFIGURE_ARGS+=    --with-libiconv-prefix=${LOCALBASE}
.endif

.include <bsd.port.pre.mk>

.if ${ARCH} == "alpha"
BROKEN=     "C++ could not be compiled on Alphas"
.endif

post-configure:
    @${PERL} -pi.bak -e 's,^(TARGET_CONFIGDIRS\s*=\s*).+$$,\1libstdc++-v3 libf2c libobjc mingw,' ${WRKSRC}/Makefile
    @${PERL} -pi.bak -e 's,^(install-info:),\1\ndonot-\1,' ${WRKSRC}/gcc/Makefile

post-install:
.for F in ${BINARIES}
    @${LN} -f ${PREFIX}/bin/${PKGNAMEPREFIX}$F \
        ${PREFIX}/${PKGNAMEPREFIX:S/-$//}/bin/$F
.endfor

.include <bsd.port.post.mk>