--- 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
