112 lines
3.4 KiB
Plaintext
112 lines
3.4 KiB
Plaintext
## DIR #################################
|
|
SRC_DIR = .
|
|
TST_DIR = $(SRC_DIR)/test
|
|
CPP_DIR = $(SRC_DIR)/src
|
|
HPP_DIR = $(SRC_DIR)/include
|
|
BLD_DIR = build
|
|
OUT_DIR = $(BLD_DIR)/out
|
|
LIB_DIR = $(BLD_DIR)/lib
|
|
OBJ_DIR = $(BLD_DIR)/obj
|
|
|
|
## PRG #################################
|
|
|
|
TRSK_MOD = IImage triskeleArrayTreeBase Tree triskeleDebug TreeStats triskeleBase QuadTreeBuilder Option Selected
|
|
TRSK_OBJ = $(patsubst %, $(OBJ_DIR)/%.o, $(TRSK_MOD))
|
|
TRSK_OBJ_XML = $(TRSK_OBJ) $(OBJ_DIR)/XMLTreeBuilder.o
|
|
|
|
APG_PRG = apGenerator
|
|
APG_SRC = $(patsubst %, $(CPP_DIR)/%.cpp, $(APG_PRG))
|
|
APG_OUT = $(patsubst %, $(OUT_DIR)/%, $(APG_PRG))
|
|
|
|
TST_PRG = TestArrayTreeBuilder
|
|
TST_SRC = $(patsubst %, $(CPP_DIR)/%.cpp, $(TST_PRG))
|
|
TST_OUT = $(patsubst %, $(OUT_DIR)/%, $(TST_PRG))
|
|
|
|
PRF_PRG = PerfArrayTreeBuilder
|
|
PRF_SRC = $(patsubst %, $(CPP_DIR)/%.cpp, $(PRF_PRG))
|
|
PRF_OUT = $(patsubst %, $(OUT_DIR)/%, $(PRF_PRG))
|
|
|
|
TTH_MOD = TestDeal
|
|
TTH_PRG = TestThread
|
|
TTH_SRC = $(patsubst %, $(TST_DIR)/%.cpp, $(TTH_PRG))
|
|
TTH_OBJ = $(patsubst %, $(OBJ_DIR)/%.o, $(TTH_MOD))
|
|
TTH_OUT = $(patsubst %, $(OUT_DIR)/%, $(TTH_PRG))
|
|
|
|
## FLAGS ###############################
|
|
# fast and no control
|
|
DFLAGS = -O2 -DNDEBUG -DNO_OTB -DINTEL_TBB_THREAD -DBOOST_DISABLE_ASSERTS
|
|
#DFLAGS = -O2 -DNDEBUG -DNO_OTB -DBOOST_DISABLE_ASSERTS
|
|
# fast but control
|
|
#DFLAGS = -O2 -DNDEBUG -DNO_OTB -DINTEL_TBB_THREAD
|
|
# debug multi-threaded
|
|
#DFLAGS = -g -DENABLE_LOG -DNO_OTB
|
|
# debug one thread
|
|
#DFLAGS = -g -DENABLE_LOG -DNO_OTB -DTHREAD_DISABLE -DENABLE_SMART_LOG
|
|
|
|
IFLAGS = $(DFLAGS) -MMD -I$(HPP_DIR) -I/usr/include/gdal
|
|
LFLAGS = -L$(LIB_DIR) -ltriskele -lstdc++ -lpthread -lboost_system -lboost_chrono -lboost_thread -lboost_program_options -lboost_date_time -lboost_serialization -lboost_filesystem -lboost_unit_test_framework -lgdal -ltbb
|
|
CC = g++
|
|
|
|
## RULES ###############################
|
|
$(OBJ_DIR)/%.o: $(SRC_DIR)/*/%.cpp
|
|
$(CC) $< $(IFLAGS) -cpp -c -o $@
|
|
$(OBJ_DIR)/%.o: $(SRC_DIR)/*/*/%.cpp
|
|
$(CC) $< $(IFLAGS) -cpp -c -o $@
|
|
|
|
$(OUT_DIR)/%: $(SRC_DIR)/*/%.cpp
|
|
$(CC) $(IFLAGS) $< -L$(LIB_DIR) $(LFLAGS) -cpp -o $@
|
|
|
|
## ENTRIES #############################
|
|
all: init libtriskele apGenerator test perf
|
|
|
|
test: testA testB testThread
|
|
|
|
testThread: init $(TTH_OUT)
|
|
$(TTH_OUT)
|
|
|
|
testA: init $(TST_OUT)
|
|
$(TST_OUT)
|
|
|
|
testB: init $(APG_OUT)
|
|
$(APG_OUT) data/10m.tif data/result.tif --min-tree --max-tree --tos-tree --alpha-tree -A data/areaThresholds.txt -S data/sdThresholds.txt -M data/moiThresholds.txt # --debug
|
|
|
|
perf: perfA
|
|
|
|
perfA: init $(PRF_OUT)
|
|
# $(PRF_OUT) MIN 32 20 1000000
|
|
$(PRF_OUT) MIN 4 20 100000
|
|
|
|
init:
|
|
mkdir -p $(OUT_DIR) $(OBJ_DIR) $(LIB_DIR)
|
|
|
|
clean:
|
|
find . -type f '(' -name '#*' -o -name '*~' ')' -print -exec rm -f '{}' \;
|
|
|
|
wipe: clean
|
|
-rm -rf $(OBJ_DIR)
|
|
-rm -f $(APG_OUT) $(TST_OUT) $(PRF_OUT) $(TTH_OUT) $(LIB_DIR)/libtriskele.a
|
|
-rm -f $(OUT_DIR)/*.d
|
|
-rmdir $(OUT_DIR) $(OBJ_DIR) $(LIB_DIR) $(BLD_DIR)
|
|
|
|
libtriskele: $(LIB_DIR)/libtriskele.a
|
|
|
|
$(APG_OUT): $(APG_SRC) $(LIB_DIR)/libtriskele.a
|
|
$(TST_OUT): $(TST_SRC) $(LIB_DIR)/libtriskele.a
|
|
$(PRF_OUT): $(PRF_SRC) $(LIB_DIR)/libtriskele.a
|
|
$(TTH_OUT): $(TTH_SRC) $(TTH_OBJ) $(LIB_DIR)/libtriskele.a
|
|
$(CC) $(IFLAGS) $< $(TTH_OBJ) -L$(LIB_DIR) $(LFLAGS) -cpp -o $@
|
|
|
|
apGenerator: init $(APG_OUT)
|
|
|
|
|
|
## DEPENDS #############################
|
|
ALL_OUT = $(APG_OUT)
|
|
ALL_OBJ = $(TRSK_OBJ)
|
|
|
|
DEPENDS = ${ALL_OUT:=.d} ${ALL_OBJ:.o=.d} ${TTH_OBJ:.o=.d}
|
|
-include ${DEPENDS}
|
|
|
|
$(LIB_DIR)/libtriskele.a: $(ALL_OBJ)
|
|
ar rcs $@ $^
|
|
########################################
|