1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-20 20:09:11 +00:00

- add new option WITHOUT_NSOBJECT_ROOT

Submitted by:	Pete French (maintainer)
Reviewed by:	dinoex
This commit is contained in:
Dirk Meyer 2010-11-13 22:06:23 +00:00
parent 3572053511
commit 0cfa8fd6a6
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=264500
2 changed files with 73 additions and 90 deletions

View File

@ -7,6 +7,7 @@
PORTNAME= libobjc2
PORTVERSION= 1.0
PORTREVISION= 1
CATEGORIES= lang devel gnustep
MASTER_SITES= http://download.gna.org/gnustep/
@ -17,7 +18,8 @@ WRKSRC= ${WRKDIR}/${PORTNAME}
USE_BZIP2= yes
USE_LDCONFIG= yes
OPTIONS= LIBDISPATCH "Build with libdispatch from ports" Off
OPTIONS= NSOBJECT_ROOT "Root class is NSObject not Object" On \
LIBDISPATCH "Build with libdispatch from ports" Off
.include <bsd.port.options.mk>
@ -26,6 +28,10 @@ LIB_DEPENDS+= dispatch.0:${PORTSDIR}/devel/libdispatch
MAKE_ARGS+= -DWITHOUT_TOYDISPATCH
.endif
.if !defined(WITHOUT_NSOBJECT_ROOT)
MAKE_ARGS+= -DWITH_NSOBJECT_ROOT
.endif
.include <bsd.port.pre.mk>
.if ${OSVERSION} < 700000

View File

@ -1,89 +1,66 @@
*** Makefile.orig 2010-10-06 14:03:45.281764937 +0100
--- Makefile 2010-10-07 17:49:29.429419346 +0100
***************
*** 4,16 ****
#CC=clang
! CFLAGS += -std=c99
CPPFLAGS += -DTYPE_DEPENDENT_DISPATCH
#LIB_DIR=/usr/local/GNUstep/Local/Library/Libraries/
#HEADER_DIR=/usr/local/GNUstep/Local/Library/Headers
! LIB_DIR=/tmp/usr/lib/
! HEADER_DIR=/tmp/usr/include/
OBJECTS = \
NSBlocks.o\
--- 4,19 ----
#CC=clang
! CFLAGS += -std=c99 -fPIC
CPPFLAGS += -DTYPE_DEPENDENT_DISPATCH
+ CPPFLAGS += -D__OBJC_RUNTIME_INTERNAL__=1 -D_XOPEN_SOURCE=500
#LIB_DIR=/usr/local/GNUstep/Local/Library/Libraries/
#HEADER_DIR=/usr/local/GNUstep/Local/Library/Headers
!
! PREFIX?= /tmp/usr
! LIB_DIR= ${PREFIX}/lib
! HEADER_DIR= ${PREFIX}/include
OBJECTS = \
NSBlocks.o\
***************
*** 38,48 ****
statics_loader.o\
sync.o
! all: libobjc.so.$(VERSION)
libobjc.so.$(VERSION): $(OBJECTS)
@echo Linking shared library...
! ld -shared -o $@ $(OBJECTS)
.c.o:
$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
--- 41,59 ----
statics_loader.o\
sync.o
! .if !defined(WITHOUT_TOYDISPATCH)
! OBJECTS+= toydispatch.o
! .endif
!
! all: libobjc.so.$(VERSION) libobjc.a
libobjc.so.$(VERSION): $(OBJECTS)
@echo Linking shared library...
! @ld -shared -o $@ $(OBJECTS)
!
! libobjc.a: $(OBJECTS)
! @echo Linking static library...
! @ld -r -s -o $@ $(OBJECTS)
.c.o:
$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
***************
*** 50,57 ****
--- 61,72 ----
.m.o:
$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
+ toydispatch.o: toydispatch/toydispatch.c
+ $(CC) $(CPPFLAGS) $(CFLAGS) -I toydispatch -c $< -o $@
+
install: all
install -m 444 libobjc.so.$(VERSION) $(LIB_DIR)
+ install -m 444 libobjc.a $(LIB_DIR)
ln -sf $(LIB_DIR)/libobjc.so.$(VERSION) $(LIB_DIR)/libobjc.so
install -d $(HEADER_DIR)/objc
install -m 444 objc/*.h $(HEADER_DIR)/objc
***************
*** 59,61 ****
--- 74,77 ----
clean:
rm -f $(OBJECTS)
rm -f libobjc.so.$(VERSION)
+ rm -f libobjc.a
--- Makefile.orig 2010-09-14 17:02:29.000000000 +0100
+++ Makefile 2010-11-12 14:03:01.589695176 +0000
@@ -4,13 +4,20 @@
#CC=clang
-CFLAGS += -std=c99
+CFLAGS += -std=c99 -fPIC
CPPFLAGS += -DTYPE_DEPENDENT_DISPATCH
+CPPFLAGS += -D__OBJC_RUNTIME_INTERNAL__=1 -D_XOPEN_SOURCE=500
+
+.if defined(WITH_NSOBJECT_ROOT)
+CPPFLAGS += -DGNUSTEP
+.endif
#LIB_DIR=/usr/local/GNUstep/Local/Library/Libraries/
#HEADER_DIR=/usr/local/GNUstep/Local/Library/Headers
-LIB_DIR=/tmp/usr/lib/
-HEADER_DIR=/tmp/usr/include/
+
+PREFIX?= /tmp/usr
+LIB_DIR= ${PREFIX}/lib
+HEADER_DIR= ${PREFIX}/include
OBJECTS = \
NSBlocks.o\
@@ -38,11 +45,19 @@
statics_loader.o\
sync.o
-all: libobjc.so.$(VERSION)
+.if !defined(WITHOUT_TOYDISPATCH)
+OBJECTS+= toydispatch.o
+.endif
+
+all: libobjc.so.$(VERSION) libobjc.a
libobjc.so.$(VERSION): $(OBJECTS)
@echo Linking shared library...
- ld -shared -o $@ $(OBJECTS)
+ @ld -shared -o $@ $(OBJECTS)
+
+libobjc.a: $(OBJECTS)
+ @echo Linking static library...
+ @ld -r -s -o $@ $(OBJECTS)
.c.o:
$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
@@ -50,8 +65,12 @@
.m.o:
$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
+toydispatch.o: toydispatch/toydispatch.c
+ $(CC) $(CPPFLAGS) $(CFLAGS) -I toydispatch -c $< -o $@
+
install: all
install -m 444 libobjc.so.$(VERSION) $(LIB_DIR)
+ install -m 444 libobjc.a $(LIB_DIR)
ln -sf $(LIB_DIR)/libobjc.so.$(VERSION) $(LIB_DIR)/libobjc.so
install -d $(HEADER_DIR)/objc
install -m 444 objc/*.h $(HEADER_DIR)/objc
@@ -59,3 +78,4 @@
clean:
rm -f $(OBJECTS)
rm -f libobjc.so.$(VERSION)
+ rm -f libobjc.a