github.com/jiajun1992/watercarver@v0.0.0-20191031150618-dfc2b17c0c4a/StadiumForWaterCarver/Makefile (about)

     1  ## 
     2  ## HSM lib test Makefile
     3  ## -------------------------------------------------------
     4  #  $Id: Makefile 187 2012-01-27 15:57:50Z mlange $
     5  #  -------------------------------------------------------
     6  export LD_LIBRARY_PATH=/usr/local/lib/
     7  APP=shuffle
     8  ORIGINALAPP=test
     9  LIBAPP=libshuffle.so
    10  VUVUZELA_APP=vuvuzela_shuffle
    11  VUVUZELA_SERVER_APP=shuffle_server
    12  VUVUZELA_CLIENT_APP=shuffle_client
    13  
    14  # options
    15  DATE  = $(shell /bin/date +%d.%m.%y)
    16  _DATE = $(shell /bin/date +%d_%m_%y)
    17  
    18  RD    = "\033[0;31m"
    19  NC    = "\033[0m"
    20  
    21  
    22  #directories
    23  PRJDIR        = $(shell pwd)
    24  OBJDIR        = obj
    25  LCOVDIR       = lcov
    26  
    27  
    28  INC_DIR   = src
    29  SRC_DIR   = src
    30  
    31  
    32  VPATH = $(SRC_DIR)
    33  
    34  OPTIMIZE_FLAGS=-O2 -flto
    35  # OPTIMIZE_FLAGS=-O0
    36  
    37  # tools 
    38  CC = gcc -std=c++0x -fPIC
    39  CXX = g++ -std=c++0x -fPIC
    40  
    41  # compiler / linker flags
    42  CFLAGS= \
    43          $(OPTIMIZE_FLAGS) \
    44          -I $(INC_DIR)\
    45  		-Wall -g\
    46  		-fopenmp
    47  CXXFLAGS=\
    48  	$(OPTIMIZE_FLAGS) \
    49          -I $(INC_DIR)\
    50  		-Wall -g\
    51  		-fopenmp
    52  
    53  LDFLAGS= $(OPTIMIZE_FLAGS)
    54  
    55  # libraries to link against
    56  LIBS +=  -L/usr/local/lib/ -lntl -lgmp -lboost_system  -lboost_filesystem -lpthread -lboost_regex -lboost_thread -lboost_context -lgomp
    57  
    58  # source and header files
    59  ORIGINAL = \
    60  	test\
    61  	GoApis\
    62  	WaterCarver\
    63  	Cipher_elg\
    64  	CurvePoint\
    65  	ElGammal\
    66  	FakeZZ\
    67  	func_pro\
    68  	func_ver\
    69  	Functions\
    70  	G_q\
    71  	Mod_p\
    72  	multi_expo\
    73  	Pedersen\
    74  	Permutation\
    75  	Prover_toom\
    76  	SchnorrProof\
    77  	Verifier_toom\
    78  	CipherTable \
    79  	Utils \
    80  	sha256\
    81  	NIZKProof\
    82  	RemoteShuffler\
    83  	VerifierClient
    84  
    85  TESTFILES = \
    86  	GoApis\
    87  	WaterCarver\
    88  	Cipher_elg\
    89  	CurvePoint\
    90  	ElGammal\
    91  	FakeZZ\
    92  	func_pro\
    93  	func_ver\
    94  	Functions\
    95  	G_q\
    96  	Mod_p\
    97  	multi_expo\
    98  	Pedersen\
    99  	Permutation\
   100  	Prover_toom\
   101  	SchnorrProof\
   102  	Verifier_toom\
   103  	CipherTable \
   104  	Utils \
   105  	sha256\
   106  	NIZKProof\
   107  	RemoteShuffler\
   108  	VerifierClient
   109  
   110  TESTOBJECTS = $(addprefix $(OBJDIR)/, $(addsuffix .o, $(TESTFILES)))
   111  ORIGINALOBJECTS = $(addprefix $(OBJDIR)/, $(addsuffix .o, $(ORIGINAL)))
   112  LIBOBJECTS = $(addprefix $(OBJDIR)/, $(addsuffix .o, $(LIBFILES)))
   113  TESTDEPENDS = $(addprefix $(OBJDIR)/, $(addsuffix .d, $(TESTFILES)))
   114  ORIGINALDEPENDS = $(addprefix $(OBJDIR)/, $(addsuffix .d, $(ORIGINAL)))
   115  LIBDEPENDS = $(addprefix $(OBJDIR)/, $(addsuffix .d, $(LIBFILES)))
   116  
   117  #--- how to create object and dependencie files from sources ---
   118  $(OBJDIR)/%.o:%.cpp
   119  	@echo $(RD)"    compiling $<"$(NC)
   120  	$(CXX) $(CXXFLAGS) -c $< -o $@
   121  	@echo $(RD)"    creating dependencies for $<"$(NC)
   122  	$(CXX) $(CXXFLAGS) -MM -MT $(OBJDIR)/$*.o $<  >$(OBJDIR)/$*.d
   123  
   124  # all
   125  ## make all  - creates software
   126  # -------------------------------------------------------
   127  #all: $(OBJDIR) $(OBJECTS) 
   128  #	@echo $(RD)"    linking object files"$(NC)
   129  #	$(CXX) $(LDFLAGS) -o $(APP) $(OBJECTS) $(LIBS)
   130  #
   131  #-include $(DEPENDS)
   132  
   133  lib: $(OBJDIR) $(TESTOBJECTS) 
   134  	@echo $(RD)"    linking object files"$(NC)
   135  	$(CXX) $(LDFLAGS) -shared -o $(LIBAPP) $(TESTOBJECTS) $(LIBS)
   136  	cp src/Utils.h ./Utils.h
   137  	cp src/keys.h ./keys.h
   138  -include $(TESTDEPENDS)
   139  
   140  test: $(OBJDIR) $(ORIGINALOBJECTS) 
   141  	@echo $(RD)"    linking object files"$(NC)
   142  	$(CXX) $(LDFLAGS) -o $(ORIGINALAPP) $(ORIGINALOBJECTS) $(LIBS)
   143  
   144  -include $(ORIGINALDEPENDS)
   145  
   146  # create directories
   147  $(OBJDIR):
   148  	@echo $(RD)"    create $@"$(NC)
   149  	@mkdir -p $@
   150  	@chmod 775 $@
   151  
   152  
   153  .PHONY: clean
   154  clean:
   155  	@rm -rf $(OBJDIR) $(LCOVDIR) $(APP)
   156  
   157  # help
   158  ## make help - print this help
   159  # -------------------------------------------------------
   160  .PHONY: help
   161  help:
   162  	@sed -n '/^##/s/## //p' Makefile