]> git.llucax.com Git - software/mutest.git/blob - sample/Makefile
Add some C++ support
[software/mutest.git] / sample / Makefile
1 #
2 # This file is part of mutest, a simple micro unit testing framework for C.
3 #
4 # mutest was written by Leandro Lucarella <llucax@gmail.com> and is released
5 # under the BOLA license, please see the LICENSE file or visit:
6 # http://blitiri.com.ar/p/bola/
7 #
8 # This is the samples Makefile.
9 #
10 # Please, read the README file for more details.
11 #
12
13 # Show the tests summary
14 V = -v
15
16 # Set to 0 if you don't want to compile the C++ test suite
17 CPP_SUITE = 1
18
19 CFLAGS = -Wall -std=c89
20 CXXFLAGS = -Wall -std=c++98
21 LD = $(CC)
22
23 TARGET = tester
24 RUNNER_SRC = test_suite_runner.c
25 MKMUTEST = ../mkmutest
26 MUTEST = ../mutest
27 MUTEST_H = ../mutest.h
28 MUTEST_C = ../mutest.c
29
30 OBJS = factorial.o sum.o
31 TEST_OBJS = factorial_test.o sum_test.o init_fail_test.o
32 MUTEST_OBJ = mutest.o
33 RUNNER_OBJ = $(RUNNER_SRC:.c=.o)
34 ALL_OBJS = $(RUNNER_OBJ) $(OBJS) $(TEST_OBJS) $(MUTEST_OBJ)
35 TEST_SOS = $(TEST_OBJS:.o=.so)
36
37 ifeq ($(CPP_SUITE), 1)
38 TEST_OBJS += exception_test.o
39 LD = $(CXX)
40 endif
41
42 all: $(TARGET)
43
44 py: $(TEST_SOS)
45
46 $(TARGET): $(ALL_OBJS)
47         $(LD) $(LDFLAGS) -o $@ $^
48
49 $(RUNNER_SRC): $(MKMUTEST_OBJ) $(MUTEST_H) $(TEST_OBJS)
50         $(MKMUTEST) $(MUTEST_H) $(TEST_OBJS) > $@
51
52 factorial_test.so: factorial.c
53
54 sum_test.so: sum.c
55
56 $(MUTEST_OBJ): $(MUTEST_C)
57         $(CC) $(CFLAGS) -c -o $@ $^
58
59 test: $(TARGET)
60         ./$(TARGET) $(V)
61
62 test-py: $(TEST_SOS)
63         $(MUTEST) $(V) -a
64
65 clean:
66         $(RM) $(TARGET) $(TEST_SOS) $(ALL_OBJS) $(RUNNER_SRC)
67
68 .c.so:
69         $(CC) $(CFLAGS) $(LDFLAGS) -DMUTEST_PY -fPIC -shared -o $@ $^
70
71 .cpp.so:
72         $(CXX) $(CXXFLAGS) $(LDFLAGS) -DMUTEST_PY -fPIC -shared -o $@ $^
73
74 .SUFFIXES: .so
75
76 .PHONY: all test clean
77