Revision: 75884 http://trac.macports.org/changeset/75884 Author: ryandesign@macports.org Date: 2011-02-11 15:45:20 -0800 (Fri, 11 Feb 2011) Log Message: ----------- nu: update to 0.4.0 (fixes build failure reported in #24013); now use MacPorts libffi and libedit; dynamically link to pcre; ensure we're UsingTheRightCompiler and arch and sdk; indicate license Modified Paths: -------------- trunk/dports/devel/nu/Portfile Added Paths: ----------- trunk/dports/devel/nu/files/patch-Makefile.diff trunk/dports/devel/nu/files/patch-Nukefile.diff Removed Paths: ------------- trunk/dports/devel/nu/files/patch-Nukefile trunk/dports/devel/nu/files/patch-libffi-single-arch Modified: trunk/dports/devel/nu/Portfile =================================================================== --- trunk/dports/devel/nu/Portfile 2011-02-11 23:07:51 UTC (rev 75883) +++ trunk/dports/devel/nu/Portfile 2011-02-11 23:45:20 UTC (rev 75884) @@ -3,9 +3,11 @@ PortSystem 1.0 name nu -version 0.3.3 +version 0.4.0 categories devel maintainers nomaintainer +license Apache-2.0 + description Nu is an interpreted object-oriented lisp-like language written in Objective-C. long_description \ Nu is an interpreted object-oriented language. \ @@ -21,14 +23,18 @@ distname Nu-${version} extract.suffix .tgz -checksums md5 45eabf715d3c09b41b5b07c9c93c0a7e \ - sha1 c00a2bbc039c438eeb0b16abf4a5f4379a3c48ff +checksums sha1 02e0df424f18a6c6c3c3221699014018cabcd8bc \ + rmd160 31aa22c7a4dddd1135a55f6bdaf27b1f485ded43 -patchfiles patch-libffi-single-arch patch-Nukefile +patchfiles patch-Makefile.diff patch-Nukefile.diff -depends_build port:pcre bin:rake:rb-rake +depends_build port:pkgconfig +depends_lib port:libffi port:pcre port:libedit + use_configure no +variant universal {} + test.run yes test.cmd nuke @@ -36,36 +42,32 @@ livecheck.url http://programming.nu/downloads livecheck.regex {Nu-([\d.]+).tgz} -variant universal { - patchfiles-delete patch-libffi-single-arch - patchfiles-delete patch-Nukefile -} - post-patch { - # fix the tools - reinplace s|/usr/local|$prefix| ${worksrcpath}/tools/nubile - - # fix the examples - reinplace s|/usr/local|$prefix| ${worksrcpath}/examples/NuAnywhere/nu-anywhere + if {[variant_isset universal]} { + set archs ${configure.universal_archs} + } else { + set archs ${configure.build_arch} + } + reinplace "s|@ARCHS@|[join ${archs} {" "}]|g" ${worksrcpath}/Nukefile + reinplace "s|@CC@|${configure.cc}|g" ${worksrcpath}/Nukefile + reinplace "s|@SDKROOT@|${configure.sdkroot}|g" ${worksrcpath}/Nukefile + reinplace "s|/usr/local|${prefix}|g" \ + ${worksrcpath}/tools/nubile \ + ${worksrcpath}/examples/NuAnywhere/nu-anywhere } pre-build { - if {${os.platform} == "darwin" && ${os.major} == 8} { - ui_info "$UI_PREFIX Building libffi" - system "cd ${worksrcpath}/libffi && rake" - } + system "cd ${worksrcpath} && make PREFIX=${prefix} CC=${configure.cc}" } -build { - system "cd ${worksrcpath} && PREFIX=${prefix} rake" - system "cd ${worksrcpath} && PREFIX=${prefix} ./mininush tools/nuke" -} +build.cmd "./mininush tools/nuke" +build.target +build.env PREFIX=${prefix} pre-destroot { file mkdir ${destroot}/Library/Frameworks } -destroot.cmd "./mininush tools/nuke" -destroot.destdir "" -destroot.env-append PREFIX=${prefix} -destroot.env-append DESTDIR=${destroot} +destroot.destdir +destroot.env-append PREFIX=${prefix} \ + DESTDIR=${destroot} Added: trunk/dports/devel/nu/files/patch-Makefile.diff =================================================================== --- trunk/dports/devel/nu/files/patch-Makefile.diff (rev 0) +++ trunk/dports/devel/nu/files/patch-Makefile.diff 2011-02-11 23:45:20 UTC (rev 75884) @@ -0,0 +1,30 @@ +--- Makefile.orig 2009-11-17 19:12:00.000000000 -0600 ++++ Makefile 2011-02-11 15:06:37.000000000 -0600 +@@ -9,23 +9,16 @@ + PREFIX ?= /usr/local + + ifeq ($(SYSTEM), Darwin) +- ifeq ($(shell test -e /usr/lib/libffi.dylib && echo yes), yes) +- # Use the libffi that ships with OS X. +- FFI_LIB = -L/usr/lib -lffi +- FFI_INCLUDE = -I/usr/include/ffi ++ ifeq ($(shell test -e /Developer/SDKs/MacOSX10.5.sdk && echo yes), yes) + LEOPARD_CFLAGS = -DLEOPARD_OBJC2 + else +- # Use the libffi that is distributed with Nu. +- FFI_LIB = -L./libffi -lffi +- FFI_INCLUDE = -I./libffi/include + LEOPARD_CFLAGS = + endif +- +-else # Linux +- FFI_LIB=-lffi +- FFI_INCLUDE= + endif + ++FFI_LIB := $(shell pkg-config libffi --libs) ++FFI_INCLUDE := $(shell pkg-config libffi --cflags) ++ + INCLUDES = $(FFI_INCLUDE) -I./include + + ifeq ($(SYSTEM), Darwin) Deleted: trunk/dports/devel/nu/files/patch-Nukefile =================================================================== --- trunk/dports/devel/nu/files/patch-Nukefile 2011-02-11 23:07:51 UTC (rev 75883) +++ trunk/dports/devel/nu/files/patch-Nukefile 2011-02-11 23:45:20 UTC (rev 75884) @@ -1,11 +0,0 @@ ---- Nukefile.old 2009-04-03 21:30:32.000000000 -0700 -+++ Nukefile 2009-04-03 21:36:20.000000000 -0700 -@@ -92,7 +92,7 @@ - (then (set @arch '("ppc" "i386")))) ;; build a universal binary - - ;; or set this to just build for your chosen platform --;; (set @arch '("i386")) -+(set @arch nil) - - (ifDarwin - (then (set @ldflags Copied: trunk/dports/devel/nu/files/patch-Nukefile.diff (from rev 75873, trunk/dports/devel/nu/files/patch-Nukefile) =================================================================== --- trunk/dports/devel/nu/files/patch-Nukefile.diff (rev 0) +++ trunk/dports/devel/nu/files/patch-Nukefile.diff 2011-02-11 23:45:20 UTC (rev 75884) @@ -0,0 +1,64 @@ +--- Nukefile.orig 2011-02-11 14:53:39.000000000 -0600 ++++ Nukefile 2011-02-11 15:04:28.000000000 -0600 +@@ -52,14 +52,6 @@ + (if (NSFileManager directoryExistsNamed:"#{@prefix}/include") (@inc_dirs addObject:"#{@prefix}/include")) + (if (NSFileManager directoryExistsNamed:"#{@prefix}/lib") (@lib_dirs addObject:"#{@prefix}/lib")) + +-(ifDarwin +- (then (if (NSFileManager fileExistsNamed:"/usr/lib/libffi.dylib") +- (then ;; Use the libffi that ships with OS X. +- (@inc_dirs addObject:"/usr/include/ffi")) +- (else ;; Use the libffi that is distributed with Nu. +- (@inc_dirs addObject:"./libffi/include") +- (@lib_dirs addObject:"./libffi"))))) +- + (set @pcre_prefix "") + (let ((pcre_config ((NSString stringWithShellCommand:"which pcre-config 2>/dev/null") chomp))) + (if pcre_config +@@ -78,18 +70,11 @@ + (set @dylib "libNu") + + ;; build configuration +-(set @cc "gcc") +-(set @leopard "") +-(set @sdk +- (cond ((NSFileManager directoryExistsNamed:"/Developer/SDKs/MacOSX10.6.sdk") +- (set @leopard "-DLEOPARD_OBJC2 -D__OBJC2__") +- ("-isysroot /Developer/SDKs/MacOSX10.6.sdk")) +- ((NSFileManager directoryExistsNamed:"/Developer/SDKs/MacOSX10.5.sdk") +- (set @leopard "-DLEOPARD_OBJC2 -D__OBJC2__") +- ("-isysroot /Developer/SDKs/MacOSX10.5.sdk")) +- ((NSFileManager directoryExistsNamed:"/Developer/SDKs/MacOSX10.4u.sdk") +- ("-isysroot /Developer/SDKs/MacOSX10.4u.sdk")) +- (else ""))) ++(set @cc "@CC@") ++(if (NSFileManager directoryExistsNamed:"/Developer/SDKs/MacOSX10.5.sdk") ++ (then (set @leopard "-DLEOPARD_OBJC2 -D__OBJC2__")) ++ (else (set @leopard ""))) ++(set @sdk "@SDKROOT@") + + (ifDarwin + (then (set @cflags "-Wall -g -O2 -DDARWIN -DMACOSX #{@sdk} #{@leopard} -std=gnu99") +@@ -99,7 +84,7 @@ + (set @mflags ((NSString stringWithShellCommand:"gnustep-config --objc-flags") chomp)))) + + (ifDarwin +- (then (set @arch '("ppc" "i386")))) ;; build a universal binary ++ (then (set @arch '("@ARCHS@")))) ;; build a universal binary + ;; or set this to just build for your chosen platform + ;;(set @arch '("i386")) + +@@ -107,12 +92,7 @@ + ((@inc_dirs map: (do (inc) " -I#{inc}")) join)) + (set @ldflags + ((list +- (cond ;; statically link in pcre since most people won't have it.. +-(t nil) +- ((NSFileManager fileExistsNamed:"#{@pcre_prefix}/lib/libpcre.a") "#{@pcre_prefix}/lib/libpcre.a") +- ((NSFileManager fileExistsNamed:"/usr/lib/libpcre.a") "/usr/lib/libpcre.a") +- ((NSFileManager fileExistsNamed:"#{@prefix}/lib/libpcre.a") "#{@prefix}/lib/libpcre.a") +- (else (NSException raise:"NukeBuildError" format:"Can't find static pcre library (libpcre.a)."))) ++ ("#{@pcre_prefix}/lib/libpcre.dylib") + ((@frameworks map: (do (framework) " -framework #{framework}")) join) + ((@libs map: (do (lib) " -l#{lib}")) join) + (ifDarwin Deleted: trunk/dports/devel/nu/files/patch-libffi-single-arch =================================================================== --- trunk/dports/devel/nu/files/patch-libffi-single-arch 2011-02-11 23:07:51 UTC (rev 75883) +++ trunk/dports/devel/nu/files/patch-libffi-single-arch 2011-02-11 23:45:20 UTC (rev 75884) @@ -1,11 +0,0 @@ ---- libffi/Rakefile.old 2007-10-01 06:52:29.000000000 -0400 -+++ libffi/Rakefile 2007-10-01 06:52:37.000000000 -0400 -@@ -17,7 +17,7 @@ - - @cc = "gcc" - --@arch = "-arch i386 -arch ppc" -+@arch = "" - - @cflags = "-g -O3 -Wall -DMACOSX -Iinclude -I. -Isrc" -
participants (1)
-
ryandesign@macports.org