cangrepp

Some cryptographic attacks
Log | Files | Refs | README

Makefile (2725B)


      1 .SUFFIXES: .c .o .so
      2 CC=clang
      3 CFLAGS+=-std=c11 -pedantic -Wall -Werror -Wstrict-prototypes
      4 CFLAGS+=-Wmissing-prototypes -Wmissing-declarations -Wshadow
      5 CFLAGS+=-Wpointer-arith -Wcast-qual -Wsign-compare
      6 CFLAGS+=-O2 -g
      7 CFLAGS+=-fstack-protector-all -Wtype-limits -fno-common
      8 CFLAGS+=-fno-builtin
      9 CFLAGS+=-I/usr/local/include
     10 
     11 CFLAGS+=-I/usr/local/include/flint
     12 CFLAGS+=-I/home/olikru/.local/include/flint
     13 LDFLAGS+=-L/usr/local/lib -lflint -lgmp
     14 LDFLAGS+=-L/home/olikru/.local/lib
     15 
     16 INSTALL_PATH=$(HOME)/.local
     17 BUILD=build
     18 
     19 TEST_SOURCE=test_angrepp.c
     20 TESTBIN=testbin
     21 
     22 HEADERS=smallfactor.h
     23 OBJ=\
     24 precomputed.o\
     25 context.o\
     26 smallfactor.o\
     27 hnp.o\
     28 cyclefind.o\
     29 pierre.o\
     30 fmpzio.o\
     31 wiener.o\
     32 prodtree.o\
     33 batchgcd.o\
     34 bloom.o
     35 TOOLS=\
     36 tools/hnpsolve\
     37 tools/lcgfloyd\
     38 tools/dbtool\
     39 tools/pierre\
     40 tools/varmkorv\
     41 tools/small\
     42 tools/batchgcd\
     43 tools/pelofskegcd\
     44 tools/bloomer
     45 PRECOMPUTERS=\
     46 precomputers/header
     47 TEST=test
     48 SHARED=angrepp.so
     49 LIBSHARED=libangrepp.so
     50 
     51 TOOLS_DIR=tools
     52 PRECOMPUTERS_DIR=precomputers
     53 
     54 all: $(OBJ) $(SHARED) $(TOOLS) $(PRECOMPUTERS) $(TESTBIN)
     55 
     56 .c.o:
     57 	$(CC) -fPIC $(CFLAGS) -c $< -o $@
     58 
     59 $(SHARED):
     60 	$(CC) -shared -fPIC $(OBJS) -o $(SHARED) $(LDFLAGS)
     61 
     62 # -- test
     63 
     64 testbin: $(OBJ) $(TEST_SOURCE)
     65 	$(CC) $(CFLAGS) -o $(TESTBIN) $(TEST_SOURCE) $(OBJ) $(LDFLAGS)
     66 
     67 test: testbin
     68 	./$(TESTBIN)
     69 
     70 # -- tools
     71 
     72 tools/hnpsolve: $(OBJ) $(@:S/$/.c/)
     73 	$(CC) -I. $(CFLAGS) -o $@ $(TOOLS_DIR)/hnpsolve.c $(OBJ) $(LDFLAGS)
     74 
     75 tools/lcgfloyd: $(OBJ) $(@:S/$/.c/)
     76 	$(CC) -I. $(CFLAGS) -o $@ $(TOOLS_DIR)/lcgfloyd.c $(OBJ) $(LDFLAGS)
     77 
     78 tools/pierre: $(OBJ) $(@:S/$/.c/)
     79 	$(CC) -I. $(CFLAGS) -o $@ $(TOOLS_DIR)/pierre.c $(OBJ) $(LDFLAGS)
     80 
     81 tools/varmkorv: $(OBJ) $(@:S/$/.c/)
     82 	$(CC) -I. $(CFLAGS) -o $@ $(TOOLS_DIR)/varmkorv.c $(OBJ) $(LDFLAGS)
     83 
     84 tools/small: $(OBJ) $(@:S/$/.c/)
     85 	$(CC) -I. $(CFLAGS) -o $@ $(TOOLS_DIR)/small.c $(OBJ) $(LDFLAGS)
     86 
     87 tools/batchgcd: $(OBJ) $(@:S/$/.c/)
     88 	$(CC) -I. $(CFLAGS) -o $@ $(TOOLS_DIR)/batchgcd.c $(OBJ) $(LDFLAGS)
     89 
     90 tools/pelofskegcd: $(OBJ) $(@:S/$/.c/)
     91 	$(CC) -I. $(CFLAGS) -o $@ $(TOOLS_DIR)/pelofskegcd.c $(OBJ) $(LDFLAGS)
     92 
     93 tools/bloomer: $(OBJ) $(@:S/$/.c/)
     94 	$(CC) -I. $(CFLAGS) -o $@ $(TOOLS_DIR)/bloomer.c $(OBJ) $(LDFLAGS)
     95 
     96 tools/dbtool: $(OBJ) $(@:S/$/.c/)
     97 	$(CC) -I. $(CFLAGS) -o $@ $(TOOLS_DIR)/dbtool.c $(OBJ) $(LDFLAGS) -lsqlite3
     98 
     99 # -- precomputers
    100 
    101 precomputers/header: $(@:S/$/.c/)
    102 	$(CC) -I. $(CFLAGS) -o precomputers/header $(PRECOMPUTERS_DIR)/header.c $(LDFLAGS)
    103 
    104 install:
    105 	mkdir -p $(INSTALL_PATH)/lib/angrepp
    106 	cp $(BUILD)/$(SHARED) $(INSTALL_PATH)/lib/angrepp/$(LIBSHARED)
    107 	chmod 644 $(INSTALL_PATH)/lib/angrepp/$(LIBSHARED)
    108 	mkdir -p $(INSTALL_PATH)/include/angrepp
    109 	cp $(HEADERS) $(INSTALL_PATH)/include/angrepp/
    110 
    111 clean:
    112 	rm -rf $(OBJ) $(SHARED) $(TOOLS) $(PRECOMPUTERS) $(TESTBIN)