[60290] trunk/dports/lang/g95

takeshi at macports.org takeshi at macports.org
Sun Nov 8 05:44:42 PST 2009


Revision: 60290
          http://trac.macports.org/changeset/60290
Author:   takeshi at macports.org
Date:     2009-11-08 05:44:39 -0800 (Sun, 08 Nov 2009)
Log Message:
-----------
g95: Updated for Snow Leopard (links to gcc-4.2.4, defalut_variants gcc42). Variant gcc42 works on Intel Mac but PPC Mac

Modified Paths:
--------------
    trunk/dports/lang/g95/Portfile
    trunk/dports/lang/g95/files/patch-Makefile.in.diff

Added Paths:
-----------
    trunk/dports/lang/g95/files/patch-darwin.h.diff
    trunk/dports/lang/g95/files/patch-gcc.c.diff
    trunk/dports/lang/g95/files/patch-lang.opt.diff

Modified: trunk/dports/lang/g95/Portfile
===================================================================
--- trunk/dports/lang/g95/Portfile	2009-11-08 10:54:20 UTC (rev 60289)
+++ trunk/dports/lang/g95/Portfile	2009-11-08 13:44:39 UTC (rev 60290)
@@ -5,7 +5,7 @@
 
 name            g95
 version         0.91
-revision        1
+revision        2
 platforms       darwin
 categories      lang
 maintainers     takeshi
@@ -19,11 +19,21 @@
 master_sites    ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.0.4/:gcc \
                 http://ftp.g95.org/v${version}/:g95
 
-set version_gcc 4.0.4
+if {[variant_isset gcc42] || (${os.platform}=="darwin" && ${os.major}>=10)} {
+    set version_gcc 4.2.4
+    dist_subdir     gcc42
+    array set barch {ppc powerpc ppc64 powerpc64 i386 i386 x86_64 x86_64}
+    set triple      $barch(${build_arch})-apple-darwin${os.major}
+} else {
+    set version_gcc 4.0.4
+    dist_subdir     gcc40
+    set triple      ${os.arch}-apple-darwin${os.major}
+}
+set buildhost   "--build=${triple} --host=${triple}"
+
 set dcore       gcc-core-${version_gcc}.tar.bz2
-dist_subdir     gcc40
 set dg95        ${name}_source.tgz
-set gcclib      lib/gcc-lib/${os.arch}-apple-${os.platform}${os.version}/${version_gcc}
+set gcclib      lib/${name}/${triple}/${version_gcc}
 distfiles       ${dcore}:gcc ${dg95}:g95
 
 checksums       ${dcore} md5    193e0a7a471cca70e374974bc5a60137         \
@@ -33,6 +43,8 @@
                 ${dg95}  sha1   aa58510c04e357439a4bf34c54d380e9079395d5 \
                 ${dg95}  rmd160 f0a8325c0e930d69d2def16eaa3c6c21dfd2b5a8
 
+depends_lib     port:libtool port:libiconv
+
 patchfiles      patch-Makefile.in.diff \
                 patch-host-darwin.c.diff \
                 patch-darwin-fallback.c.diff
@@ -46,9 +58,15 @@
 }
 
 post-extract {
-    system "tar jxvf ${distpath}/${dcore} -C ${workpath}"
+    system "tar jxvf ${distpath}/${dcore} -C ${workpath}; \
+            cd ${worksrcpath}; tar zxvf libf95.a-${version}.tar.gz"
 }
 
+post-patch {
+    reinplace "s|gcc-lib|$name|" ${worksrcpath}/configure
+    reinplace "s|gcc-lib|$name|" ${worksrcpath}/libf95.a-${version}/configure
+}
+
 pre-configure {
     file mkdir ${workpath}/gcc-${version_gcc}/${name}
     reinplace "s|tjmp %%edx|tjmp *%%edx|" ${workpath}/gcc-${version_gcc}/gcc/config/i386/i386.c
@@ -59,41 +77,44 @@
         reinplace "s|/usr/bin/libtool|${prefix}/bin/odlibtool|" ${workpath}/gcc-${version_gcc}/gcc/config/darwin.h
         set gcc_configargs "--with-as=${prefix}/bin/odas --with-ld=${prefix}/bin/odld --with-nm=${prefix}/bin/odnm"
     }
