diff --git a/c/templates/GNUmakefile b/c/templates/GNUmakefile index 46767fd..ae49b88 100644 --- a/c/templates/GNUmakefile +++ b/c/templates/GNUmakefile @@ -9,46 +9,44 @@ # code. # # To use this makefile (GNU make only): -# "make": build with all predefined tests (without editing test source code) -# "make debugall": build with all predefined tests and debug code -# "make mem": perform memcheck with all tests enabled -# "make unit": build standalone (unit) test -# "make debug": build standalone test with debugging code +# 1) copy it into exercise directory +# 2) add ex.h to exercise include file +# 3) add ex.c to exercise source code, and create a suitable main function +# 4) use make with one of the following targets : +# all: compile and run all predefined tests. +# nowarn: compile with no -Wall and -Wextra, and run all predefined tests +# debug: compile with -DDEBUG and run all predefined tests +# mem: perform memcheck with all tests enabled +# unit: build standalone (unit) binary +# unitnowarn: build standalone binary with -Wall and -Wextra disabled +# unitdebug: build standalone binary with -DDEBUG # # Original 'makefile' targets can be used (test, memcheck, clean, ...) -.PHONY: default all mem unit debug std debugtest +.PHONY: default all nowarn debug mem unitnowarn unitdebug unit default: all -# default is to build with all predefined tests -BUILD := teststall - include makefile all: CFLAGS+=-DTESTALL all: clean test nowarn: CFLAGS:=$(filter-out -Wextra -Wall,$(CFLAGS)) -nowarn: clean test +nowarn: clean all -debugall: CFLAGS+=-DDEBUG -debugall: all - -debugtest: CFLAGS+=-DDEBUG -debugtest: test +debug: CFLAGS+=-DDEBUG +debug: all mem: CFLAGS+=-DTESTALL mem: clean memcheck +unitnowarn: CFLAGS:=$(filter-out -Wextra -Wall,$(CFLAGS)) +unitnowarn: clean unit + +unitdebug: CFLAGS+=-DDEBUG +unitdebug: clean unit + unit: CFLAGS+=-DUNIT_TEST -unit: clean std - -debug: CFLAGS+=-DUNIT_TEST -DDEBUG -debug: clean std - -debugtest: CFLAGS+=-DDEBUG -debugtest: test - -std: src/*.c src/*.h +unit: src/*.c src/*.h $(CC) $(CFLAGS) src/*.c -o tests.out $(LIBS)