face-clustering-rk3588./Makefile

99 lines
1.9 KiB
Makefile

CXX ?= g++
ROOT := $(abspath .)
CXXFLAGS := \
-std=c++17 \
-O2 \
-Wall \
-Wextra \
-Wpedantic \
-Iinclude \
-DFACE_CLUSTERING_ROOT=\"$(ROOT)\"
LDFLAGS := \
-L$(ROOT)/lib \
-Wl,-rpath,$(ROOT)/lib
LDLIBS := \
-lrknnrt \
-ldl \
-lpthread
BIN_DIR := bin
BUILD_DIR := build
ENGINE_SOURCE := src/face_engine.cc
ENGINE_OBJECT := $(BUILD_DIR)/face_engine.o
FACE_RECOGNITION_SOURCE := src/face_recognition.cc
FACE_RECOGNITION_OBJECT := $(BUILD_DIR)/face_recognition.o
FACE_RECOGNITION_BINARY := $(BIN_DIR)/face_recognition
FACE_SCAN_SOURCE := src/face_scan.cc
FACE_SCAN_OBJECT := $(BUILD_DIR)/face_scan.o
FACE_SCAN_BINARY := $(BIN_DIR)/face_scan
.PHONY: all clean test info
all: \
$(FACE_RECOGNITION_BINARY) \
$(FACE_SCAN_BINARY)
$(BUILD_DIR):
mkdir -p $(BUILD_DIR)
$(BIN_DIR):
mkdir -p $(BIN_DIR)
$(ENGINE_OBJECT): $(ENGINE_SOURCE) include/face_engine.h | $(BUILD_DIR)
$(CXX) $(CXXFLAGS) -c $< -o $@
$(FACE_RECOGNITION_OBJECT): \
$(FACE_RECOGNITION_SOURCE) \
include/face_engine.h \
include/face_config.h \
| $(BUILD_DIR)
$(CXX) $(CXXFLAGS) -c $< -o $@
$(FACE_SCAN_OBJECT): \
$(FACE_SCAN_SOURCE) \
include/face_engine.h \
include/face_config.h \
| $(BUILD_DIR)
$(CXX) $(CXXFLAGS) -c $< -o $@
$(FACE_RECOGNITION_BINARY): \
$(ENGINE_OBJECT) \
$(FACE_RECOGNITION_OBJECT) \
| $(BIN_DIR)
$(CXX) $^ $(LDFLAGS) $(LDLIBS) -o $@
$(FACE_SCAN_BINARY): \
$(ENGINE_OBJECT) \
$(FACE_SCAN_OBJECT) \
| $(BIN_DIR)
$(CXX) $^ $(LDFLAGS) $(LDLIBS) -o $@
test: all
./bin/face_recognition \
test/test.jpg \
test/test3f.jpg
./bin/face_scan \
test/test3f.jpg \
> /tmp/face_scan_test.json
python3 -m json.tool \
/tmp/face_scan_test.json \
> /dev/null
@echo "Tests completed successfully"
info:
@echo "ROOT=$(ROOT)"
@echo "CXX=$(CXX)"
@echo "CXXFLAGS=$(CXXFLAGS)"
@echo "LDFLAGS=$(LDFLAGS)"
clean:
rm -rf $(BUILD_DIR)
rm -f $(FACE_RECOGNITION_BINARY)
rm -f $(FACE_SCAN_BINARY)