-    system "unset CPPFLAGS; unset LDFLAGS; \
-            export CPPFLAGS=-I${prefix}/include; \
+    system "export CPPFLAGS=\"${configure.cppflags}\"; \
+            export CFLAGS=\"${configure.cflags}\"; \
+            export LDFLAGS=\"${configure.ldflags}\"; \
             cd ${workpath}/gcc-${version_gcc}/${name}; \
-            ../configure --prefix=${prefix}/${gcclib} --with-libiconv-prefix=${prefix}/include \
-            --enable-languages=c ${gcc_configargs} --with-included-gettext; \
+            ../configure --prefix=${prefix}/${gcclib} \
+                         --enable-languages=c \
+                         --with-included-gettext \
+                         --with-libiconv=${prefix} \
+                         --libdir=${prefix}/lib/${name} \
+                         ${gcc_configargs} ${buildhost}; \
             make"
+    if {[variant_isset gcc42]} {
+        system "cd ${workpath}/gcc-${version_gcc}/${name}/gcc; \
+                ar d libbackend.a options.o; \
+                cd ${workpath}/gcc-${version_gcc}/gcc/; \
+                patch -p0 < ${portpath}/files/patch-gcc.c.diff" 
+    }
 }
 
-configure.args  --with-gcc-dir=${workpath}/gcc-${version_gcc}
+configure.args  --with-gcc-dir=${workpath}/gcc-${version_gcc} ${buildhost}
 
 post-build {
-    system "cd ${worksrcpath}; tar zxvf libf95.a-${version}.tar.gz; \
-           cd libf95.a-${version}; \
-           export CFLAGS='-O2 -fno-common'; \
-           ./configure --prefix=${prefix}; \
+    system "cd ${worksrcpath}/libf95.a-${version}; \
+           export CFLAGS=${configure.cflags}; \
+           ./configure --prefix=${prefix} ${buildhost}; \
            make"
 }
 
-pre-destroot {
-    reinplace "s|${prefix}/${gcclib}|${destroot}${prefix}/${gcclib}|g" ${worksrcpath}/Makefile
-    reinplace "s|${prefix}/${gcclib}|${destroot}${prefix}/${gcclib}|g" ${worksrcpath}/libf95.a-${version}/Makefile
-}
-
-destroot {
-    system "cd ${worksrcpath}; \
-           make install prefix=${destroot}${prefix}; \
-           cd libf95.a-${version}; \
-           make install prefix=${destroot}${prefix}; \
-           ranlib ${destroot}${prefix}/${gcclib}/libf95.a; \
-           ranlib ${destroot}${prefix}/${gcclib}/libgcc.a; \
-           ranlib ${destroot}${prefix}/${gcclib}/libgcc_eh.a"
-    file mkdir ${destroot}${prefix}/share/doc/${name}
-    file rename ${destroot}${prefix}/G95Manual.pdf ${destroot}${prefix}/share/doc/${name}
+post-destroot {
+    system "cd ${worksrcpath}/libf95.a-${version}; \
+            make install DESTDIR=${destroot}; \
+            ranlib ${destroot}${prefix}/${gcclib}/libf95.a; \
+            ranlib ${destroot}${prefix}/${gcclib}/libgcc.a; \
+            ranlib ${destroot}${prefix}/${gcclib}/libgcc_eh.a"
+    xinstall -d ${destroot}${prefix}/share/doc/${name}
+    xinstall -m 644 ${worksrcpath}/G95Manual.pdf ${destroot}${prefix}/share/doc/${name}
     system "ln -sf ${prefix}/${gcclib}/libf95.a ${destroot}${prefix}/lib/libf95.a"
-    file mkdir ${destroot}${prefix}/${gcclib}/lib
+    xinstall -d ${destroot}${prefix}/${gcclib}/lib
     system "ln -sf ${prefix}/${gcclib}/libgcc_s.1.0.dylib ${destroot}${prefix}/${gcclib}/lib/libgcc_s.1.0.dylib"
     system "ln -sf ${prefix}/${gcclib}/libgcc_s.1.0.dylib ${destroot}${prefix}/${gcclib}/lib/libgcc_s.dylib"
 }
@@ -102,3 +123,29 @@
     patchfiles-delete patch-host-darwin.c.diff patch-darwin-fallback.c.diff
     depends_lib-append port:odcctools
 }
