aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias Andrée <maandree@operamail.com>2014-11-13 21:50:34 +0100
committerMattias Andrée <maandree@operamail.com>2014-11-13 21:53:44 +0100
commit428d3f90cedb4064a108f4297098f77f97af477e (patch)
treed47c6063d5606e721fbfcbf62cc25ea631d11583
parentadd deps (diff)
downloadsha3sum-428d3f90cedb4064a108f4297098f77f97af477e.tar.gz
sha3sum-428d3f90cedb4064a108f4297098f77f97af477e.tar.bz2
sha3sum-428d3f90cedb4064a108f4297098f77f97af477e.tar.xz
add build rules to the makefile
Signed-off-by: Mattias Andrée <maandree@operamail.com>
-rw-r--r--Makefile34
1 files changed, 34 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index c873690..364f3c0 100644
--- a/Makefile
+++ b/Makefile
@@ -8,6 +8,40 @@
# [GNU All Permissive License]
+WARN = -Wall -Wextra -pedantic -Wdouble-promotion -Wformat=2 -Winit-self -Wmissing-include-dirs \
+ -Wtrampolines -Wfloat-equal -Wshadow -Wmissing-prototypes -Wmissing-declarations \
+ -Wredundant-decls -Wnested-externs -Winline -Wno-variadic-macros -Wswitch-default \
+ -Wpadded -Wsync-nand -Wunsafe-loop-optimizations -Wcast-align -Wstrict-overflow \
+ -Wdeclaration-after-statement -Wundef -Wbad-function-cast -Wcast-qual -Wlogical-op \
+ -Wstrict-prototypes -Wold-style-definition -Wpacked -Wvector-operation-performance \
+ -Wunsuffixed-float-constants -Wsuggest-attribute=const -Wsuggest-attribute=noreturn \
+ -Wsuggest-attribute=pure -Wsuggest-attribute=format -Wnormalized=nfkc
+
+LDOPTIMISE =
+COPTIMISE = -O3
+
+FLAGS = $(WARN) -std=gnu99
+
+
+CMDS = keccak-224sum keccak-256sum keccak-384sum keccak-512sum keccaksum \
+ sha3-224sum sha3-256sum sha3-384sum sha3-512sum \
+ rawshake256sum rawshake512sum shake256sum shake512sum
+
+
+
+.PHONY: all
+all: $(foreach C,$(CMDS),bin/$(C))
+
+
+bin/%: obj/%.o obj/common.o
+ @mkdir -p bin
+ $(CC) $(FLAGS) $(LDOPTIMISE) -lkeccak -largparser -o $@ $^ $(LDFLAGS)
+
+obj/%.o: src/%.c src/*.h
+ @mkdir -p obj
+ $(CC) $(FLAGS) $(COPTIMISE) -c -o $@ $< $(CFLAGS) $(CPPFLAGS)
+
+
.PHONY: clean
clean:
-rm -r bin obj