44 lines
1.5 KiB
Plaintext
44 lines
1.5 KiB
Plaintext
CXX ?= c++
|
|
CXXFLAGS ?= -O2 -std=c++17 -Wall -Wextra -pedantic
|
|
ECMC_ROOT ?= ../ecmc
|
|
ECMCCFG_ROOT ?= ../ecmccfg
|
|
PYTHON ?= python3
|
|
UNAME := $(shell uname -s)
|
|
ifeq ($(UNAME),Darwin)
|
|
SHARED := -dynamiclib
|
|
EXT := dylib
|
|
else
|
|
SHARED := -shared
|
|
EXT := so
|
|
endif
|
|
.PHONY: all test logic pvs clean
|
|
all: build/libhexapod.$(EXT) build/test_kinematics
|
|
build:
|
|
mkdir -p build
|
|
build/libhexapod.$(EXT): src/c_api.cpp src/kinematics.hpp | build
|
|
$(CXX) $(CXXFLAGS) -fPIC $(SHARED) -o $@ src/c_api.cpp
|
|
build/test_kinematics: tests/test_kinematics.cpp src/kinematics.hpp | build
|
|
$(CXX) $(CXXFLAGS) -Isrc -o $@ tests/test_kinematics.cpp
|
|
test: all
|
|
./build/test_kinematics
|
|
$(PYTHON) python/viewer.py --self-test
|
|
logic: build/libhexapod_logic.$(EXT) pvs
|
|
build/libhexapod_logic.$(EXT): src/logic.cpp src/kinematics.hpp | build
|
|
$(CXX) $(CXXFLAGS) -fPIC $(SHARED) -I$(ECMC_ROOT)/devEcmcSup/logic -o $@ src/logic.cpp
|
|
pvs:
|
|
$(PYTHON) $(ECMCCFG_ROOT)/examples/PSI/plugins/cpp_logic/utils/ecmcCppLogicSourceSubstGen.py --source src/logic.cpp --logic-name hexapod --output cfg/libhexapod_logic.so_cpp_logic.subs
|
|
clean:
|
|
rm -rf build
|
|
|
|
.PHONY: test-logic
|
|
test-logic: build/test_logic
|
|
./build/test_logic
|
|
build/test_logic: tests/test_logic.cpp src/logic.cpp src/kinematics.hpp | build
|
|
$(CXX) $(CXXFLAGS) -I$(ECMC_ROOT)/devEcmcSup/logic -o $@ tests/test_logic.cpp
|
|
|
|
.PHONY: bench
|
|
bench: build/kinematics_bench
|
|
./build/kinematics_bench
|
|
build/kinematics_bench: bench/kinematics_bench.cpp src/kinematics.hpp | build
|
|
$(CXX) $(CXXFLAGS) -Isrc -o $@ bench/kinematics_bench.cpp
|