aboutsummaryrefslogtreecommitdiff
path: root/lang/libobjc2
diff options
context:
space:
mode:
authorDavid Chisnall <theraven@FreeBSD.org>2013-08-28 18:26:01 +0000
committerDavid Chisnall <theraven@FreeBSD.org>2013-08-28 18:26:01 +0000
commit3bec8741ffe1e70c5dbabd1ee86bfdf05f1c3e99 (patch)
treeab5064afd823ae17563635026226e53774a6614d /lang/libobjc2
parent7108c85b56ca17f7e1daaa73f17c74c7d4ec630c (diff)
downloadports-3bec8741ffe1e70c5dbabd1ee86bfdf05f1c3e99.tar.gz
ports-3bec8741ffe1e70c5dbabd1ee86bfdf05f1c3e99.zip
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/Makefile77
-rw-r--r--lang/libobjc2/distinfo4
-rw-r--r--lang/libobjc2/files/patch-Makefile59
-rw-r--r--lang/libobjc2/pkg-descr4
-rw-r--r--lang/libobjc2/pkg-plist12
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