summaryrefslogtreecommitdiff
path: root/test/common.mk
diff options
context:
space:
mode:
authorKévin Le Gouguec <kevin.legouguec@airbus.com>2018-12-04 08:15:59 +0100
committerKévin Le Gouguec <kevin.legouguec@airbus.com>2018-12-04 10:40:58 +0100
commitdded798f1a038c8482fcc5d41824a9161d0a60c2 (patch)
treea52436ee5e61d639aaceaeae2efb587a6e68f57b /test/common.mk
parent950bd7432cd486d29503444b0557d7a1452efd07 (diff)
downloadlilliput-ae-implem-dded798f1a038c8482fcc5d41824a9161d0a60c2.tar.xz
[WIP] screw with folders organization
Diffstat (limited to 'test/common.mk')
-rw-r--r--test/common.mk66
1 files changed, 66 insertions, 0 deletions
diff --git a/test/common.mk b/test/common.mk
new file mode 100644
index 0000000..6d4cb28
--- /dev/null
+++ b/test/common.mk
@@ -0,0 +1,66 @@
+# use "make VERBOSE=1" to have full commands printed out.
+VERBOSE = 0
+ifeq ($(VERBOSE),1)
+Q =
+else
+Q = @
+endif
+
+
+test_dir = $(dir $(lastword $(MAKEFILE_LIST)))
+root_dir = $(test_dir)/..
+results_dir = $(root_dir)/results
+src_dir = $(root_dir)/src
+
+
+nist_flags = -std=c99 -Wall -Wextra -Wshadow -fsanitize=address,undefined -O2
+CFLAGS += -I$(src_dir) -I$(variant_dir) $(nist_flags) -Werror
+LDFLAGS += $(nist_flags)
+
+
+.PHONY: test
+
+
+$(results_dir):
+ @ mkdir -p $@
+
+$(results_dir)/%.o: $(src_dir)/%.c
+ @ mkdir -p $(dir $@)
+ @ echo "CC $@"
+ $(Q) gcc -c $< $(CFLAGS) -o $@
+
+$(results_dir)/test-%: $(results_dir)/test/test-%.o
+ @ echo "LD $@"
+ $(Q) gcc $^ $(LDFLAGS) -o $@
+
+$(results_dir)/traces-%: $(results_dir)/test/traces-%.o
+ @ echo "LD $@"
+ $(Q) gcc $^ $(LDFLAGS) -o $@
+
+
+$(results_dir)/$(src_dir)/cipher.o: $(src_dir)/cipher.h \
+$(src_dir)/tweakey.h $(src_dir)/constants.h $(src_dir)/parameters.h \
+$(variant_dir)/_parameters.h
+
+$(results_dir)/$(src_dir)/constants.o: $(src_dir)/constants.h
+
+$(results_dir)/$(src_dir)/lilliput-ae-i.o: $(src_dir)/lilliput-ae.h \
+$(src_dir)/cipher.h $(src_dir)/parameters.h \
+$(variant_dir)/_parameters.h
+
+$(results_dir)/$(src_dir)/lilliput-ae-ii.o: $(src_dir)/lilliput-ae.h \
+$(src_dir)/cipher.h $(src_dir)/parameters.h \
+$(variant_dir)/_parameters.h
+
+$(results_dir)/$(src_dir)/tweakey.o: $(src_dir)/tweakey.h \
+$(src_dir)/constants.h $(src_dir)/parameters.h \
+$(variant_dir)/_parameters.h
+
+$(results_dir)/test-*.o: $(src_dir)/test-helpers.h \
+$(src_dir)/parameters.h $(variant_dir)/_parameters.h
+
+
+# TODO: should add order-only prerequisites to remove mkdirs inside recipes
+# TODO: add valgrind, although it does not seem to play well with ASAN
+# TODO: should use gcc -M... to generate .o -> .h dependencies
+# TODO: move debug.h and test-helpers.h here