+
+platform darwin 10 {}
+if {[variant_isset darwin_10]} {
+    default_variants +gcc42
+}
+
+variant gcc42 description {link against gcc42} {
+    master_sites-delete ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.0.4/:gcc
+    master_sites-append ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.2.4/:gcc
+    checksums-delete    ${dcore} md5    193e0a7a471cca70e374974bc5a60137         \
+                        ${dcore} sha1   55c664b33a4dc6b2130c47da28a1d6daab732ce9 \
+                        ${dcore} rmd160 af67dc8385942450f6b27ad83a6b9e3d22f779a1
+    checksums-append    ${dcore} md5     b7a4c167f6a05301591b139b356e36d0 \
+                        ${dcore} sha1    540fa6949415ded321a7cbe80bbf8befe85e3566 \
+                        ${dcore} rmd160  d54581d0a2ecc22718e6be101c6dc524a4a88463
+    patchfiles-append   patch-lang.opt.diff patch-darwin.h.diff
+    patchfiles-delete   patch-host-darwin.c.diff patch-darwin-fallback.c.diff
+
+    post-configure {
+        reinplace "s|\(f951_LDADD\)|(f951_LDADD) ${workpath}/gcc-${version_gcc}/g95/libdecnumber/*.o|" ${worksrcpath}/Makefile
+    }
+
+    pre-build {
+        reinplace "s|\(g95_LDADD\)|(g95_LDADD) ${workpath}/gcc-${version_gcc}/g95/gcc/driver-i386.o|" ${worksrcpath}/Makefile
+    }
+}

Modified: trunk/dports/lang/g95/files/patch-Makefile.in.diff
===================================================================
--- trunk/dports/lang/g95/files/patch-Makefile.in.diff	2009-11-08 10:54:20 UTC (rev 60289)
+++ trunk/dports/lang/g95/files/patch-Makefile.in.diff	2009-11-08 13:44:39 UTC (rev 60290)
@@ -1,24 +1,55 @@
---- Makefile.in.orig	2007-03-02 15:15:24.000000000 +0900
-+++ Makefile.in	2007-03-02 15:53:28.000000000 +0900
-@@ -2589,7 +2589,6 @@
+--- Makefile.in.orig	2009-11-05 16:53:58.000000000 +0900
++++ Makefile.in	2009-11-05 16:55:16.000000000 +0900
+@@ -272,7 +272,9 @@
+ @GCC_TRUE at f951_LDADD = @GCC_DIR@/g95/gcc/main.o @GCC_DIR@/g95/gcc/libbackend.a	\
+ @GCC_TRUE@             @GCC_DIR@/g95/libcpp/libcpp.a				\
+ @GCC_TRUE@	     @GCC_DIR@/g95/libiberty/libiberty.a			\
+- at GCC_TRUE@             options.o opts.o version.o ggc-page.o @LDADD0@
++ at GCC_TRUE@             options.o opts.o version.o ggc-page.o \
++ at GCC_DIR@/g95/gcc/libbackend.a	\
++ at LDADD0@
  
+ @GCC_FALSE at g95_SOURCES = arith.c array.c bbt.c bigint.c bigreal.c check.c decl.c	\
+ @GCC_FALSE at dump.c entry.c error.c expr.c forall.c format.c g95.h imodule.c		\
+@@ -1257,7 +1259,6 @@
+ 
  install-exec-am: install-binPROGRAMS
  	@$(NORMAL_INSTALL)
 -	$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
  
- install-info: install-info-am
+ install-html: install-html-am
  
-@@ -2653,13 +2652,9 @@
+@@ -1332,27 +1333,22 @@
+ 	mv $(bindir)/g95$(EXEEXT) $(bindir)/$(host)-g95$(EXEEXT)
+ 
  install-data-hook:
- 	-ln -sf f951$(EXEEXT) @DEST_LIBDIR@/cc1
+-	-ln -sf f951$(EXEEXT) @DEST_LIBDIR@/cc1
++	-ln -sf f951$(EXEEXT) $(DESTDIR)@DEST_LIBDIR@/cc1
  	if test "`uname`" = "Darwin" ; then \
 -	  ar x /usr/lib/libgcc.a darwin-fpsave.o ; \
 -	  ar rs @DEST_LIBDIR@/libgcc.a darwin-fpsave.o ; \
 -	  rm ./darwin-fpsave.o ; \
- 	  ranlib @DEST_LIBDIR@/libgcc_eh.a ; \
- 	  ranlib @DEST_LIBDIR@/libgcc.a ; \
+-	  ranlib @DEST_LIBDIR@/libgcc_eh.a ; \
+-	  ranlib @DEST_LIBDIR@/libgcc.a ; \
++	  ranlib $(DESTDIR)@DEST_LIBDIR@/libgcc_eh.a ; \
++	  ranlib $(DESTDIR)@DEST_LIBDIR@/libgcc.a ; \
  	fi
 -	cp INSTALL @DEST_LIBDIR@/../../../..
- 	cp G95Manual.pdf @DEST_LIBDIR@/../../../..
+-	cp G95Manual.pdf @DEST_LIBDIR@/../../../..
  	if test -n "`ls @GCC_DIR@/g95/gcc/libgcc_s.*`" ; then \
  	   (cd @GCC_DIR@/g95/gcc; tar cf - libgcc_s.*) | \
