libs-base/Source/Makefile.in
mccallum ab46d0c9c9 Add `o-' prefix to object collection function files.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1494 72102866-910b-0410-8b05-ffd578937521
1996-05-06 19:22:54 +00:00

659 lines
16 KiB
Makefile

# @configure_input@
#
# src makefile for GNU Objective-C Class library
# Copyright (C) 1995, 1996 Free Software Foundation, Inc.
#
# Written by: Andrew Kachites McCallum <mccallum@gnu.ai.mit.edu>
#
# 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@ -pipe
RANLIB = @RANLIB@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
AR = ar
AROUT =
ARFLAGS = rc
LN_S = @LN_S@
MAKEINFO = makeinfo
TEXI2DVI = texi2dvi
LEX = flex
LEXFLAGS =
DEFS = @DEFS@
# File name extensions
OEXT = .o
EXEEXT =
LIBEXT = .a
# All these are optional. You can redefine CFLAGS, CPPFLAGS and
# INCLUDEFLAGS on the command line however you like.
CFLAGS = -g -O -Wall -Wno-implicit
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 = \
"Andrew Kachites McCallum" \
"Kresten Krab Thorup" \
"Adam Fedor" \
"Mark Lakata" \
"Jeremy Bettis" \
"Georg Tuparev" \
"Peter Burka" \
"Albin L. Jones"
DYNAMIC_LINKER=@DYNAMIC_LINKER@
NEXT_NEXT_INCLUDES = -I/usr/include
GNU_NEXT_INCLUDES = -I$(srcdir)
NEXT_INCLUDES = @NEXT_INCLUDES@
ALL_INCLUDE_FLAGS = -I. -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$(OEXT):
$(CC) -c $(ALL_CPPFLAGS) $(DEFS) $(ALL_OBJCFLAGS) -o $@ $<
.c$(OEXT):
$(CC) -c $(ALL_CPPFLAGS) $(DEFS) $(ALL_CFLAGS) -o $@ $<
%_pic$(OEXT): %.m
$(CC) -c $(ALL_CPPFLAGS) -fPIC -DPIC $(DEFS) \
$(ALL_OBJCFLAGS) -o $@ $<
%_pic$(OEXT): %.c
$(CC) -c $(ALL_CPPFLAGS) -fPIC -DPIC $(DEFS) \
$(ALL_CFLAGS) -o $@ $<
# GNU Class source files
#RetainingNotifier.m \
GNU_MFILES = \
Archiver.m \
Array.m \
Bag.m \
BinaryCStream.m \
BinaryTree.m \
BinaryTreeNode.m \
CircularArray.m \
Collection.m \
ConnectedCoder.m \
CString.m \
Coder.m \
Connection.m \
ConstantString.m \
CStream.m \
Decoder.m \
DelegatePool.m \
Dictionary.m \
Encoder.m \
GapArray.m \
Heap.m \
IndexedCollection.m \
Invocation.m \
KeyedCollection.m \
LinkedList.m \
LinkedListNode.m \
Lock.m \
MachPort.m \
Magnitude.m \
MallocAddress.m \
MappedCollector.m \
MemoryStream.m \
MutableCString.m \
MutableString.m \
Notification.m \
NotificationDispatcher.m \
OrderedCollection.m \
Port.m \
Proxy.m \
Queue.m \
Random.m \
RawCStream.m \
RBTree.m \
RBTreeNode.m \
RNGAdditiveCongruential.m \
RNGBerkeley.m \
RunLoop.m \
Set.m \
SplayTree.m \
Stack.m \
StdioStream.m \
Stream.m \
String.m \
TcpPort.m \
TextCStream.m \
Time.m \
UdpPort.m \
o-array.m \
o-array-bas.m \
o-array-cbs.m \
behavior.m \
callbacks.m \
cbs-char-p.m \
cbs-id.m \
cbs-int.m \
cbs-int-p.m \
cbs-void-p.m \
o-hash.m \
o-hash-bas.m \
o-hash-cbs.m \
o-list.m \
o-list-bas.m \
o-list-cbs.m \
o-map.m \
o-map-bas.m \
o-map-cbs.m \
preface.m \
mframe.m \
objc-gnu2next.m \
objc-malloc.m
GNU_CFILES = \
md5.c \
numbers.c \
o_vscanf.c
GNU_OTHER_SRCFILES = \
x-bas.m.in \
x-cbs.m.in \
include/x-bas.h.in \
include/x-cbs.h.in \
md5.h
GNU_OBJS = \
$(GNU_MFILES:.m=$(OEXT)) \
$(GNU_CFILES:.c=$(OEXT))
GNU_HEADERS = \
include/Archiver.h \
include/Array.h \
include/ArrayPrivate.h \
include/Bag.h \
include/BinaryCStream.h \
include/BinaryTree.h \
include/BinaryTreeNode.h \
include/CircularArray.h \
include/CircularArrayPrivate.h \
include/Coder.h \
include/CoderPrivate.h \
include/Coding.h \
include/Collecting.h \
include/Collection.h \
include/CollectionPrivate.h \
include/ConnectedCoder.h \
include/Connection.h \
include/CStream.h \
include/CStreaming.h \
include/DelegatePool.h \
include/Dictionary.h \
include/Enumerating.h \
include/GapArray.h \
include/GapArrayPrivate.h \
include/Heap.h \
include/IndexedCollecting.h \
include/IndexedCollection.h \
include/IndexedCollectionPrivate.h \
include/InvalidationListening.h \
include/Invocation.h \
include/Invoking.h \
include/KeyedCollecting.h \
include/KeyedCollection.h \
include/LinkedList.h \
include/LinkedListNode.h \
include/Lock.h \
include/Locking.h \
include/MachPort.h \
include/Magnitude.h \
include/MallocAddress.h \
include/MappedCollector.h \
include/MemoryStream.h \
include/Notification.h \
include/NotificationDispatcher.h \
include/NSArray.h \
include/NSCoder.h \
include/NSDictionary.h \
include/NSSet.h \
include/NSString.h \
include/Ordering.h \
include/OrderedCollecting.h \
include/OrderedCollection.h \
include/Port.h \
include/Proxy.h \
include/Queue.h \
include/RBTree.h \
include/RBTreeNode.h \
include/RNGAdditiveCongruential.h \
include/RNGBerkeley.h \
include/Random.h \
include/RandomGenerating.h \
include/RawCStream.h \
include/Retaining.h \
include/RetainingNotifier.h \
include/RunLoop.h \
include/Set.h \
include/SplayTree.h \
include/Stack.h \
include/StdioStream.h \
include/Stream.h \
include/Streaming.h \
include/String.h \
include/TcpPort.h \
include/TextCStream.h \
include/Time.h \
include/UdpPort.h \
include/ValueHolding.h \
include/o-array.h \
include/o-array-bas.h \
include/o-array-cbs.h \
include/behavior.h \
include/callbacks.h \
include/fake-main.h \
include/o-hash.h \
include/o-hash-bas.h \
include/o-hash-cbs.h \
include/o-list.h \
include/o-list-bas.h \
include/o-list-cbs.h \
include/o-map.h \
include/o-map-bas.h \
include/o-map-cbs.h \
include/mframe.h \
include/numbers.h \
include/objc-gnu2next.h \
include/objc-malloc.h \
include/all.h \
include/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=$(OEXT)) \
$(NEXTSTEP_CFILES:.c=$(OEXT)) \
$(NEXTSTEP_DERIVED_CFILES:.c=$(OEXT))
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 \
NSCallBacks.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 \
NSGCountedSet.m \
NSGCString.m \
NSGData.m \
NSGDictionary.m \
NSGSet.m \
NSHashTable.m \
NSInvocation.m \
NSLock.m \
NSMapTable.m \
NSMethodSignature.m \
NSNotification.m \
NSNotificationCenter.m \
NSNumber.m \
NSObjCRuntime.m \
NSObject.m \
NSProcessInfo.m \
NSRange.m \
NSRunLoop.m \
NSSet.m \
NSString.m \
NSThread.m \
NSTimer.m \
NSTimeZone.m \
NSValue.m \
NSZone.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 = \
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 \
NSCallBacks.h
GNUSTEP_OBJS = \
$(GNUSTEP_MFILES:.m=$(OEXT)) \
$(GNUSTEP_CFILES:.c=$(OEXT)) \
$(NSVALUE_MFILES:.m=$(OEXT)) \
$(NSNUMBER_MFILES:.m=$(OEXT))
GNUSTEP_HEADERS = \
include/NSArchiver.h \
include/NSArray.h \
include/NSAutoreleasePool.h \
include/NSBitmapCharSet.h \
include/NSBundle.h \
include/NSCharacterSet.h \
include/NSCoder.h \
include/NSConcreteNumber.h \
include/NSConcreteValue.h \
include/NSData.h \
include/NSDate.h \
include/NSDictionary.h \
include/NSException.h \
include/NSGeometry.h \
include/NSGArchiver.h \
include/NSGArray.h \
include/NSGCString.h \
include/NSGData.h \
include/NSGDictionary.h \
include/NSGSet.h \
include/NSHashTable.h \
include/NSInvocation.h \
include/NSLock.h \
include/NSMapTable.h \
include/NSMethodSignature.h \
include/NSNotification.h \
include/NSObjCRuntime.h \
include/NSObject.h \
include/NSProcessInfo.h \
include/NSRange.h \
include/NSRunLoop.h \
include/NSSerialization.h \
include/NSSet.h \
include/NSString.h \
include/NSThread.h \
include/NSTimer.h \
include/NSUtilities.h \
include/NSValue.h \
include/NSZone.h \
include/objc-load.h
HEADERS_INSTALL = @HEADERS_INSTALL@ \
include/preface.h
OBJS_INSTALL = @OBJS_INSTALL@
OBJS_INSTALL_PIC = $(OBJS_INSTALL:$(OEXT)=_pic$(OEXT))
DIST_FILES = \
Makefile.in AUTHORS \
include/config.h.in include/preface.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 Makefile.sed.nt \
include/config.h.in include/preface.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: gnustep/base Foundation lib$(LIBRARY_NAME)$(LIBEXT) @SHARED_LIBRARY@
lib$(LIBRARY_NAME).so.$(VERSION): $(HEADERS_INSTALL) $(OBJS_INSTALL_PIC)
$(CC) -shared -o lib$(LIBRARY_NAME).so.$(VERSION) \
-Wl,-soname,lib$(LIBRARY_NAME).so.$(MAJOR_VERSION) \
$(OBJS_INSTALL_PIC)
rm -f lib$(LIBRARY_NAME).so.$(MAJOR_VERSION)
rm -f lib$(LIBRARY_NAME).so
ln -s lib$(LIBRARY_NAME).so.$(VERSION) \
lib$(LIBRARY_NAME).so.$(MAJOR_VERSION)
ln -s lib$(LIBRARY_NAME).so.$(MAJOR_VERSION) \
lib$(LIBRARY_NAME).so
lib$(LIBRARY_NAME)$(LIBEXT): $(HEADERS_INSTALL) $(OBJS_INSTALL)
$(AR) $(ARFLAGS) $(AROUT)lib$(LIBRARY_NAME)$(LIBEXT) $(OBJS_INSTALL)
$(RANLIB) lib$(LIBRARY_NAME)$(LIBEXT)
# Local links to the include files
gnustep/base:
ln -s . gnustep
ln -s $(srcdir)/include base
# This deletion is necessary, because the CVS repository contains
# an emtpy `Foundation' directory that used to hold the OpenStep headers.
Foundation: ../configure
rm -rf Foundation
ln -s $(srcdir)/include Foundation
install: installdirs all
# Install the library
$(INSTALL_DATA) lib$(LIBRARY_NAME)$(LIBEXT) $(libdir)
$(RANLIB) $(libdir)/lib$(LIBRARY_NAME)$(LIBEXT); \
if [ -n "@SHARED_LIBRARY@" ]; then \
$(INSTALL_DATA) lib$(LIBRARY_NAME).so.$(VERSION) $(libdir) ; \
rm -f $(libdir)/lib$(LIBRARY_NAME).so.$(MAJOR_VERSION) ; \
rm -f $(libdir)/lib$(LIBRARY_NAME).so ; \
ln -s $(libdir)/lib$(LIBRARY_NAME).so.$(VERSION) \
$(libdir)/lib$(LIBRARY_NAME).so.$(MAJOR_VERSION) ; \
ln -s $(libdir)/lib$(LIBRARY_NAME).so.$(MAJOR_VERSION) \
$(libdir)/lib$(LIBRARY_NAME).so ; \
fi
# Install the headers
for file in $(HEADERS_INSTALL); do \
$(INSTALL_DATA) $(srcdir)/$$file \
$(includedir)/gnustep/base/`basename $$file` ; \
done
$(INSTALL_DATA) include/config.h $(includedir)/gnustep/base/config.h
cd $(includedir); rm -f Foundation; ln -s ./gnustep/base ./Foundation
cd $(includedir)/objc; rm -f README; ln -s ../include/README .
installdirs:
$(srcdir)/../mkinstalldirs \
$(libdir) \
$(includedir)/gnustep/base
uninstall:
rm -f $(libdir)/lib$(LIBRARY_NAME)$(LIBEXT)
rm -rf $(includedir)/gnustep/base
rm -f $(includedir)/Foundation
# Creation of NSValue and NSNumber concrete classes from templates
$(NSVALUE_MFILES) : NSCTemplateValue.m
rm -f $@
echo '#define TYPE_ORDER' `echo $@ | sed -e "s,[^0-9],,g"` >$@
cat $(srcdir)/NSCTemplateValue.m >> $@
$(NSNUMBER_MFILES) : NSConcreteNumber.m
rm -f $@
echo '#define TYPE_ORDER' `echo $@ | sed -e "s,[^0-9],,g"` >$@
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
objc-load$(OEXT): dynamic-load.h
dynamic-load.h: ../config.status
rm -f dynamic-load.h
cp $(srcdir)/$(DYNAMIC_LINKER)-load.h dynamic-load.h
include/preface.h: include/preface.h.in ../Version
rm -f $@
sed -e "s/@VERSION@/$(LIBRARY_VAR)_VERSION $(VERSION)/" \
< $< | \
sed -e "s/@MAJOR_VERSION@/$(LIBRARY_VAR)_MAJOR_VERSION $(MAJOR_VERSION)/" | \
sed -e "s/@MINOR_VERSION@/$(LIBRARY_VAR)_MINOR_VERSION $(MINOR_VERSION)/" | \
sed -e "s/@SUBMINOR_VERSION@/$(LIBRARY_VAR)_SUBMINOR_VERSION $(SUBMINOR_VERSION)/" | \
sed -e "s/@GCC_VERSION@/$(LIBRARY_VAR)_GCC_VERSION $(GCC_VERSION)/" | \
sed -e "s/@LIBRARY_NAME@/$(LIBRARY_VAR)_LIBRARY_NAME $(LIBRARY_NAME)/" | \
sed -e "s/@PACKAGE_NAME@/$(LIBRARY_VAR)_PACKAGE_NAME $(PACKAGE_NAME)/" \
> $@
preface$(OEXT): include/preface.h
# Turn off warnings for o_vscanf.c, it generates a bunch of unimportant ones.
o_vscanf$(OEXT): o_vscanf.c
$(CC) -c $(ALL_CPPFLAGS) $(DEFS) $(ALL_OBJCFLAGS) -w -o $@ $<
o_vscanf_pic$(OEXT): o_vscanf.c
$(CC) -c $(ALL_CPPFLAGS) $(DEFS) $(ALL_OBJCFLAGS) -w -o $@ $<
include/o-%-bas.h: include/x-bas.h.in
sed -e "s/@XX@/$*/g" $< > $@
include/o-%-cbs.h: include/x-cbs.h.in
sed -e "s/@YY@/$*/g" $< > $@
o-%-bas.m: x-bas.m.in include/o-%.h
sed -e "s/@XX@/$*/g" $< > $@
o-%-cbs.m: x-cbs.m.in include/o-%.h
sed -e "s/@YY@/$*/g" $< > $@
o-array.o: o-array.m include/o-array.h
include/o-array.h: include/o-array-bas.h include/o-array-cbs.h include/o-hash.h
o-hash.o: o-hash.m include/o-hash.h
include/o-hash.h: include/o-hash-bas.h include/o-hash-cbs.h
o-list.o: o-list.m include/o-list.h
include/o-list.h: include/o-list-bas.h include/o-list-cbs.h include/o-array.h include/o-hash.h
o-map.o: o-map.m include/o-map.h
include/o-map.h: include/o-map-bas.h include/o-map-cbs.h include/o-hash.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 \
*~ \
include/*~ \
objc/*~
clean: mostlyclean
rm -f lib$(LIBRARY_NAME)$(LIBEXT) *$(OEXT)
rm -f $(NSVALUE_MFILES) $(NSNUMBER_MFILES)
distclean: clean
rm -f Makefile
rm -f dynamic-load.h
maintainer-clean: distclean
rm -f TAGS include/preface.h include/config.h
copy-dist: $(DIST_FILES)
mkdir ../snap/src
mkdir ../snap/src/include
mkdir ../snap/src/objc
for file in $(DIST_FILES); do \
ln $$file ../snap/src/$$file ; \
done
ln AUTHORS ../snap