123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- # COMMENTAIRES EN FIN DE FICHIER
- CPP = g++
- CPPFLAGS = -std=c++14 -I ../include -I ../gengetopt -I ../dclxvi-20130329 -O2 -Wextra -fPIC -fopenmp -D_GLIBCXX_USE_CXX11_ABI=0
- # -g et -pg rajoutés à la compilation et à l'édition de lien pour profiler le programme
- # -fprofile-arcs -ftest-coverage rajoutés à la compilation et à l'édition de lien pour couvrir le programme
- LDFLAGS =-Wall -Wextra -fopenmp -lgmp -lgmpxx #-g -pg
- EXEC = bgn bgn_check bgn_as
- #chemin sans fichier
- HDRPATH = ../include
- SRCPATH = ../src
- OBJPATH = ../obj
- BINPATH = ../bin
- LIBPATH = ../lib
- 666PATH = ../dclxvi-20130329
- VPATH = $(SRCPATH):$(666PATH):../gengetopt
- #UPDPATH = ../update
- #fichier avec chemin
- HDR = $(wildcard $(HDRPATH)/*.h*)
- ALL_SRC = $(wildcard $(SRCPATH)/*.c*)
- SRC = $(filter-out $(SRCPATH)/test_quadruplet.cpp, $(ALL_SRC))
- OBJ = $(patsubst $(SRCPATH)/%.cpp,$(OBJPATH)/%.o,$(SRC))
- OBJ_CHECK = $(patsubst $(SRCPATH)/%.cpp,$(OBJPATH)/%_check.o,$(SRC))
- OBJ_AS = $(patsubst $(SRCPATH)/%.cpp,$(OBJPATH)/%_as.o,$(SRC))
- ALL_SRC_666 = $(wildcard $(666PATH)/*.c*)
- SRC_666 = $(filter-out $(666PATH)/bilintest.c $(666PATH)/speedtest.c $(666PATH)/test_curvepoint_multiscalar.c $(666PATH)/test_twistpoint_multiscalar.c $(666PATH)/twistpoint_fp2_multiscalar.c $(666PATH)/curvepoint_fp_multiscalar.c, $(ALL_SRC_666))
- ASS_666 = $(wildcard $(666PATH)/*.s)
- #HDR_UPD = $(wildcard $(UPDPATH)/*.h)
- #SRC_UPD = $(wildcard $(UPDPATH)/*.c)
- #ASS_UPD = $(wildcard $(UPDPATH)/*.s)
- OBJ_666 = $(patsubst $(666PATH)/%.c,$(OBJPATH)/%_666.o,$(SRC_666))
- #$(patsubst $(UPDPATH)/%.c,$(OBJPATH)/%.o,$(SRC_UPD))
- OBJ_666_CHECK = $(patsubst $(666PATH)/%.c,$(OBJPATH)/%_666_check.o,$(SRC_666))
- #$(patsubst $(UPDPATH)/%.c,$(OBJPATH)/%_check.o,$(SRC_UPD))
- OBJ_666_AS = $(patsubst $(666PATH)/%.c,$(OBJPATH)/%_666_as.o,$(SRC_666)) $(patsubst $(666PATH)/%.s,$(OBJPATH)/%_666_as.o,$(ASS_666))
- #$(patsubst $(UPDPATH)/%.c,$(OBJPATH)/%_as.o,$(SRC_UPD)) $(patsubst $(UPDPATH)/%.s,$(OBJPATH)/%_as.o,$(ASS_UPD))
- LIB = $(filter-out $(OBJPATH)/option.o $(OBJPATH)/bgn.o $(OBJPATH)/circuit_additionL1.o $(OBJPATH)/circuit_additionL2.o $(OBJPATH)/circuit_additionL3.o $(OBJPATH)/circuit_additionL4.o $(OBJPATH)/circuit_chiffrement.o $(OBJPATH)/circuit_minmaj.o $(OBJPATH)/circuit_minmaj2.o $(OBJPATH)/circuit_minmaj3.o $(OBJPATH)/circuit_multiplicationL1.o $(OBJPATH)/circuit_multiplicationL1L2.o $(OBJPATH)/circuit_multiplicationL2.o $(OBJPATH)/circuit_size.o, $(OBJPATH)/circuit_scalar_product.o, $(OBJPATH)/circuit_time.o, $(OBJPATH)/circuit_time2.o , $(OBJ))
- LIB_CHECK = $(filter-out $(OBJPATH)/option.o $(OBJPATH)/bgn_check.o $(OBJPATH)/circuit_additionL1_check.o $(OBJPATH)/circuit_additionL2_check.o $(OBJPATH)/circuit_additionL3_check.o $(OBJPATH)/circuit_additionL4_check.o $(OBJPATH)/circuit_chiffrement_check.o $(OBJPATH)/circuit_minmaj_check.o $(OBJPATH)/circuit_minmaj2_check.o $(OBJPATH)/circuit_minmaj3_check.o $(OBJPATH)/circuit_multiplicationL1_check.o $(OBJPATH)/circuit_multiplicationL1L2_check.o $(OBJPATH)/circuit_multiplicationL2_check.o $(OBJPATH)/circuit_size_check.o ,$(OBJPATH)/circuit_scalar_product_check.o, $(OBJPATH)/circuit_time_check.o, $(OBJPATH)/circuit_time2_check.o , $(OBJ_CHECK))
- LIB_AS = $(filter-out $(OBJPATH)/option.o $(OBJPATH)/bgn_as.o $(OBJPATH)/circuit_additionL1_as.o $(OBJPATH)/circuit_additionL2_as.o $(OBJPATH)/circuit_additionL3_as.o $(OBJPATH)/circuit_additionL4_as.o $(OBJPATH)/circuit_chiffrement_as.o $(OBJPATH)/circuit_minmaj_as.o $(OBJPATH)/circuit_minmaj2_as.o $(OBJPATH)/circuit_minmaj3_as.o $(OBJPATH)/circuit_multiplicationL1_as.o $(OBJPATH)/circuit_multiplicationL1L2_as.o $(OBJPATH)/circuit_multiplicationL2_as.o $(OBJPATH)/circuit_size_as.o ,$(OBJPATH)/circuit_scalar_product_as.o, $(OBJPATH)/circuit_time_as.o, $(OBJPATH)/circuit_time2_as.o , $(OBJ_AS))
- all: $(EXEC)
- bgn: $(OBJ) $(OBJPATH)/option.o $(OBJ_666) $(OBJPATH)/scalar_sub_nored_666_as.o $(OBJPATH)/heap_rootreplaced_666_as.o
- $(CPP) -o $(BINPATH)/$@ $+ $(LDFLAGS)
- bgn_check: $(OBJ_CHECK) $(OBJPATH)/option.o $(OBJ_666_CHECK) $(OBJPATH)/scalar_sub_nored_666_as.o $(OBJPATH)/heap_rootreplaced_666_as.o
- $(CPP) -o $(BINPATH)/$@ $+ $(LDFLAGS)
-
- bgn_as: $(OBJ_AS) $(OBJPATH)/option.o $(OBJ_666_AS)
- $(CPP) -o $(BINPATH)/$@ $+ $(LDFLAGS)
- lib:
- @gcc -shared -fPIC -o $(LIBPATH)/libbgnfcf.so $(LIB)
- lib_check:
- @gcc -shared -fPIC -o $(LIBPATH)/libbgnfcf_check.so $(LIB_CHECK)
- lib_as:
- @gcc -shared -fPIC -o $(LIBPATH)/libbgnfcf_as.so $(LIB_AS)
-
- bgn_lib: $(OBJPATH)/option.o $(OBJ_666) $(OBJPATH)/scalar_sub_nored_666_as.o $(OBJPATH)/heap_rootreplaced_666_as.o $(OBJPATH)/bgn.o $(OBJPATH)/circuit_additionL1.o $(OBJPATH)/circuit_additionL2.o $(OBJPATH)/circuit_additionL3.o $(OBJPATH)/circuit_additionL4.o $(OBJPATH)/circuit_chiffrement.o $(OBJPATH)/circuit_minmaj.o $(OBJPATH)/circuit_minmaj2.o $(OBJPATH)/circuit_minmaj3.o $(OBJPATH)/circuit_multiplicationL1.o $(OBJPATH)/circuit_multiplicationL1L2.o $(OBJPATH)/circuit_multiplicationL2.o $(OBJPATH)/circuit_size.o $(OBJPATH)/circuit_demo.o $(OBJPATH)/circuit_scalar_product.o $(OBJPATH)/circuit_time.o $(OBJPATH)/circuit_time2.o
- $(CPP) -o $(BINPATH)/$@ $+ $(LDFLAGS) -L ../lib -lbgnfcf
- bgn_lib_check: $(OBJPATH)/option.o $(OBJ_666_CHECK) $(OBJPATH)/scalar_sub_nored_666_as.o $(OBJPATH)/heap_rootreplaced_666_as.o $(OBJPATH)/bgn_check.o $(OBJPATH)/circuit_additionL1_check.o $(OBJPATH)/circuit_additionL2_check.o $(OBJPATH)/circuit_additionL3_check.o $(OBJPATH)/circuit_additionL4_check.o $(OBJPATH)/circuit_chiffrement_check.o $(OBJPATH)/circuit_minmaj_check.o $(OBJPATH)/circuit_minmaj2_check.o $(OBJPATH)/circuit_minmaj3_check.o $(OBJPATH)/circuit_multiplicationL1_check.o $(OBJPATH)/circuit_multiplicationL1L2_check.o $(OBJPATH)/circuit_multiplicationL2_check.o $(OBJPATH)/circuit_size_check.o $(OBJPATH)/circuit_scalar_product_check.o $(OBJPATH)/circuit_time_check.o $(OBJPATH)/circuit_time2_check.o
- $(CPP) -o $(BINPATH)/$@ $+ $(LDFLAGS) -L ../lib -lbgnfcf_check
-
- bgn_lib_as: $(OBJPATH)/option.o $(OBJ_666_AS) $(OBJPATH)/bgn_as.o $(OBJPATH)/circuit_additionL1_as.o $(OBJPATH)/circuit_additionL2_as.o $(OBJPATH)/circuit_additionL3_as.o $(OBJPATH)/circuit_additionL4_as.o $(OBJPATH)/circuit_chiffrement_as.o $(OBJPATH)/circuit_minmaj_as.o $(OBJPATH)/circuit_minmaj2_as.o $(OBJPATH)/circuit_minmaj3_as.o $(OBJPATH)/circuit_multiplicationL1_as.o $(OBJPATH)/circuit_multiplicationL1L2_as.o $(OBJPATH)/circuit_multiplicationL2_as.o $(OBJPATH)/circuit_size_as.o $(OBJPATH)/circuit_scalar_product_as.o $(OBJPATH)/circuit_time_as.o $(OBJPATH)/circuit_time2_as.o
- $(CPP) -o $(BINPATH)/$@ $+ $(LDFLAGS) -L ../lib -lbgnfcf_as
-
- test_quadruplet_check: $(OBJPATH)/test_quadruplet_check.o $(OBJPATH)/BitChiffre_check.o $(OBJPATH)/quadruplet_check.o $(OBJPATH)/$(OBJPATH)/fpe2scalar_check.o $(OBJ_666_CHECK) $(OBJPATH)/scalar_sub_nored_666_as.o $(OBJPATH)/heap_rootreplaced_666_as.o $(OBJPATH)/Bipoint_check.o
- $(CPP) $(LDFLAGS) -o $(BINPATH)/$@ $+
-
- test_quadruplet_as: $(OBJPATH)/test_quadruplet_as.o $(OBJPATH)/BitChiffre_as.o $(OBJPATH)/quadruplet_as.o $(OBJ_666_AS) $(OBJPATH)/Bipoint_as.o $(OBJPATH)/$(OBJPATH)/fpe2scalar_as.o
- $(CPP) $(LDFLAGS) -o $(BINPATH)/$@ $+
-
- option : option.ggo
- @gengetopt < $< --file-name=option --output-dir=../gengetopt --unamed-opts
- .PHONY: clean
- clean:
- @rm -rf $(OBJPATH)/*.o $(BINPATH)/bgn $(BINPATH)/bgn_as $(BINPATH)/bgn_check $(BINPATH)/bgn_lib $(BINPATH)/bgn_lib_as $(BINPATH)/bgn_lib_check prof *.exe *.db *.do *.gch *.out $(OBJPATH)/*.gcda $(OBJPATH)/*.gcno *.gcov callgrind.out.*
- profile:
- @read -p "Enter binary name: " binary && gprof -l $(BINPATH)/$$binary gmon.out >| profile_line && gprof $(BINPATH)/$$binary gmon.out >| profile_function
- # le fichier gmon.out est crée après avoir executé le programme, il ne suffit pas de compiler et d'éditer les liens avec -g -pg
- # read pour demander au maker d'affecter une variable
- # $$ pour acceder à cette valeur (elle est définie dans les build commands, pas dans le makefile)
- # && parce que la valeur n'est pas mémorisée
- tata=4
- fun:
- export toto=5
- sleep 5 && echo $$toto
- toto=3; echo $$toto
- echo $(tata)
-
- graph:
- @gprof2dot profile_function >| graph_function.dot
- @dot -T png -o graph_function.png graph_function.dot
- @feh graph_function.png&
-
- doc:
- cd .. && doxygen doc/doxygen_conf && firefox doc/html/annotated.html&
- gdb:
- gdb run ../bin/bgn_as
-
- valgrind:
- valgrind --track-origins=yes --leak-check=full --show-leak-kinds=all ../bin/bgn_as -s ""
-
- print-%:
- @echo '$*=$($*)'
- $(OBJPATH)/option.o : option.c
- $(CPP) $(CPPFLAGS) -o $@ -c $<
-
- $(OBJPATH)/%.o : %.cpp $(HDR)
- $(CPP) $(CPPFLAGS) -o $@ -c $<
- $(OBJPATH)/%_check.o : %.cpp $(HDR)
- $(CPP) $(CPPFLAGS) -DCHECK -DNBTESTS=10 -o $@ -c $<
-
- $(OBJPATH)/%_as.o : %.cpp $(HDR)
- $(CPP) $(CPPFLAGS) -DQHASM -DNBTESTS=10 -o $@ -c $<
-
- $(OBJPATH)/%_666.o : $(666PATH)/%.c $(666PATH)/%.h
- $(CPP) $(CPPFLAGS) -o $@ -c $<
-
- $(OBJPATH)/%_666_check.o : $(666PATH)/%.c $(666PATH)/%.h
- $(CPP) $(CPPFLAGS) -DCHECK -o $@ -c $<
-
- $(OBJPATH)/%_666_as.o : $(666PATH)/%.c $(666PATH)/%.h
- $(CPP) $(CPPFLAGS) -DQHASM -o $@ -c $<
- $(OBJPATH)/%_666_as.o : $(666PATH)/%.s
- $(CPP) $(CPPFLAGS) -o $@ -c $<
-
- #$(OBJPATH)/%.o : $(UPDPATH)/%.c $(HDR_UPD)
- # $(CPP) $(CPPFLAGS) -o $@ -c $<
- #$(OBJPATH)/%_check.o : $(UPDPATH)/%.c $(HDR_UPD)
- # $(CPP) $(CPPFLAGS) -DCHECK -o $@ -c $<
-
- #$(OBJPATH)/%_as.o : $(UPDPATH)/%.c $(HDR_UPD)
- # $(CPP) $(CPPFLAGS) -DQHASM -o $@ -c $<
- #$(OBJPATH)/%_as.o : $(UPDPATH)/%.s
- # $(CPP) $(CPPFLAGS) -o $@ -c $<
-
- #$(OBJPATH)/asfunctions.a: $(OBJPATH)/fp2e_add2.o $(OBJPATH)/fp2e_sub2.o \
- # $(OBJPATH)/fp2e_double2.o $(OBJPATH)/fp2e_triple2.o $(OBJPATH)/fp2e_neg2.o \
- # $(OBJPATH)/fp2e_mul.o $(OBJPATH)/fp2e_mul_fpe.o $(OBJPATH)/fp2e_short_coeffred.o \
- # $(OBJPATH)/fp2e_add.o $(OBJPATH)/fp2e_sub.o $(OBJPATH)/fp2e_parallel_coeffmul.o $(OBJPATH)/fp2e_mulxi.o\
- # $(OBJPATH)/fp2e_double.o $(OBJPATH)/fp2e_triple.o $(OBJPATH)/fp2e_neg.o $(OBJPATH)/fp2e_conjugate.o \
- # $(OBJPATH)/fpe_mul.o $(OBJPATH)/fp2e_square.o \
- # $(OBJPATH)/consts.o
- # rm -f $(OBJPATH)/asfunctions.a
- # ar cr $(OBJPATH)/asfunctions.a $^
|