ref: 7d02e382d314d5bdde7978ccb7a64ea9201d03db
dir: /Makefile/
SRCDIR= . VPATH= ${SRCDIR}:${SRCDIR}/softcore # core: OBJECTS= 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 utility.o hash.o callback.o word.o extras.o $(OBJECTS.$(platform)) HEADERS= ficl.h $(HEADERS.$(platform)) # platform dependent source: OBJECTS.unix= unix.o HEADERS.unix= ficlplatform/unix.h OBJECTS.ansi= ansi.o HEADERS.ansi= ficlplatform/ansi.h # soft core: SOURCES = softcore.fr ifbrack.fr prefix.fr ficl.fr jhlocal.fr marker.fr oo.fr classes.fr string.fr ficllocal.fr fileaccess.fr # # Flags for shared library SHFLAGS = -fPIC CFLAGS= $(CFLAGS.$(platform)) -O ${SHFLAGS} -Wall CPPFLAGS= $(CPPFLAGS.$(platform)) -I. # Platform dependent flags: CFLAGS.unix= # empty CPPFLAGS.unix= # empty CFLAGS.ansi= -ansi CPPFLAGS.ansi= -ansi -DFICL_ANSI # Default platform is "unix" platform= unix # CC = pcc LIB = ar cr RANLIB = echo MAJOR = 4 MINOR = 1.0 .PHONY: all test clean .PHONY: lib all: ficl test: wd="$$(pwd)"; cd test && "$${wd}"/ficl ficltest.fr < /dev/null ficl: main.o ${HEADERS} libficl.a ${CC} ${CFLAGS} ${LDFLAGS} -o $@ main.o -L. -lficl -lm lib: libficl.so.${MAJOR}.${MINOR} # static library build libficl.a: ${OBJECTS} ${LIB} libficl.a ${OBJECTS} ${RANLIB} libficl.a # shared library build libficl.so.${MAJOR}.${MINOR}: ${OBJECTS} ${CC} ${LDFLAGS} -shared -Wl,-soname,$@ -o $@ ${OBJECTS} ln -sf libficl.so.${MAJOR}.${MINOR} libficl.so main: main.o ficl.h sysdep.h libficl.so.${MAJOR}.${MINOR} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ main.o -L. -lficl -lm ln -sf libficl.so.${MAJOR}.${MINOR} libficl.so.${MAJOR} # depend explicitly to help finding source files in another subdirectory, # and repeat commands since gmake doesn't understand otherwise ansi.o: ficlplatform/ansi.c ${HEADERS} ${CC} ${CFLAGS} ${CPPFLAGS} -c -o $@ $< unix.o: ficlplatform/unix.c ${HEADERS} ${CC} ${CFLAGS} ${CPPFLAGS} -c -o $@ $< # generate softcore source softcore.c: ${SOURCES} (cd softcore && exec ${MAKE} softcore.c) && cp softcore/softcore.c . # # generic object code # .SUFFIXES: .cxx .cc .c .o .c.o: ${CC} ${CFLAGS} ${CPPFLAGS} -c -o $@ $< .cxx.o: ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $< .cc.o: ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c -o $@ $< # # generic cleanup code # clean: rm -f *.o *.a *.core libficl.* ficl rm -f softcore.c softcore/softcore.c softcore/makesoftcore