+ $(GCC_FOR_TARGET) $(OPTIMIZE) -fgnu-runtime \
+ -c $(GCC_CFLAGS) $(SUBDIR_INCLUDES) $<
+
+# If we were not invoked from the parent dir,
+# invoke make in the parent dir and have reinvoke this makefile.
+# That's necessary to get the right values for srcdir, etc.
+all:
+ cd ..; $(MAKE) sublibobjc.a
+
+OBJC_O = hash.o sarray.o class.o sendmsg.o init.o archive.o \
+ selector.o objects.o misc.o Object.o Protocol.o
+
+libobjc.a: $(OBJC_O)
+ -rm -f libobjc.a
+ $(AR) rc libobjc.a $(OBJC_O)
+# ranlib is run in the parent directory's makefile.
+
+OBJC_H = hash.h list.h sarray.h objc.h \
+ objc-api.h \
+ Object.h Protocol.h mutex.h \
+ typedstream.h
+
+# copy objc headers to installation include directory
+copy-headers:
+ -rm -fr $(incinstalldir)/objc
+ -mkdir $(incinstalldir)/objc
+ for file in $(OBJC_H); do \
+ realfile=$(srcdir)/objc/$$file; \
+ cp $$realfile $(incinstalldir)/objc; \
+ chmod a+r $(incinstalldir)/objc/$$file; \
+ done
+
+sendmsg.o: sendmsg.c fflags
+ $(GCC_FOR_TARGET) `cat fflags` -c $(GCC_CFLAGS) $(SUBDIR_INCLUDES) $(srcdir)/objc/sendmsg.c
+
+## Next to are for heuristics on forwarding mechanism...
+xforward: xforward.c
+ -$(GCC_FOR_TARGET) -c $(GCC_CFLAGS) $(SUBDIR_INCLUDES) $(srcdir)/objc/xforward.c
+ -$(GCC_FOR_TARGET) ./xforward.o -o xforward
+ if [ ! -f ./xforward ]; then touch ./xforward; else true; fi
+
+fflags: xforward
+ -rm -f fflags
+ -if [ -s ./xforward ]; then ./xforward > fflags; else touch fflags; fi
+
+mostlyclean:
+ -rm -f *.o libobjc.a xforward fflags
+clean: mostlyclean
+distclean: mostlyclean
+extraclean: mostlyclean