blob: 3e023e0c7146d599f0af695aded0627d850085e4 (
plain) (
tree)
|
|
include ../mcl/common.mk
LIB_DIR=lib
OBJ_DIR=obj
EXE_DIR=bin
SRC_SRC=bls.cpp
TEST_SRC=bls_test.cpp
#SAMPLE_SRC=
CFLAGS+=-I../mcl/include
##################################################################
BLS_LIB=$(LIB_DIR)/libbls.a
all: $(BLS_LIB)
LIB_OBJ=$(OBJ_DIR)/bls.o
$(BLS_LIB): $(LIB_OBJ)
-$(MKDIR) $(@D)
$(AR) $@ $(LIB_OBJ)
MCL_LIB=../mcl/lib/libmcl.a
$(MCL_LIB):
$(MAKE) -C ../mcl
##################################################################
VPATH=test sample src
.SUFFIXES: .cpp .d .exe
$(OBJ_DIR)/%.o: %.cpp
-$(MKDIR) $(@D)
$(PRE)$(CXX) $(CFLAGS) -c $< -o $@ -MMD -MP -MF $(@:.o=.d)
$(EXE_DIR)/%.exe: $(OBJ_DIR)/%.o $(BLS_LIB) $(MCL_LIB)
-$(MKDIR) $(@D)
$(PRE)$(CXX) $< -o $@ $(BLS_LIB) $(LDFLAGS) -lmcl -L../mcl/lib
SAMPLE_EXE=$(addprefix $(EXE_DIR)/,$(SAMPLE_SRC:.cpp=.exe))
sample: $(SAMPLE_EXE) $(BLS_LIB)
TEST_EXE=$(addprefix $(EXE_DIR)/,$(TEST_SRC:.cpp=.exe))
test: $(TEST_EXE)
@echo test $(TEST_EXE)
@sh -ec 'for i in $(TEST_EXE); do $$i|grep "ctest:name"; done' > result.txt
@grep -v "ng=0, exception=0" result.txt || echo "all unit tests are ok"
clean:
$(RM) $(BLS_LIB) $(OBJ_DIR)/* $(EXE_DIR)/*.exe $(GEN_EXE) $(ASM_SRC) $(ASM_OBJ) $(LIB_OBJ) $(LLVM_SRC)
ALL_SRC=$(SRC_SRC) $(TEST_SRC) $(SAMPLE_SRC)
DEPEND_FILE=$(addprefix $(OBJ_DIR)/, $(ALL_SRC:.cpp=.d))
-include $(DEPEND_FILE)
# don't remove these files automatically
.SECONDARY: $(addprefix $(OBJ_DIR)/, $(ALL_SRC:.cpp=.o))
|