# @configure_input@ # # src makefile for GNU Objective-C Class library # Copyright (C) 1995, 1996 Free Software Foundation, Inc. # # Written by: R. Andrew McCallum # # This file is part of the GNU Objective-C Class library. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Library General Public License for more details. # # You should have received a copy of the GNU Library General Public # License along with this library; if not, write to the Free # Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. SHELL = /bin/sh #### Start of system configuration section. #### srcdir = @srcdir@ VPATH = @srcdir@ # Installation locations prefix = @prefix@ exec_prefix = @exec_prefix@ libdir = $(exec_prefix)/lib includedir = $(prefix)/include CC = @CC@ RANLIB = @RANLIB@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ AR = ar ARFLAGS = rc LN_S = @LN_S@ MAKEINFO = makeinfo TEXI2DVI = texi2dvi LEX = flex LEXFLAGS = DEFS = @DEFS@ # All these are optional. You can redefine CFLAGS, CPPFLAGS and # INCLUDEFLAGS on the command line however you like. CFLAGS = -Wno-implicit -g -O CPPFLAGS = INCLUDEFLAGS = #### End of system configuration section. #### include $(srcdir)/../Makeconf include $(srcdir)/../Version # Grep for these names to build the legally-required "AUTHORS" file. FILE_AUTHORS = \ "R. Andrew McCallum" \ "Kresten Krab Thorup" \ "Adam Fedor" \ "Mark Lakata" \ "Jeremy Bettis" \ "Georg Tuparev" \ "Peter Burka" DYNAMIC_LINKER=@DYNAMIC_LINKER@ NEXT_NEXT_INCLUDES = -I/usr/include OBJECTS_NEXT_INCLUDES = -I$(srcdir) NEXT_INCLUDES = @NEXT_INCLUDES@ ALL_INCLUDE_FLAGS = -I$(srcdir) $(NEXT_INCLUDES) $(INCLUDEFLAGS) ALL_CPPFLAGS = $(ALL_INCLUDE_FLAGS) $(CPPFLAGS) ALL_CFLAGS = $(CFLAGS) ALL_OBJCFLAGS = $(CFLAGS) -Wno-protocol # definitions to be passed to subdir Makefile's MAKEDEFINES = CC='$(CC)' CFLAGS='$(CFLAGS)' CPPFLAGS='$(CPPFLAGS)' \ INCLUDEFLAGS='$(INCLUDEFLAGS)' DEFS='$(DEFS)' .SUFFIXES: .m .m.o: $(CC) -c $(ALL_CPPFLAGS) $(DEFS) $(ALL_OBJCFLAGS) -o $@ $< .c.o: $(CC) -c $(ALL_CPPFLAGS) $(DEFS) $(ALL_CFLAGS) -o $@ $< %_pic.o: %.m $(CC) -c $(ALL_CPPFLAGS) -fPIC -DPIC $(DEFS) \ $(ALL_OBJCFLAGS) -o $@ $< %_pic.o: %.c $(CC) -c $(ALL_CPPFLAGS) -fPIC -DPIC $(DEFS) \ $(ALL_CFLAGS) -o $@ $< # GNU Class source files GNU_MFILES = \ Array.m \ Bag.m \ BinaryCoder.m \ BinaryTree.m \ BinaryTreeEltNode.m \ BinaryTreeNode.m \ CircularArray.m \ Coder.m \ Collection.m \ CString.m \ ConnectedCoder.m \ Connection.m \ ConstantString.m \ DelegatePool.m \ Dictionary.m \ EltNodeCollector.m \ GapArray.m \ Heap.m \ IndexedCollection.m \ Invocation.m \ KeyedCollection.m \ LinkedList.m \ LinkedListEltNode.m \ LinkedListNode.m \ Lock.m \ Magnitude.m \ MallocAddress.m \ MappedCollector.m \ MemoryStream.m \ MutableCString.m \ MutableString.m \ Port.m \ Proxy.m \ Queue.m \ Random.m \ RBTree.m \ RBTreeEltNode.m \ RBTreeNode.m \ RNGAdditiveCongruential.m \ RNGBerkeley.m \ RetainingNotifier.m \ Set.m \ SocketPort.m \ SplayTree.m \ Stack.m \ StdioStream.m \ Stream.m \ String.m \ TextCoder.m \ Time.m \ stdobjects.m \ mframe.m \ objc-gnu2next.m \ eltfuncs.m GNU_CFILES = \ behavior.c \ collhash.c \ objc-malloc.c \ o_vscanf.c GNU_OTHER_SRCFILES = GNU_OBJS = \ $(GNU_MFILES:.m=.o) \ $(GNU_CFILES:.c=.o) GNU_HEADERS = \ objects/Array.h \ objects/ArrayPrivate.h \ objects/Bag.h \ objects/BinaryCoder.h \ objects/BinaryTree.h \ objects/BinaryTreeEltNode.h \ objects/BinaryTreeNode.h \ objects/CircularArray.h \ objects/CircularArrayPrivate.h \ objects/Coder.h \ objects/Coding.h \ objects/Collecting.h \ objects/Collection.h \ objects/CollectionPrivate.h \ objects/ConnectedCoder.h \ objects/Connection.h \ objects/DelegatePool.h \ objects/Dictionary.h \ objects/EltNodeCollector.h \ objects/EltNode-h \ objects/EltNode-m \ objects/GapArray.h \ objects/GapArrayPrivate.h \ objects/Heap.h \ objects/IndexedCollecting.h \ objects/IndexedCollection.h \ objects/IndexedCollectionPrivate.h \ objects/InvalidationListening.h \ objects/Invocation.h \ objects/KeyedCollecting.h \ objects/KeyedCollection.h \ objects/LibobjectsMain.h \ objects/LinkedList.h \ objects/LinkedListEltNode.h \ objects/LinkedListNode.h \ objects/Lock.h \ objects/Locking.h \ objects/Magnitude.h \ objects/MallocAddress.h \ objects/MappedCollector.h \ objects/MemoryStream.h \ objects/NSArray.h \ objects/NSCoder.h \ objects/NSDictionary.h \ objects/NSSet.h \ objects/NSString.h \ objects/Ordering.h \ objects/Port.h \ objects/Proxy.h \ objects/Queue.h \ objects/RBTree.h \ objects/RBTreeEltNode.h \ objects/RBTreeNode.h \ objects/RNGAdditiveCongruential.h \ objects/RNGBerkeley.h \ objects/Random.h \ objects/RandomGenerating.h \ objects/Retaining.h \ objects/RetainingNotifier.h \ objects/Set.h \ objects/SocketPort.h \ objects/SplayTree.h \ objects/Stack.h \ objects/StdioStream.h \ objects/Stream.h \ objects/Streaming.h \ objects/String.h \ objects/TextCoder.h \ objects/Time.h \ objects/ValueHolding.h \ objects/behavior.h \ objects/collhash.h \ objects/elt.h \ objects/eltfuncs.h \ objects/mframe.h \ objects/objc-gnu2next.h \ objects/objc-malloc.h \ objects/objects.h \ objects/README # NEXTSTEP source files NEXTSTEP_MFILES = \ HashTable.m \ List.m \ NXStringTable.m \ Storage.m NEXTSTEP_CFILES = NEXTSTEP_DERIVED_CFILES = \ NXStringTable_scan.c NEXTSTEP_OTHER_SRCFILES = \ NXStringTable_scan.l NEXTSTEP_OBJS = \ $(NEXTSTEP_MFILES:.m=.o) \ $(NEXTSTEP_CFILES:.c=.o) \ $(NEXTSTEP_DERIVED_CFILES:.c=.o) NEXTSTEP_HEADERS = \ objc/HashTable.h \ objc/List.h \ objc/NXStringTable.h \ objc/Storage.h \ objc/zone.h # GNUStep source files GNUSTEP_MFILES = \ NSAllocateObject.m \ NSArchiver.m \ NSArray.m \ NSAssertionHandler.m \ NSAutoreleasePool.m \ NSBitmapCharSet.m \ NSBundle.m \ NSCharacterSet.m \ NSCoder.m \ NSCopyObject.m \ NSConcreteValue.m \ NSCountedSet.m \ NSData.m \ NSDate.m \ NSDeallocateObject.m \ NSDictionary.m \ NSEnumerator.m \ NSException.m \ NSGeometry.m \ NSGArchiver.m \ NSGArray.m \ NSGCoder.m \ NSGCountedSet.m \ NSGCString.m \ NSGData.m \ NSGDictionary.m \ NSGSet.m \ NSGUnarchiver.m \ NSMethodSignature.m \ NSNumber.m \ NSObjCRuntime.m \ NSObject.m \ NSProcessInfo.m \ NSRange.m \ NSSet.m \ NSString.m \ NSTimeZone.m \ NSUnarchiver.m \ NSValue.m NSVALUE_MFILES = \ NSValue0.m NSValue1.m NSValue2.m NSValue3.m \ NSValue4.m NSNUMBER_MFILES = \ NSNumber0.m NSNumber1.m NSNumber2.m NSNumber3.m \ NSNumber4.m NSNumber5.m NSNumber6.m NSNumber7.m \ NSNumber8.m NSNumber9.m NSNumber10.m NSNumber11.m \ NSNumber12.m GNUSTEP_CFILES = \ NSZone.c \ find_exec.c \ objc-load.c GNUSTEP_OTHER_SRCFILES = \ NSConcreteNumber.m \ NSCTemplateValue.m \ dld-load.h \ hpux-load.h \ null-load.h \ simple-load.h GNUSTEP_OBJS = \ $(GNUSTEP_MFILES:.m=.o) \ $(GNUSTEP_CFILES:.c=.o) \ $(NSVALUE_MFILES:.m=.o) \ $(NSNUMBER_MFILES:.m=.o) GNUSTEP_HEADERS = \ Foundation/NSArchiver.h \ Foundation/NSArray.h \ Foundation/NSAutoreleasePool.h \ Foundation/NSBitmapCharSet.h \ Foundation/NSBundle.h \ Foundation/NSCharacterSet.h \ Foundation/NSCoder.h \ Foundation/NSConcreteNumber.h \ Foundation/NSConcreteValue.h \ Foundation/NSData.h \ Foundation/NSDate.h \ Foundation/NSDictionary.h \ Foundation/NSException.h \ Foundation/NSGeometry.h \ Foundation/NSGArchiver.h \ Foundation/NSGArray.h \ Foundation/NSGCoder.h \ Foundation/NSGCString.h \ Foundation/NSGData.h \ Foundation/NSGDictionary.h \ Foundation/NSGSet.h \ Foundation/NSGUnarchiver.h \ Foundation/NSInvocation.h \ Foundation/NSMethodSignature.h \ Foundation/NSObjCRuntime.h \ Foundation/NSObject.h \ Foundation/NSProcessInfo.h \ Foundation/NSRange.h \ Foundation/NSSerialization.h \ Foundation/NSSet.h \ Foundation/NSString.h \ Foundation/NSUnarchiver.h \ Foundation/NSUtilities.h \ Foundation/NSValue.h \ Foundation/NSZone.h \ Foundation/objc-load.h HEADERS_INSTALL = @HEADERS_INSTALL@ objects/config.h objects/stdobjects.h OBJS_INSTALL = @OBJS_INSTALL@ OBJS_INSTALL_PIC = $(OBJS_INSTALL:.o=_pic.o) DIST_FILES = \ Makefile.in AUTHORS \ objects/config.h.in objects/stdobjects.h.in \ $(GNU_MFILES) \ $(GNU_CFILES) \ $(GNU_HEADERS) \ $(GNU_OTHER_SRCFILES) \ $(NEXTSTEP_MFILES) \ $(NEXTSTEP_CFILES) \ $(NEXTSTEP_DERIVED_CFILES) \ $(NEXTSTEP_HEADERS) \ $(NEXTSTEP_OTHER_SRCFILES) \ $(GNUSTEP_MFILES) \ $(GNUSTEP_CFILES) \ $(GNUSTEP_HEADERS) \ $(GNUSTEP_OTHER_SRCFILES) RCS_FILES = \ Makefile.in \ objects/config.h.in objects/stdobjects.h.in \ $(GNU_MFILES) \ $(GNU_CFILES) \ $(GNU_HEADERS) \ $(GNU_OTHER_SRCFILES) \ $(NEXTSTEP_MFILES) \ $(NEXTSTEP_CFILES) \ $(NEXTSTEP_HEADERS) \ $(NEXTSTEP_OTHER_SRCFILES) \ $(GNUSTEP_MFILES) \ $(GNUSTEP_CFILES) \ $(GNUSTEP_HEADERS) \ $(GNUSTEP_OTHER_SRCFILES) all: libobjects.a @LIBOBJECTS_SO@ libobjects.so.$(OBJECTS_VERSION): objects/stdobjects.h $(OBJS_INSTALL_PIC) $(CC) -shared -o libobjects.so.$(OBJECTS_VERSION) \ -Wl,-soname,libobjects.so.$(OBJECTS_VERSION) \ $(OBJS_INSTALL_PIC) rm -f libobjects.so.$(OBJECTS_MAJOR_VERSION) ln -s libobjects.so.$(OBJECTS_VERSION) \ libobjects.so.$(OBJECTS_MAJOR_VERSION) libobjects.a: objects/stdobjects.h $(OBJS_INSTALL) $(AR) $(ARFLAGS) libobjects.a $(OBJS_INSTALL) $(RANLIB) libobjects.a install: installdirs all # Install the library $(INSTALL_DATA) libobjects.a $(libdir) $(RANLIB) $(libdir)/libobjects.a; \ if [ @LIBOBJECTS_SO@ ]; then \ $(INSTALL_DATA) libobjects.so.$(OBJECTS_VERSION) $(libdir) ; \ rm -f $(libdir)/libobjects.so.$(OBJECTS_MAJOR_VERSION) ; \ ln -s $(libdir)/libobjects.so.$(OBJECTS_VERSION) ; \ $(libdir)/libobjects.so.$(OBJECTS_MAJOR_VERSION) ; \ fi # Install the headers for file in $(HEADERS_INSTALL); do \ $(INSTALL_DATA) $(srcdir)/$$file $(includedir)/$$file ; \ done cd $(includedir)/Foundation; rm -f README; ln -s ../objects/README . cd $(includedir)/objc; rm -f README; ln -s ../objects/README . installdirs: $(srcdir)/../mkinstalldirs \ $(libdir) \ $(includedir)/objects \ $(includedir)/objc \ $(includedir)/Foundation uninstall: rm -f $(libdir)/libobjects.a rm -rf $(includedir)/objects \ $(includedir)/objc \ $(includedir)/Foundation # Creation of NSValue and NSNumber concrete classes from templates $(NSVALUE_MFILES) : NSCTemplateValue.m rm -f $@ echo '#define TYPE_ORDER' `expr $* : 'NSValue\([0-9]*\)'` > $@ cat $(srcdir)/NSCTemplateValue.m >> $@ $(NSNUMBER_MFILES) : NSConcreteNumber.m rm -f $@ echo '#define TYPE_ORDER' `expr $* : 'NSNumber\([0-9]*\)'` > $@ cat $(srcdir)/NSConcreteNumber.m >> $@ NXStringTable_scan.c: NXStringTable_scan.l $(LEX) $(LEXFLAGS) -t $(srcdir)/NXStringTable_scan.l \ > NXStringTable_scan.temp sed 's/yy/NXlex_/g' < NXStringTable_scan.temp \ > NXStringTable_scan.c $(RM) -f NXStringTable_scan.temp # remove this special case? # turn off warnings while compiling NXStringTable_scan.c NXStringTable_scan.o: NXStringTable_scan.c $(CC) -c $(ALL_CPPFLAGS) $(DEFS) $(ALL_CFLAGS) -w $^ -o $*.o objc-load.o: dynamic-load.h dynamic-load.h: ../config.status rm -f dynamic-load.h cp $(srcdir)/$(DYNAMIC_LINKER)-load.h dynamic-load.h objects/stdobjects.h: $(srcdir)/../Version objects/stdobjects.h.in rm -f $(srcdir)/objects/stdobjects.h sed -e 's/@OBJECTS_VERSION@/$(OBJECTS_VERSION)/' \ < $(srcdir)/objects/stdobjects.h.in | \ sed -e 's/@OBJECTS_MAJOR_VERSION@/$(OBJECTS_MAJOR_VERSION)/' | \ sed -e 's/@OBJECTS_MINOR_VERSION@/$(OBJECTS_MINOR_VERSION)/' | \ sed -e 's/@OBJECTS_SUBMINOR_VERSION@/$(OBJECTS_SUBMINOR_VERSION)/' | \ sed -e 's/@OBJECTS_GCC_VERSION@/$(OBJECTS_GCC_VERSION)/' \ > $(srcdir)/objects/stdobjects.h stdobjects.o: objects/stdobjects.h Makefile: $(srcdir)/Makefile.in ../config.status cd ..; $(SHELL) config.status ../config.status: cd ..; $(SHELL) configure --no-create TAGS: $(DIST_FILES) etags $(DIST_FILES) AUTHORS: Makefile.in rm -f AUTHORS @echo Finding file authors... @echo 'For the legal record, here is a list of who wrote what:'>AUTHORS @for a in $(FILE_AUTHORS) \ ; do \ echo >>AUTHORS; \ echo >>AUTHORS; \ echo "$${a}:" >>AUTHORS; \ egrep -l "((Written by)|(Author)).*$${a}" \ $(DIST_FILES) >>AUTHORS; \ done mostlyclean: rm -f core \ *~ \ objects/*~ \ Foundation/*~ \ objc/*~ clean: mostlyclean rm -f libobjects.a *.o distclean: clean rm -f Makefile rm -f dynamic-load.h maintainer-clean: distclean rm -f TAGS objects/stdobjects.h objects/config.h copy-dist: $(DIST_FILES) mkdir ../snap/src mkdir ../snap/src/objects mkdir ../snap/src/objc mkdir ../snap/src/Foundation for file in $(DIST_FILES); do \ ln $$file ../snap/src/$$file ; \ done ln AUTHORS ../snap