-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
43 lines (32 loc) · 916 Bytes
/
Copy pathMakefile
File metadata and controls
43 lines (32 loc) · 916 Bytes
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
OBJDIR := obj
SOURCES := $(wildcard *.c)
OBJECTS := $(patsubst %.c,$(OBJDIR)/%.o,$(SOURCES))
CFLAGS := -g -fPIC
LDFLAGS := -g -ldl -lm
ifeq ($(OS),Windows_NT)
LIBRARY := libjitc.dll
STATIC_LIBRARY := libjitc.a
TEST := jitc-tests.exe
else
LIBRARY := libjitc.so
STATIC_LIBRARY := libjitc.a
TEST := jitc-tests
endif
all: $(LIBRARY) $(STATIC_LIBRARY)
$(OBJDIR)/%.o: %.c
@mkdir -p $(OBJDIR)
gcc -c $< $(CFLAGS) -o $@
$(LIBRARY): $(OBJECTS)
gcc $^ $(LDFLAGS) -shared -o $@
$(STATIC_LIBRARY): $(OBJECTS)
ar rcs $@ $^
$(TEST): $(STATIC_LIBRARY) tester/test.c
gcc $^ -L. -ljitc $(CFLAGS) $(LDFLAGS) -o $@
test: $(TEST)
@./$(TEST) $(shell find tests -name "*.c")
clean:
rm -rf $(LIBRARY) $(STATIC_LIBRARY) $(TEST) $(OBJDIR)
$(OBJDIR)/%.d: %.c
@mkdir -p $(shell dirname $@)
gcc $(CFLAGS) -MM -MT $(@:.d=.o) $^ -o $@
-include $(OBJECTS:.o=.d)