master
1#!/usr/bin/make -f
2SHELL=/bin/sh
3
4CC=clang
5TEST_LIBS = -lcgreen -lm
6
7BUILDDIR := build
8OBJS := $(addprefix $(BUILDDIR)/,avl_tree.o rb_tree.o sort.o graph.o matrix.o meldable_heap.o btree.o)
9TEST_OBJS := $(addprefix $(BUILDDIR)/,avl_tree_test.o rb_tree_test.o sort_test.o graph_test.o matrix_test.o meldable_heap_test.o btree_test.o)
10
11$(BUILDDIR)/%.o : %.c
12 $(COMPILE.c) $(OUTPUT_OPTION) $<
13
14.PHONY: all
15all: $(OBJS) $(BUILDDIR)/main.o
16 $(CC) $(OBJS) $(BUILDDIR)/main.o $(TEST_LIBS) -o $(BUILDDIR)/program
17
18.PHONY: test
19test: $(OBJS) $(TEST_OBJS)
20 $(CC) $(OBJS) $(TEST_OBJS) $(TEST_LIBS) -o $(BUILDDIR)/test
21
22$(OBJS): | $(BUILDDIR)
23
24$(TEST_OBJS): | $(BUILDDIR)
25
26$(BUILDDIR):
27 mkdir $(BUILDDIR)
28
29.PHONY: clean
30clean:
31 rm -fr build
32
33run : all
34 ./build/program
35
36run_test : test
37 cgreen-runner -c -v $(BUILDDIR)/test