summaryrefslogtreecommitdiff
path: root/src/Makefile
diff options
context:
space:
mode:
authorJ08nY2017-02-05 03:59:52 +0100
committerJ08nY2017-02-05 03:59:52 +0100
commit763fc80153c5e9287f1b0f0609b11fb4f50c90ab (patch)
tree5cd6e7acc4512cca65bcc16a74f3b63879b2d3bc /src/Makefile
parent3d9bf583ccc5eea61c5f78f52d1e2073daee924c (diff)
downloadecgen-763fc80153c5e9287f1b0f0609b11fb4f50c90ab.tar.gz
ecgen-763fc80153c5e9287f1b0f0609b11fb4f50c90ab.tar.zst
ecgen-763fc80153c5e9287f1b0f0609b11fb4f50c90ab.zip
ecgen v0.2: major rewrite0.2.0
Diffstat (limited to 'src/Makefile')
-rw-r--r--src/Makefile72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/Makefile b/src/Makefile
new file mode 100644
index 0000000..6e4726a
--- /dev/null
+++ b/src/Makefile
@@ -0,0 +1,72 @@
+####
+#
+# ecgen, tool for generating Elliptic curve domain parameters
+# Copyright (C) 2017 J08nY
+#
+####
+
+CC=gcc
+GP2C=gp2c
+
+CFLAGS=-O3 -Wall
+LDFLAGS=
+
+GP_CFLAGS=-O3 -Wall -fomit-frame-pointer -fno-strict-aliasing -fPIC
+GPFLAGS=-g -i4
+
+INCLUDES=-I.
+LIBS=-lpari
+
+####
+
+GP = gp
+GPC = $(addsuffix .c, $(GP))
+GPO = $(addsuffix .o, $(GP))
+GPH = $(addsuffix .h, $(GP))
+
+SRC = cli input
+OBJ = $(addsuffix .o, $(SRC))
+HDR = $(addsuffix .h, $(SRC))
+
+####
+
+all: ecgen
+
+ecgen: ecgen.o $(GPO) $(OBJ)
+ $(CC) $(CFLAGS) $(INCLUDES) -o $@ $^ $(LDFLAGS) $(LIBS)
+
+gp2c: $(GPC) $(GPH)
+
+$(GPO): $(GPC) $(GPH)
+ $(CC) $(GP_CFLAGS) $(INCLUDES) -c -o $@ $< $(LDFLAGS) $(LIBS)
+
+%.o: %.c $(GPH)
+ $(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $< $(LDFLAGS) $(LIBS)
+
+%.h %.c: %.gp
+ $(GP2C) $(GPFLAGS) gp/$*.gp 2>/dev/null | clang-format | awk 'BEGIN{print "#ifndef GP_H" > "gp.h"; print "#define GP_H" >> "gp.h";} { if(found) print >> "gp.c"; else print >> "gp.h"} /End of prototype/{found=1; print "#include \"gp.h\"" > "gp.c"; print "#endif //GP_H" >> "gp.h"}'
+
+####
+
+.PHONY: all gp2c clean-all clean clean-gp help
+
+clean-all: clean clean-gp
+
+clean:
+ rm -f ecgen
+ rm -f *.o
+
+clean-gp:
+ rm -f $(GPH)
+ rm -f $(GPC)
+
+help:
+ @echo "ecgen, tool for generating Elliptic curve domain parameters"
+ @echo
+ @echo "Available targets:"
+ @echo " - all : builds all"
+ @echo " - ecgen : builds the main binary"
+ @echo " - gp2c : generates the .c and .h files from gp code"
+ @echo " - clean : cleans up after a build"
+ @echo " - clean-gp : cleans up after gp2c generation"
+ @echo " - clean-all : cleans all"