Add missing clean targets in 5 impls.
[jackhill/mal.git] / c / Makefile
CommitLineData
31690700 1USE_READLINE ?=
6b3ecaa7 2USE_GC ?= 1
d9f0fb51
NB
3CFLAGS ?= -g -O2
4LDFLAGS ?= -g
31690700 5
31690700
JM
6#####################
7
8SRCS = 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
11OBJS = $(SRCS:%.c=%.o)
12BINS = $(OBJS:%.o=%)
ea81a808
JM
13OTHER_OBJS = types.o readline.o reader.o printer.o env.o core.o interop.o
14OTHER_HDRS = types.h readline.h reader.h printer.h core.h interop.h
31690700
JM
15
16GLIB_CFLAGS ?= $(shell pkg-config --cflags glib-2.0)
17GLIB_LDFLAGS ?= $(shell pkg-config --libs glib-2.0)
18
d76bd06b
VS
19FFI_CFLAGS ?= $(shell pkg-config libffi --cflags)
20FFI_LDFLAGS ?= $(shell pkg-config libffi --libs)
21
b81b2a7e 22ifeq ($(shell uname -s),Darwin)
d9f0fb51 23 darwin_CPPFLAGS ?= -DOSX=1
b81b2a7e
LB
24endif
25
31690700
JM
26ifeq (,$(USE_READLINE))
27RL_LIBRARY ?= edit
28else
29RL_LIBRARY ?= readline
d9f0fb51 30 rl_CFLAGS ?= -DUSE_READLINE=1
31690700
JM
31endif
32
d9f0fb51
NB
33ifneq (,$(USE_GC))
34 gc_CFLAGS ?= -DUSE_GC=1
35 gc_LIBS ?= -lgc
6b3ecaa7
DM
36endif
37
d9f0fb51
NB
38# Rewrite CPPFLAGS for the Make recipes, but let existing user options
39# take precedence.
40override CPPFLAGS := \
41 ${darwin_CPPFLAGS} ${rl_CFLAGS} ${gc_CFLAGS} ${GLIB_CFLAGS} ${FFI_CFLAGS} \
42 ${CPPFLAGS}
43override LDLIBS += \
44 ${gc_LIBS} -l${RL_LIBRARY} ${GLIB_LDFLAGS} ${FFI_LDFLAGS} -ldl
31690700
JM
45
46#####################
47
b6dc3e37
JM
48all: $(BINS)
49
50dist: mal
31690700
JM
51
52mal: $(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
60clean:
61 rm -f $(OBJS) $(BINS) $(OTHER_OBJS) mal