]> git.llucax.com Git - software/mutest.git/blobdiff - sample/Makefile
Fix Python implementation options
[software/mutest.git] / sample / Makefile
index df8b16c708e3605933450f5d9427f5e2cfce0f4c..a225aa09fbc0b28aebce2556ce8ff0c262d09b1e 100644 (file)
@@ -1,26 +1,77 @@
+#
+# This file is part of mutest, a simple micro unit testing framework for C.
+#
+# mutest was written by Leandro Lucarella <llucax@gmail.com> and is released
+# under the BOLA license, please see the LICENSE file or visit:
+# http://blitiri.com.ar/p/bola/
+#
+# This is the samples Makefile.
+#
+# Please, read the README file for more details.
+#
 
 # Show the tests summary
 
 # Show the tests summary
-V=-v
+V = -v
 
 
-TARGET=tester
+# Set to 0 if you don't want to compile the C++ test suite
+CPP_SUITE = 1
+
+CFLAGS = -Wall -std=c89
+CXXFLAGS = -Wall -std=c++98
+LD = $(CC)
+
+TARGET = tester
+RUNNER_SRC = test_suite_runner.c
+MKMUTEST = ../mkmutest
+MUTEST = ../mutest
+MUTEST_H = ../mutest.h
+MUTEST_C = ../mutest.c
 
 OBJS = factorial.o sum.o
 
 OBJS = factorial.o sum.o
-TESTS = factorial_test.o sum_test.o
-TESTER = tester.o
-ALL = $(TESTER) $(OBJS) $(TESTS)
+TEST_OBJS = factorial_test.o sum_test.o init_fail_test.o
+MUTEST_OBJ = mutest.o
+RUNNER_OBJ = $(RUNNER_SRC:.c=.o)
+ALL_OBJS = $(RUNNER_OBJ) $(OBJS) $(TEST_OBJS) $(MUTEST_OBJ)
+TEST_SOS = $(TEST_OBJS:.o=.so)
+
+ifeq ($(CPP_SUITE), 1)
+TEST_OBJS += exception_test.o
+LD = $(CXX)
+endif
 
 all: $(TARGET)
 
 
 all: $(TARGET)
 
-$(TARGET): $(ALL)
+py: $(TEST_SOS)
+
+$(TARGET): $(ALL_OBJS)
+       $(LD) $(LDFLAGS) -o $@ $^
+
+$(RUNNER_SRC): $(MKMUTEST_OBJ) $(MUTEST_H) $(TEST_OBJS)
+       $(MKMUTEST) $(MUTEST_H) $(TEST_OBJS) > $@
+
+factorial_test.so: factorial.c
 
 
-$(TESTER): $(OBJS) $(TESTS)
-       ../mkmutest $(TESTS) | gcc -xc -o $(TESTER) -c -
+sum_test.so: sum.c
+
+$(MUTEST_OBJ): $(MUTEST_C)
+       $(CC) $(CFLAGS) -c -o $@ $^
 
 test: $(TARGET)
        ./$(TARGET) $(V)
 
 
 test: $(TARGET)
        ./$(TARGET) $(V)
 
+test-py: $(TEST_SOS)
+       $(MUTEST) $(V) -a
+
 clean:
 clean:
-       $(RM) $(TARGET) $(ALL)
+       $(RM) $(TARGET) $(TEST_SOS) $(ALL_OBJS) $(RUNNER_SRC)
+
+.c.so:
+       $(CC) $(CFLAGS) $(LDFLAGS) -DMUTEST_PY -fPIC -shared -o $@ $^
+
+.cpp.so:
+       $(CXX) $(CXXFLAGS) $(LDFLAGS) -DMUTEST_PY -fPIC -shared -o $@ $^
+
+.SUFFIXES: .so
 
 .PHONY: all test clean
 
 
 .PHONY: all test clean