diff options
author | David Chisnall <theraven@FreeBSD.org> | 2013-08-28 18:26:01 +0000 |
---|---|---|
committer | David Chisnall <theraven@FreeBSD.org> | 2013-08-28 18:26:01 +0000 |
commit | 3bec8741ffe1e70c5dbabd1ee86bfdf05f1c3e99 (patch) | |
tree | ab5064afd823ae17563635026226e53774a6614d /lang/libobjc2 | |
parent | Update devel/monodevelop to 4.0.12 and unbreak build. (diff) |
Update to latest GNUstep core libraries.
Update dependent packages with more recent releases.
Remove old and bit-rotted ones.
Switch to using clang 3.3 and libobjc2 1.7 by default, so modern Objective-C features work out of the box and remove a lot of configurable options for sub-optimal (and, often, unsupported / deprecated upstream) configurations.
Take maintainership of GNUstep-related ports.
Several of the ports left in have scary warnings which mean that they are likely broken in lots of cases. Future commits will fix them.
Approved by: bapt
Notes
Notes:
svn path=/head/; revision=325546
Diffstat (limited to 'lang/libobjc2')
-rw-r--r-- | lang/libobjc2/Makefile | 77 | ||||
-rw-r--r-- | lang/libobjc2/distinfo | 4 | ||||
-rw-r--r-- | lang/libobjc2/files/patch-Makefile | 59 | ||||
-rw-r--r-- | lang/libobjc2/pkg-descr | 4 | ||||
-rw-r--r-- | lang/libobjc2/pkg-plist | 12 |
5 files changed, 48 insertions, 108 deletions
diff --git a/lang/libobjc2/Makefile b/lang/libobjc2/Makefile index a41aeb730b46..bcad3448ea16 100644 --- a/lang/libobjc2/Makefile +++ b/lang/libobjc2/Makefile @@ -2,68 +2,63 @@ # $FreeBSD$ PORTNAME= libobjc2 -PORTVERSION= 1.6 +PORTVERSION= 1.7 CATEGORIES= lang devel gnustep MASTER_SITES= http://download.gna.org/gnustep/ -MAINTAINER= ports@FreeBSD.org -COMMENT= Replacement Objective-C runtime supporting Obj-C 2 features +MAINTAINER= theraven@FreeBSD.org +COMMENT= Replacement Objective-C runtime supporting modern Objective-C features -BUILD_DEPENDS= ${LOCALBASE}/bin/as:${PORTSDIR}/devel/binutils - -USE_BZIP2= yes -USE_LDCONFIG= yes -MAKE_ENV+= LD=${LOCALBASE}/bin/ld -MAKE_ENV+= SHLIB_VERSION="${SHLIB_VERSION}" -PLIST_SUB= SHLIB=${SHLIB_VERSION} - -OPTIONS_DEFINE= NSOBJECT_ROOT LIBDISPATCH -OPTIONS_DEFAULT= NSOBJECT_ROOT -NSOBJECT_ROOT_DESC= Root class is NSObject not Object -LIBDISPATCH_DESC= Build with libdispatch from ports +.include <bsd.port.options.mk> -SHLIB_VERSION?= 16 +USES= cmake -.include <bsd.port.options.mk> +_CLANG!= if [ -f /usr/bin/clang ] ; then /usr/bin/clang --version | head -1 | \ + ${SED} -e 's/.*clang version \([0-9]\)\.\([0-9]\).*/\1\2/' ; else ${ECHO} 0 ; fi -.if ${PORT_OPTIONS:MLIBDISPATCH} -LIB_DEPENDS+= dispatch.0:${PORTSDIR}/devel/libdispatch -MAKE_ARGS+= -DWITHOUT_TOYDISPATCH -PLIST_SUB+= WITH_TOYDISPATCH="@comment " +.if ${_CLANG} < 33 +BUILD_DEPENDS+= ${LOCALBASE}/bin/clang33:${PORTSDIR}/lang/clang33 +CLANG= ${LOCALBASE}/bin/clang33 +CLANGXX= ${LOCALBASE}/bin/clang++33 .else -PLIST_SUB+= WITH_TOYDISPATCH="" +CLANG= /usr/bin/clang +CLANGXX= /usr/bin/clang++ .endif -.if ${PORT_OPTIONS:MNSOBJECT_ROOT} -CPPFLAGS+= -DGNUSTEP -.endif +SHLIB_MAJOR= 4 +SHLIB_MINOR= 6 -.include <bsd.port.pre.mk> +USE_BZIP2= yes +PLIST_SUB+= SHLIB_MAJOR=${SHLIB_MAJOR} SHLIB_MINOR=${SHLIB_MINOR} -.if ${OSVERSION} >= 900000 -.if defined(CC) && ${CC:T:Mclang} -# all done +.if ${OSVERSION} < 902000 +CMAKE_ARGS+= -DFORCE_LIBOBJCXX=ON +PLIST_SUB+= WITH_SEPARATECXX="" .else -# force clang -CC= ${LOCALBASE}/bin/clang -BUILD_DEPENDS+= ${LOCALBASE}/bin/clang:${PORTSDIR}/lang/clang -.endif +PLIST_SUB+= WITH_SEPARATECXX="@comment " .endif -.if (${ARCH} == i386) || (${ARCH} == i486) -CFLAGS+= -march=i586 -.endif +.include <bsd.port.pre.mk> + +CMAKE_ARGS+= -DLIB_INSTALL_PATH=lib -DCMAKE_ASM_COMPILER=${CLANG} +CMAKE_ARGS+= -DCMAKE_C_COMPILER=${CLANG} -DCMAKE_CXX_COMPILER=${CLANGXX} +CMAKE_ARGS+= -DTESTS=OFF +# This shouldn't be needed, but our llvm port installs llvm-config with a silly +# name... +CMAKE_ARGS+= -DLLVM_OPTS=OFF .if ${ARCH} == "powerpc" BROKEN= Does not compile on powerpc: Unsupported relocation type 10 .endif -post-patch: - ${RM} ${WRKSRC}/GNUmakefile - +.if ${OSVERSION} < 902000 +post-install: + ${LN} -sf ${LOCALBASE}/lib/libobjc.so.${SHLIB_MAJOR}.${SHLIB_MINOR} ${LOCALBASE}/lib/libobjc.so.${SHLIB_MAJOR} + ${LN} -sf ${LOCALBASE}/lib/libobjcxx.so.${SHLIB_MAJOR}.${SHLIB_MINOR} ${LOCALBASE}/lib/libobjcxx.so.${SHLIB_MAJOR} +.else post-install: -.if ${PORT_OPTIONS:MLIBDISPATCH} - ${RM} ${PREFIX}/include/objc/toydispatch.h + ${LN} -sf ${LOCALBASE}/lib/libobjc.so.${SHLIB_MAJOR}.${SHLIB_MINOR} ${LOCALBASE}/lib/libobjc.so.${SHLIB_MAJOR} .endif + .include <bsd.port.post.mk> diff --git a/lang/libobjc2/distinfo b/lang/libobjc2/distinfo index 7b7b19e37bd3..074720374190 100644 --- a/lang/libobjc2/distinfo +++ b/lang/libobjc2/distinfo @@ -1,2 +1,2 @@ -SHA256 (libobjc2-1.6.tar.bz2) = cad4556d612e871f60ae19531474045075fab3ffab055f76140e3fed30a0c51d -SIZE (libobjc2-1.6.tar.bz2) = 114767 +SHA256 (libobjc2-1.7.tar.bz2) = 3a1b4af6ff6f3d8e57bfb27401d1b249670ac2e92ba54ad5683ff3d4439d3cc1 +SIZE (libobjc2-1.7.tar.bz2) = 132662 diff --git a/lang/libobjc2/files/patch-Makefile b/lang/libobjc2/files/patch-Makefile deleted file mode 100644 index a166e23fe443..000000000000 --- a/lang/libobjc2/files/patch-Makefile +++ /dev/null @@ -1,59 +0,0 @@ ---- Makefile.orig 2011-11-23 13:43:16.000000000 +0100 -+++ Makefile 2011-12-10 08:20:33.000000000 +0100 -@@ -5,13 +5,13 @@ - MAJOR_VERSION = 4 - MINOR_VERSION = 6 - SUBMINOR_VERSION = 0 --VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(SUBMINOR_VERSION) -+VERSION = $(SHLIB_VERSION) - - LIBOBJCLIBNAME=objc - LIBOBJC=libobjc - LIBOBJCXX=libobjcxx - --SILENT=@ -+SILENT= - - CFLAGS += -std=gnu99 -fPIC -fexceptions - CXXFLAGS += -fPIC -fexceptions -@@ -62,21 +62,24 @@ - selector_table.o\ - sendmsg2.o\ - statics_loader.o\ -- toydispatch.o -+ -+.if !defined(WITHOUT_TOYDISPATCH) -+OBJECTS+= toydispatch.o -+.endif - - all: $(LIBOBJC).a $(LIBOBJCXX).so.$(VERSION) - - $(LIBOBJCXX).so.$(VERSION): $(LIBOBJC).so.$(VERSION) $(OBJCXX_OBJECTS) - $(SILENT)echo Linking shared Objective-C++ runtime library... -- $(SILENT)$(CXX) -shared -o $@ $(OBJCXX_OBJECTS) -+ $(SILENT)$(LD) $(LDFLAGS) -shared -o $@ $(OBJCXX_OBJECTS) - - $(LIBOBJC).so.$(VERSION): $(OBJECTS) - $(SILENT)echo Linking shared Objective-C runtime library... -- $(SILENT)$(CC) -shared -rdynamic -o $@ $(OBJECTS) -+ $(SILENT)$(LD) $(LDFLAGS) -shared -o $@ $(OBJECTS) - - $(LIBOBJC).a: $(OBJECTS) - $(SILENT)echo Linking static Objective-C runtime library... -- $(SILENT)ld -r -s -o $@ $(OBJECTS) -+ $(SILENT)$(LD) $(LDFLAGS) -r -s -o $@ $(OBJECTS) - - .cc.o: Makefile - $(SILENT)echo Compiling `basename $<`... -@@ -108,11 +111,7 @@ - fi - $(SILENT)echo Creating symbolic links... - $(SILENT)ln -sf $(LIB_DIR)/$(LIBOBJC).so.$(VERSION) $(LIB_DIR)/$(LIBOBJC).so -- $(SILENT)ln -sf $(LIB_DIR)/$(LIBOBJC).so.$(VERSION) $(LIB_DIR)/$(LIBOBJC).so.$(MAJOR_VERSION) -- $(SILENT)ln -sf $(LIB_DIR)/$(LIBOBJC).so.$(VERSION) $(LIB_DIR)/$(LIBOBJC).so.$(MAJOR_VERSION).$(MINOR_VERSION) - $(SILENT)ln -sf $(LIB_DIR)/$(LIBOBJCXX).so.$(VERSION) $(LIB_DIR)/$(LIBOBJCXX).so -- $(SILENT)ln -sf $(LIB_DIR)/$(LIBOBJCXX).so.$(VERSION) $(LIB_DIR)/$(LIBOBJCXX).so.$(MAJOR_VERSION) -- $(SILENT)ln -sf $(LIB_DIR)/$(LIBOBJCXX).so.$(VERSION) $(LIB_DIR)/$(LIBOBJCXX).so.$(MAJOR_VERSION).$(MINOR_VERSION) - $(SILENT)echo Installing headers... - $(SILENT)install -d $(HEADER_DIR)/objc - $(SILENT)install -m 444 objc/*.h $(HEADER_DIR)/objc diff --git a/lang/libobjc2/pkg-descr b/lang/libobjc2/pkg-descr index 392dac504d21..21a99db623b3 100644 --- a/lang/libobjc2/pkg-descr +++ b/lang/libobjc2/pkg-descr @@ -1,5 +1,7 @@ Replacement for the GNU Objective-C runtime supporting the features -of Objective-C 2 for use with GNUstep and other Objective-C programs. +of modern dialects of Objective-C for use with GNUstep and other Objective-C +programs. + This runtime is based on the Etoile Objective-C Runtime, an earlier research prototype, and includes support for non-fragile instance variables, type-dependent dispatch, and object planes. It is fully diff --git a/lang/libobjc2/pkg-plist b/lang/libobjc2/pkg-plist index 2f0599bbf949..ce40fc48c1b4 100644 --- a/lang/libobjc2/pkg-plist +++ b/lang/libobjc2/pkg-plist @@ -1,11 +1,13 @@ include/objc/Availability.h include/objc/Object.h include/objc/Protocol.h +include/objc/blocks_private.h include/objc/blocks_runtime.h include/objc/capabilities.h include/objc/developer.h include/objc/encoding.h include/objc/hooks.h +include/objc/message.h include/objc/objc-api.h include/objc/objc-arc.h include/objc/objc-auto.h @@ -13,10 +15,10 @@ include/objc/objc.h include/objc/runtime.h include/objc/runtime-deprecated.h include/objc/slot.h -%%WITH_TOYDISPATCH%%include/objc/toydispatch.h -lib/libobjc.a lib/libobjc.so -lib/libobjc.so.%%SHLIB%% -lib/libobjcxx.so -lib/libobjcxx.so.%%SHLIB%% +lib/libobjc.so.%%SHLIB_MAJOR%% +lib/libobjc.so.%%SHLIB_MAJOR%%.%%SHLIB_MINOR%% +%%WITH_SEPARATECXX%%lib/libobjcxx.so +%%WITH_SEPARATECXX%%lib/libobjcxx.so.%%SHLIB_MAJOR%% +%%WITH_SEPARATECXX%%lib/libobjcxx.so.%%SHLIB_MAJOR%%.%%SHLIB_MINOR%% @dirrm include/objc |