1OBJECTS= dictionary.o system.o fileaccess.o float.o double.o prefix.o search.o softcore.o stack.o tools.o vm.o primitives.o bit.o lzuncompress.o unix.o utility.o hash.o callback.o word.o extras.o 2HEADERS= ficl.h ficlplatform/unix.h 3# 4# Flags for shared library 5#TARGET= -Dlinux # riscos MOTO_CPU32 6SHFLAGS = -fPIC 7CFLAGS= -O $(SHFLAGS) -Wall 8CPPFLAGS= $(TARGET) -I. 9CC = cc 10LIB = ar cr 11RANLIB = ranlib 12 13MAJOR = 4 14MINOR = 1.0 15 16ficl: main.o $(HEADERS) libficl.a 17 $(CC) $(CFLAGS) $(LDFLAGS) main.o -o ficl -L. -lficl -lm 18 19lib: libficl.so.$(MAJOR).$(MINOR) 20 21# static library build 22libficl.a: $(OBJECTS) 23 $(LIB) libficl.a $(OBJECTS) 24 $(RANLIB) libficl.a 25 26# shared library build 27libficl.so.$(MAJOR).$(MINOR): $(OBJECTS) 28 $(CC) $(LDFLAGS) -shared -Wl,-soname,libficl.so.$(MAJOR).$(MINOR) \ 29 -o libficl.so.$(MAJOR).$(MINOR) $(OBJECTS) 30 ln -sf libficl.so.$(MAJOR).$(MINOR) libficl.so 31 32main: main.o ficl.h sysdep.h libficl.so.$(MAJOR).$(MINOR) 33 $(CC) $(CFLAGS) $(LDFLAGS) main.o -o main -L. -lficl -lm 34 ln -sf libficl.so.$(MAJOR).$(MINOR) libficl.so.$(MAJOR) 35 36# depend explicitly to help finding source files in another subdirectory, 37# and repeat commands since gmake doesn't understand otherwise 38ansi.o: ficlplatform/ansi.c $(HEADERS) 39 $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< 40unix.o: ficlplatform/unix.c $(HEADERS) 41 $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< 42 43# 44# generic object code 45# 46.SUFFIXES: .cxx .cc .c .o 47 48.c.o: 49 $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< 50 51.cxx.o: 52 $(CPP) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $< 53 54.cc.o: 55 $(CPP) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $< 56# 57# generic cleanup code 58# 59clean: 60 rm -f *.o *.a libficl.* ficl 61