# /*-----------------------------------------------------------------------*/
# /* WAMCC INRIA Rocquencourt - CLoE Project */
# /* Daniel Diaz */
# /* */
# /* Makefile (local compilation) */
# /*-----------------------------------------------------------------------*/
# the following variables are given by ../Makefile at installation time
COMPILER = wamcc
INCPATH = `pwd`
LIBPATH = `pwd`
CC ?= gcc
WCC = w_$(CC)
# other local variables
#CFLAGS = -O2
CFLAGINLIN= -finline-functions
LFLAGS =
BMF = bmf_$(COMPILER)
OBJLIB = machine.o wam_engine.o atom_pred.o debugger.o hash.o malloc.o\
builtin.o
OBJLIBPP = machine.o wam_engine_pp.o atom_pred.o debugger.o hash.o malloc.o\
builtin.o
EXECS = configure $(WCC) $(COMPILER) $(BMF) hex2pl pl2hex
all: $(WCC) lib$(COMPILER).a lib$(COMPILER)_pp.a $(BMF) hex2pl pl2hex $(COMPILER)
lib$(COMPILER).a: $(OBJLIB)
-rm lib$(COMPILER).a
ar rc lib$(COMPILER).a $(OBJLIB)
ranlib lib$(COMPILER).a
lib$(COMPILER)_pp.a: $(OBJLIBPP)
-rm lib$(COMPILER)_pp.a
ar rc lib$(COMPILER)_pp.a $(OBJLIBPP)
ranlib lib$(COMPILER)_pp.a
# objects
machine.o: machine.h archi.h wam_engine.h machine.c
./$(WCC) $(CFLAGS) -c machine.c
wam_engine.o: machine.h archi.h wam_engine.h atom_pred.h wam_engine.c
./$(WCC) $(CFLAGS) -c wam_engine.c
wam_engine_pp.o: machine.h archi.h wam_engine.h atom_pred.h wam_engine.c
./$(WCC) $(CFLAGS) -DWAM_PROFILE -c -o wam_engine_pp.o wam_engine.c
atom_pred.o: machine.h archi.h wam_engine.h atom_pred.h atom_pred.c
./$(WCC) $(CFLAGS) -c atom_pred.c
debugger.o: machine.h archi.h wam_engine.h atom_pred.h debugger.c
./$(WCC) $(CFLAGS) -c debugger.c
hash.o: machine.h hash.c
./$(WCC) $(CFLAGS) -c hash.c
# execs
configure: configure.c machine.h ../Makefile
$(CC) $(CFLAGS) $(LFLAGS) -DCOMPILER='"'$(COMPILER)'"' \
-DCC='"'$(CC)'"' -DWCC='"'$(WCC)'"' \
-DINCPATH='"'$(INCPATH)'"' -DLIBPATH='"'$(LIBPATH)'"' \
-o configure configure.c
$(WCC): configure archi.def
./configure
chmod a+x $(WCC)
$(BMF): bmf.c
$(CC) $(CFLAGS) $(LFLAGS) \
-DCOMPILER='"'$(COMPILER)'"' -DWCC='"'$(WCC)'"' \
-o $(BMF) bmf.c
hex2pl: hex2pl.c
$(CC) $(CFLAGS) $(LFLAGS) -o hex2pl hex2pl.c
pl2hex: pl2hex.c
$(CC) $(CFLAGS) $(LFLAGS) -o pl2hex pl2hex.c
$(COMPILER):
./$(WCC) $(CFLAGS) -c wamcc*.c
./$(WCC) $(CFLAGS) $(LFLAGS) -s -o $(COMPILER) wamcc*.o -l$(COMPILER)
sics_comp:
{ echo "[b], c, asserta((compiler_name($(COMPILER)):-!)). "; \
echo "save('s_$(COMPILER)'), go. "; \
} | sicstus_native
# clean
clean:
-rm *.o
-rm *.a
-rm $(EXECS)
syntax highlighted by Code2HTML, v. 0.9.1