-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCommon.mk
63 lines (43 loc) · 1.46 KB
/
Common.mk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
C_SRC+= \
threadlib.c memory.c listlib.c testlib.c \
sampler.c audio.c game.c vector.c \
gambitmain.c realmain.c stb_image.c
SCM_LIB_SRC=link.scm
GAMBIT_ROOT?=/usr/local/Gambit-C
GSC=$(GAMBIT_ROOT)/bin/gsc
XML_INCLUDE:=-I/usr/include/libxml2
CFLAGS+=-I$(GAMBIT_ROOT)/include $(XML_INCLUDE)
LDFLAGS+=-L$(GAMBIT_ROOT)/lib -lpthread
MKMOD=make -f Module.mk
MAKE_XML2=$(MKMOD) SCM_SRC=xml2.scm OUTPUT=xml2 CFLAGS="$(CFLAGS)" LDFLAGS="-lxml2"
SCM_LIB_C=$(patsubst %.scm,%.c,$(SCM_LIB_SRC)) \
link_.c
SCM_OBJ=$(patsubst %.c,%.o,$(SCM_LIB_C))
C_OBJS=$(patsubst %.c,%.o,$(C_SRC))
SCM_GAMBIT_OBJ=$(patsubst %.scm,%.o1,$(SCM_GAMBIT_SRC))
SCM_R5_OBJ=$(patsubst %.scm,%.o1,$(SCM_R5_SRC))
all: $(BIN) $(SCM_GAMBIT_OBJ) $(SCM_R5_OBJ) xml2.o1.o
SCM_FILES=math.scm common.scm scmlib.scm rect.scm spatial.scm sparrow.scm
scmlib:
$(GSC) -track-scheme -keep-c $(SCM_FILES)
$(SCM_LIB_C): $(SCM_LIB_SRC)
$(GSC) -f -link -track-scheme $(SCM_LIB_SRC)
$(SCM_OBJ): $(SCM_LIB_C)
$(CC) -D___DYNAMIC $(CFLAGS) -c $(SCM_LIB_C)
$(SCM_R5_OBJ): $(SCM_R5_SRC)
$(GSC) -:s -o $@ $<
$(SCM_GAMBIT_OBJ): $(SCM_GAMBIT_SRC)
$(GSC) -o $@ $<
$(BIN): $(SCM_OBJ) $(C_OBJS)
$(CC) $(CFLAGS) -o $@ $(C_OBJS) $(SCM_OBJ) $(LDFLAGS) -lgambc
clean:
rm -rf *.o* $(SCM_LIB_C) $(BIN)
$(MAKE_XML2) clean $(patsubst %.scm,%.c,$(SCM_FILES))
test_bin: memory.o testlib_test.o
$(CC) $(CFLAGS) -o $@ memory.o testlib_test.o $(LDFLAGS)
test: test_bin
./test_bin
xml2.o1.o: xml2.scm
$(MAKE_XML2)
xml2: xml2.o1.o
.phony: all