+-           (cd @DEST_LIBDIR@; tar xf -) ; \
++           (cd $(DESTDIR)@DEST_LIBDIR@; tar xf -) ; \
+ 	fi
+ 	if test -n "`ls @GCC_DIR@/g95/gcc/libunwind.*`" ; then \
+ 	   (cd @GCC_DIR@/g95/gcc; tar cf - libunwind.*) | \
+-	   (cd @DEST_LIBDIR@; tar xf -) ; \
++	   (cd $(DESTDIR)@DEST_LIBDIR@; tar xf -) ; \
+ 	fi
+ 	if test -n "`ls @GCC_DIR@/g95/gcc/libgcc_eh.*`" ; then \
+ 	   (cd @GCC_DIR@/g95/gcc; tar cf - libgcc_eh.*) | \
+-	   (cd @DEST_LIBDIR@; tar xf -) ; \
++	   (cd $(DESTDIR)@DEST_LIBDIR@; tar xf -) ; \
+ 	fi
+ 
+ ggc-page.o: ggc-page40.c ggc-page41.c

Added: trunk/dports/lang/g95/files/patch-darwin.h.diff
===================================================================
--- trunk/dports/lang/g95/files/patch-darwin.h.diff	                        (rev 0)
+++ trunk/dports/lang/g95/files/patch-darwin.h.diff	2009-11-08 13:44:39 UTC (rev 60290)
@@ -0,0 +1,16 @@
+--- ../gcc-4.2.4/gcc/config/darwin.h.orig	2009-10-27 21:51:57.000000000 +0900
++++ ../gcc-4.2.4/gcc/config/darwin.h	2009-10-27 21:53:42.000000000 +0900
+@@ -237,12 +237,7 @@
+     %{!nostdlib:%{!nodefaultlibs:%(link_ssp) %G %L}} \
+     %{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} %{F*} }}}}}}}}"
+ 
+-#ifdef TARGET_SYSTEM_ROOT
+-#define LINK_SYSROOT_SPEC \
+-  "%{isysroot*:-syslibroot %*;:-syslibroot " TARGET_SYSTEM_ROOT "}"
+-#else
+-#define LINK_SYSROOT_SPEC "%{isysroot*:-syslibroot %*}"
+-#endif
++#define LINK_SYSROOT_SPEC ""
+ 
+ /* Please keep the random linker options in alphabetical order (modulo
+    'Z' and 'no' prefixes).  Options that can only go to one of libtool

Added: trunk/dports/lang/g95/files/patch-gcc.c.diff
===================================================================
--- trunk/dports/lang/g95/files/patch-gcc.c.diff	                        (rev 0)
+++ trunk/dports/lang/g95/files/patch-gcc.c.diff	2009-11-08 13:44:39 UTC (rev 60290)
@@ -0,0 +1,20 @@
+--- gcc.c.orig	2009-10-27 22:53:00.000000000 +0900
++++ gcc.c	2009-10-27 22:59:17.000000000 +0900
+@@ -107,6 +107,8 @@
+ #define TARGET_OBJECT_SUFFIX ".o"
+ #endif
+ 
++int target_flags;
++
+ static const char dir_separator_str[] = { DIR_SEPARATOR, 0 };
+ 
+ /* Most every one is fine with LIBRARY_PATH.  For some, it conflicts.  */
+@@ -6095,8 +6097,6 @@
+ 
+   expandargv (&argc, &argv);
+ 
+-  prune_options (&argc, &argv);
+-
+ #ifdef GCC_DRIVER_HOST_INITIALIZATION
+   /* Perform host dependent initialization when needed.  */
+   GCC_DRIVER_HOST_INITIALIZATION;

Added: trunk/dports/lang/g95/files/patch-lang.opt.diff
===================================================================
--- trunk/dports/lang/g95/files/patch-lang.opt.diff	                        (rev 0)
+++ trunk/dports/lang/g95/files/patch-lang.opt.diff	2009-11-08 13:44:39 UTC (rev 60290)
@@ -0,0 +1,10 @@
+--- /Users/takeshi/g95-0.91-apple/lang.opt	2007-11-13 13:44:39.000000000 +0900
++++ lang.opt	2009-10-25 17:53:11.000000000 +0900
+@@ -319,3 +319,7 @@
+ Wunset-vars
+ F95
+ Warn about unset variable
++
++fopenmp
++F95 Var(flag_openmp)
++Enable OpenMP
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20091108/54bbfdac/attachment.html>


More information about the macports-changes mailing list