Commit | Line | Data |
---|---|---|
31690700 | 1 | USE_READLINE ?= |
6b3ecaa7 | 2 | USE_GC ?= 1 |
d9f0fb51 NB |
3 | CFLAGS ?= -g -O2 |
4 | LDFLAGS ?= -g | |
31690700 | 5 | |
31690700 JM |
6 | ##################### |
7 | ||
8 | SRCS = step0_repl.c step1_read_print.c step2_eval.c step3_env.c \ | |
9 | step4_if_fn_do.c step5_tco.c step6_file.c step7_quote.c \ | |
90f618cb | 10 | step8_macros.c step9_try.c stepA_mal.c |
31690700 JM |
11 | OBJS = $(SRCS:%.c=%.o) |
12 | BINS = $(OBJS:%.o=%) | |
ea81a808 JM |
13 | OTHER_OBJS = types.o readline.o reader.o printer.o env.o core.o interop.o |
14 | OTHER_HDRS = types.h readline.h reader.h printer.h core.h interop.h | |
31690700 JM |
15 | |
16 | GLIB_CFLAGS ?= $(shell pkg-config --cflags glib-2.0) | |
17 | GLIB_LDFLAGS ?= $(shell pkg-config --libs glib-2.0) | |
18 | ||
d76bd06b VS |
19 | FFI_CFLAGS ?= $(shell pkg-config libffi --cflags) |
20 | FFI_LDFLAGS ?= $(shell pkg-config libffi --libs) | |
21 | ||
b81b2a7e | 22 | ifeq ($(shell uname -s),Darwin) |
d9f0fb51 | 23 | darwin_CPPFLAGS ?= -DOSX=1 |
b81b2a7e LB |
24 | endif |
25 | ||
31690700 JM |
26 | ifeq (,$(USE_READLINE)) |
27 | RL_LIBRARY ?= edit | |
28 | else | |
29 | RL_LIBRARY ?= readline | |
d9f0fb51 | 30 | rl_CFLAGS ?= -DUSE_READLINE=1 |
31690700 JM |
31 | endif |
32 | ||
d9f0fb51 NB |
33 | ifneq (,$(USE_GC)) |
34 | gc_CFLAGS ?= -DUSE_GC=1 | |
35 | gc_LIBS ?= -lgc | |
6b3ecaa7 DM |
36 | endif |
37 | ||
d9f0fb51 NB |
38 | # Rewrite CPPFLAGS for the Make recipes, but let existing user options |
39 | # take precedence. | |
40 | override CPPFLAGS := \ | |
41 | ${darwin_CPPFLAGS} ${rl_CFLAGS} ${gc_CFLAGS} ${GLIB_CFLAGS} ${FFI_CFLAGS} \ | |
42 | ${CPPFLAGS} | |
43 | override LDLIBS += \ | |
44 | ${gc_LIBS} -l${RL_LIBRARY} ${GLIB_LDFLAGS} ${FFI_LDFLAGS} -ldl | |
31690700 JM |
45 | |
46 | ##################### | |
47 | ||
b6dc3e37 JM |
48 | all: $(BINS) |
49 | ||
50 | dist: mal | |
31690700 JM |
51 | |
52 | mal: $(word $(words $(BINS)),$(BINS)) | |
53 | cp $< $@ | |
54 | ||
55 | $(OBJS) $(OTHER_OBJS): %.o: %.c $(OTHER_HDRS) | |
31690700 JM |
56 | |
57 | $(patsubst %.o,%,$(filter step%,$(OBJS))): $(OTHER_OBJS) | |
58 | $(BINS): %: %.o | |
31690700 JM |
59 | |
60 | clean: | |
61 | rm -f $(OBJS) $(BINS) $(OTHER_OBJS) mal |