# # Tests makefile for Objective-C Class Library # Copyright (C) 1993, 1995, 1996 Free Software Foundation, Inc. # # Written by: R. Andrew McCallum # Dept. of Computer Science, U. of Rochester, Rochester, NY 14627 # # 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@ CC = @CC@ CFLAGS = -Wall -Wno-implicit -g -O CPPFLAGS = LDFLAGS = DYNAMIC_BUNDLER_LINKER=@DYNAMIC_BUNDLER_LINKER@ DYNAMIC_LDFLAGS=@DYNAMIC_LDFLAGS@ DYNAMIC_CFLAGS=@DYNAMIC_CFLAGS@ DEFS = @DEFS@ LIBS = -L../src -lobjects @LIBOBJC@ @LIBS@ -lm #### End of system configuration section. #### include $(srcdir)/../Makeconf include $(srcdir)/../Version # Not needed anymore? NEXT_NEXT_INCLUDES = -I/usr/include OBJECTS_NEXT_INCLUDES = -I$(srcdir)/../src NEXT_INCLUDES = @NEXT_INCLUDES@ ALL_CPPFLAGS = -I../src -I$(srcdir)/../src $(NEXT_INCLUDES) $(CPPFLAGS) ALL_CFLAGS = $(CFLAGS) ALL_OBJCFLAGS = $(CFLAGS) -Wno-protocol ALL_LDFLAGS = $(LDFLAGS) $(LIBS) .SUFFIXES: .m .m.o: $(CC) -c $(ALL_CPPFLAGS) $(DEFS) $(ALL_OBJCFLAGS) $< -o $*.o .c.o: $(CC) -c $(ALL_CPPFLAGS) $(DEFS) $(ALL_CFLAGS) $< -o $*.o SRCS = \ test01.m \ test02.m \ test03.m \ test04.m \ test05.m \ test06.m \ test07.m \ test08.m \ test10.m \ test11.m \ test12.m \ test13.m \ pipes.m \ server.m \ client.m \ string.m \ values.m \ nsarray.m \ nsbundle.m \ nsdictionary.m \ nsset.m \ nsprocessinfo.m # nsarchiving.m HDRS = \ server.h EXCS = $(SRCS:.m=) BUNDLE_NAME=LoadMe DYNAMIC_MFILES = \ LoadMe.m \ MyCategory.m \ SecondClass.m DYNAMIC_HFILES = \ LoadMe.h \ MyCategory.h \ SecondClass.h DYNAMIC_OFILES = $(DYNAMIC_MFILES:.m=.o) RCS_FILES = $(SRCS) $(HDRS) $(DYNAMIC_MFILES) $(DYNAMIC_HFILES) \ Makefile.in NXStringTable.example DIST_FILES = $(RCS_FILES) # type 'make bundles' if you also want to check bundles. all: $(EXCS) # This works for GNU make, but not others. # %: %.o $(srcdir)/../src/libobjects.a # $(CC) $(ALL_CFLAGS) $< -o $@ $(ALL_LDFLAGS) # How can I do this in a better way than the ugliness below? # (but also have it work on old-style /bin/make) LINK_CMD = $(CC) $(ALL_CFLAGS) $@.o -o $@ $(ALL_LDFLAGS) test01: test01.o ../src/libobjects.a $(LINK_CMD) test02: test02.o ../src/libobjects.a $(LINK_CMD) test03: test03.o ../src/libobjects.a $(LINK_CMD) test04: test04.o ../src/libobjects.a $(LINK_CMD) test05: test05.o ../src/libobjects.a $(LINK_CMD) test06: test06.o ../src/libobjects.a $(LINK_CMD) test07: test07.o ../src/libobjects.a $(LINK_CMD) test08: test08.o ../src/libobjects.a $(LINK_CMD) test10: test10.o ../src/libobjects.a $(LINK_CMD) test11: test11.o ../src/libobjects.a $(LINK_CMD) test12: test12.o ../src/libobjects.a $(LINK_CMD) test13: test13.o ../src/libobjects.a $(LINK_CMD) pipes: pipes.o ../src/libobjects.a $(LINK_CMD) server: server.o ../src/libobjects.a $(LINK_CMD) client: client.o ../src/libobjects.a $(LINK_CMD) string: string.o ../src/libobjects.a $(LINK_CMD) values: values.o ../src/libobjects.a $(LINK_CMD) nsarray: nsarray.o ../src/libobjects.a $(LINK_CMD) nsbundle: nsbundle.o ../src/libobjects.a $(CC) $(ALL_CFLAGS) $(DYNAMIC_LDFLAGS) $@.o -o $@ $(ALL_LDFLAGS) nsdictionary: nsdictionary.o ../src/libobjects.a $(LINK_CMD) nsset: nsset.o ../src/libobjects.a $(LINK_CMD) nsprocessinfo: nsprocessinfo.o ../src/libobjects.a $(LINK_CMD) #nsarchiving: nsarray.o ../src/libobjects.a # $(LINK_CMD) install: uninstall: echo-excs: @echo $(EXCS) remote: server client # These next few lines give an example of how to compile, link and store # a bundle. bundles: $(BUNDLE_NAME).bundle/$(BUNDLE_NAME) $(DYNAMIC_OFILES): $(DYNAMIC_MFILES) $(DYNAMIC_HFILES) $(CC) -c $(ALL_CPPFLAGS) $(DEFS) $(DYNAMIC_CFLAGS) $(ALL_OBJCFLAGS) \ $(srcdir)/$*.m -o $*.o $(BUNDLE_NAME).bundle/$(BUNDLE_NAME): $(DYNAMIC_OFILES) -mkdir $(BUNDLE_NAME).bundle -mkdir $(BUNDLE_NAME).bundle/English.lproj $(DYNAMIC_BUNDLER_LINKER) -o $(BUNDLE_NAME).bundle/$(BUNDLE_NAME) \ $(DYNAMIC_OFILES) cp $(srcdir)/NXStringTable.example $(BUNDLE_NAME).bundle/English.lproj mostlyclean: rm -f core *~ test08.data textcoder.txt clean: mostlyclean rm -f *.o $(EXCS) rm -rf $(BUNDLE_NAME).bundle distclean: clean rm -f Makefile config.status realclean: distclean rm -f TAGS copy-dist: $(DIST_FILES) mkdir ../snap/checks ln $(DIST_FILES) ../snap/checks Makefile: $(srcdir)/Makefile.in cd ..; $(SHELL) config.status