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