aboutsummaryrefslogtreecommitdiffstats
path: root/lang
diff options
context:
space:
mode:
Diffstat (limited to 'lang')
-rw-r--r--lang/gdc/Makefile54
-rw-r--r--lang/gdc/distinfo21
-rw-r--r--lang/gdc/files/patch-gcc__d__phobos__config__gen_unix.c14
-rw-r--r--lang/gdc/pkg-plist2
4 files changed, 75 insertions, 16 deletions
diff --git a/lang/gdc/Makefile b/lang/gdc/Makefile
index 68d8d0246556..4e23af64ced1 100644
--- a/lang/gdc/Makefile
+++ b/lang/gdc/Makefile
@@ -6,7 +6,7 @@
#
PORTNAME= gdc
-PORTVERSION= 0.16
+PORTVERSION= 0.17
CATEGORIES= lang
MASTER_SITES= ${MASTER_SITE_GCC} \
http://home.earthlink.net/~dvdfrdmn/d/:gdc
@@ -22,11 +22,13 @@ ONLY_FOR_ARCHS= i386
USE_BISON= yes
USE_BZIP2= yes
-USE_GCC= 3.4
USE_GMAKE= yes
+USE_PERL5_BUILD=yes
USE_REINPLACE= yes
-WRKSRC= ${WRKDIR}/gcc-${GCC_VERSIONSTRING}
+SRCDIR= ${WRKDIR}/gcc-${GCC_VERSIONSTRING}
+WRKSRC= ${WRKDIR}/build
+PATCH_WRKSRC= ${SRCDIR}
GNU_CONFIGURE= yes
CONFIGURE_ARGS+=--disable-nls \
@@ -34,32 +36,59 @@ CONFIGURE_ARGS+=--disable-nls \
--with-libiconv-prefix=${LOCALBASE} \
--disable-shared \
--enable-languages=c,c++,d
+CONFIGURE_SCRIPT= ../${SRCDIR:C/${WRKDIR}\///}/configure
PLIST_SUB= GCC_VER=${GCC_VERSION} CONF_TARGET=${CONFIGURE_TARGET}
MAN1= gdc.1
-GCCDIR= ${WRKSRC}/gcc
+.ifndef TARGET_GCC
+TARGET_GCC= 3.4 # default
+.elif ${TARGET_GCC} != 3.4 && ${TARGET_GCC} != 4.0
+.error it cannot be specified as TARGET_GCC other than 3.4 or 4.0
+.endif
+
+.if ${TARGET_GCC} == 4.0
+GCC_VERSION= 4.0.3
+GCC_REVISION= 20051201
+GCC_VERSIONSTRING= 4.0-${GCC_REVISION}
+.else
GCC_VERSION= 3.4.5
-GCC_REVISION= 20050920
+GCC_REVISION= 20051122
GCC_VERSIONSTRING= 3.4-${GCC_REVISION}
+.endif
+
+GCCDIR= ${SRCDIR}/gcc
GDC_INC= ${PREFIX}/include/d/${GCC_VERSION}
.include <bsd.port.pre.mk>
-.if ${OSVERSION} < 500000
-IGNORE= It is supported on FreeBSD 5.x and later.
+.if ${OSVERSION} < 500039
+# GDC required g++ version on the system of 3.x 4.0.1 and later.
+IGNORE= it is supported on FreeBSD 5.x and later
.endif
.if ${ARCH} == "amd64"
+# I hope the GDC will support amd64.
CONFIGURE_TARGET= x86_64-portbld-freebsd${OSREL}
.endif
+pre-fetch:
+ @${ECHO_CMD}
+ @${ECHO_CMD} "======================================================="
+ @${ECHO_CMD}
+ @${ECHO_CMD} "GDC is built with GCC version '${TARGET_GCC}'."
+ @${ECHO_CMD}
+ @${ECHO_CMD} "You can set 'TARGET_GCC' variable to '3.4' or '4.0'."
+ @${ECHO_CMD}
+ @${ECHO_CMD} "======================================================="
+ @${ECHO_CMD}
+
post-extract:
@${MV} ${WRKDIR}/d ${GCCDIR}
post-patch:
- @(cd ${WRKSRC} && ${SH} ./gcc/d/setup-gcc.sh)
+ @(cd ${SRCDIR} && ${SH} ./gcc/d/setup-gcc.sh)
@${REINPLACE_CMD} -e \
's|\(const char version_string.*\)";|\1 [FreeBSD]";|' \
${GCCDIR}/version.c
@@ -67,6 +96,11 @@ post-patch:
's|^\(gcc_d_include_dir\).*|\1 = ${GDC_INC}|' \
${GCCDIR}/d/Make-lang.in
+pre-configure:
+ @(cd ${SRCDIR} ; contrib/gcc_update --touch)
+ @${RM} -f ${SRCDIR}/gcc/*/*.info*
+ @${MKDIR} ${CONFIGURE_WRKSRC}
+
post-build:
@${ECHO_CMD}
@${ECHO_CMD} "======================================================="
@@ -79,8 +113,8 @@ post-build:
@${ECHO_CMD}
do-install:
- ${INSTALL_PROGRAM} ${GCCDIR}/gdc ${PREFIX}/bin
- ${INSTALL_PROGRAM} ${GCCDIR}/cc1d ${PREFIX}/bin
+ ${INSTALL_PROGRAM} ${WRKSRC}/gcc/gdc ${PREFIX}/bin
+ ${INSTALL_PROGRAM} ${WRKSRC}/gcc/cc1d ${PREFIX}/bin
${INSTALL_MAN} ${GCCDIR}/d/gdc.1 ${PREFIX}/man/man1
@(cd ${WRKSRC} && ${GMAKE} install-target-libphobos)
diff --git a/lang/gdc/distinfo b/lang/gdc/distinfo
index cae2e47f7a70..8b4b781eec41 100644
--- a/lang/gdc/distinfo
+++ b/lang/gdc/distinfo
@@ -1,6 +1,15 @@
-MD5 (gdc-0.16.tar.bz2) = 8591f5244088825573bbcff9aea1e1f3
-SIZE (gdc-0.16.tar.bz2) = 924218
-MD5 (gcc-core-3.4-20050920.tar.bz2) = d1323b6dc41d28f67b724823fc7244ca
-SIZE (gcc-core-3.4-20050920.tar.bz2) = 11115747
-MD5 (gcc-g++-3.4-20050920.tar.bz2) = 6640e827ec158e2df44d4ae58b771765
-SIZE (gcc-g++-3.4-20050920.tar.bz2) = 2480879
+MD5 (gdc-0.17.tar.bz2) = 4e8cccc0d416cb6d7e5bd043901dcedb
+SHA256 (gdc-0.17.tar.bz2) = 85e426fde257767c82bdade6d63480b8a0b5b15afceee410db178fbbf6157833
+SIZE (gdc-0.17.tar.bz2) = 931385
+MD5 (gcc-core-3.4-20051122.tar.bz2) = c4f761455ed52bd3155d27a31a769a43
+SHA256 (gcc-core-3.4-20051122.tar.bz2) = 56af77864024197f9e76373bb2401bde850fd3138d98a5942cbbf6fc5231375b
+SIZE (gcc-core-3.4-20051122.tar.bz2) = 11378875
+MD5 (gcc-g++-3.4-20051122.tar.bz2) = f9e8bad717ed5c3645c01830ca9cf448
+SHA256 (gcc-g++-3.4-20051122.tar.bz2) = 1f28c15207cf95d47d633b25e8bac3bc46c77d4c07dd94bce5505ec591b1c594
+SIZE (gcc-g++-3.4-20051122.tar.bz2) = 2557604
+MD5 (gcc-core-4.0-20051201.tar.bz2) = ce8d5872396d1aefd2b471208ad70d32
+SHA256 (gcc-core-4.0-20051201.tar.bz2) = d22fae731f303c8c001cc740d0d582e6fef1991b326de167b372fdcbb1e53a47
+SIZE (gcc-core-4.0-20051201.tar.bz2) = 13774989
+MD5 (gcc-g++-4.0-20051201.tar.bz2) = 93978791ac7e7b300182f0eac40d426c
+SHA256 (gcc-g++-4.0-20051201.tar.bz2) = f88e5f34e1ba502c0b9f2998c0f76e6626df838a51417f9fe14a8a974123b08c
+SIZE (gcc-g++-4.0-20051201.tar.bz2) = 2705481
diff --git a/lang/gdc/files/patch-gcc__d__phobos__config__gen_unix.c b/lang/gdc/files/patch-gcc__d__phobos__config__gen_unix.c
new file mode 100644
index 000000000000..748aacdd2f52
--- /dev/null
+++ b/lang/gdc/files/patch-gcc__d__phobos__config__gen_unix.c
@@ -0,0 +1,14 @@
+--- gcc/d/phobos/config/gen_unix.c.orig Sun Dec 4 17:51:01 2005
++++ gcc/d/phobos/config/gen_unix.c Sun Dec 4 17:51:42 2005
+@@ -115,7 +115,11 @@
+ finish_struct(fi, 2, sizeof(rec), "timezone");
+ }
+ {
++#ifdef HAVE_TM_GMTOFF_AND_ZONE
++ FieldInfo fi[11];
++#else
+ FieldInfo fi[9];
++#endif
+ unsigned n;
+ struct tm rec;
+ INT_FIELD(fi[0], tm_sec);
diff --git a/lang/gdc/pkg-plist b/lang/gdc/pkg-plist
index 2687f0a0a7f9..5ab327f038c0 100644
--- a/lang/gdc/pkg-plist
+++ b/lang/gdc/pkg-plist
@@ -79,6 +79,7 @@ include/d/%%GCC_VER%%/std/cstream.d
include/d/%%GCC_VER%%/std/ctype.d
include/d/%%GCC_VER%%/std/date.d
include/d/%%GCC_VER%%/std/dateparse.d
+include/d/%%GCC_VER%%/std/demangle.d
include/d/%%GCC_VER%%/std/file.d
include/d/%%GCC_VER%%/std/format.d
include/d/%%GCC_VER%%/std/gc.d
@@ -177,6 +178,7 @@ include/d/%%GCC_VER%%/std/typeinfo/ti_ulong.d
include/d/%%GCC_VER%%/std/typeinfo/ti_ushort.d
include/d/%%GCC_VER%%/std/typeinfo/ti_void.d
include/d/%%GCC_VER%%/std/typeinfo/ti_wchar.d
+include/d/%%GCC_VER%%/std/windows/charset.d
include/d/%%GCC_VER%%/std/windows/iunknown.d
include/d/%%GCC_VER%%/std/windows/registry.d
include/d/%%GCC_VER%%/std/windows/syserror.d