-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
64 lines (46 loc) · 1.88 KB
/
Makefile
File metadata and controls
64 lines (46 loc) · 1.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
SHELL = bash
PackagePath = $(shell pwd)
BUTOOL_PATH ?= ../../
LIBRARY_DUMMY_DEVICE = lib/libBUTool_DummyDevice.so
LIBRARY_DUMMY_DEVICE_SOURCES = $(wildcard src/DummyDevice/*.cc)
LIBRARY_DUMMY_DEVICE_OBJECT_FILES = $(patsubst src/%.cc,obj/%.o,${LIBRARY_DUMMY_DEVICE_SOURCES})
LIBRARY_DUMMY = lib/libBUTool_Dummy.so
LIBRARY_DUMMY_SOURCES = $(wildcard src/Dummy/*.cc)
LIBRARY_DUMMY_OBJECT_FILES = $(patsubst src/%.cc,obj/%.o,${LIBRARY_DUMMY_SOURCES})
INCLUDE_PATH = \
-Iinclude \
-I$(BUTOOL_PATH)/include
LIBRARY_PATH = \
-Llib \
-L$(BUTOOL_PATH)/lib
INSTALL_PATH ?= ./install
CPP_FLAGS = -std=c++11 -g -O3 -rdynamic -Wall -MMD -MP -fPIC ${INCLUDE_PATH} -Werror -Wno-literal-suffix
CPP_FLAGS +=-fno-omit-frame-pointer -Wno-ignored-qualifiers -Werror=return-type -Wextra -Wno-long-long -Winit-self -Wno-unused-local-typedefs -Woverloaded-virtual
LINK_LIBRARY_FLAGS = -Xlinker "--no-as-needed" -shared -fPIC -Wall -g -O3 -rdynamic ${LIBRARY_PATH} ${LIBRARIES} -Wl,-rpath=${PackagePath}/lib
.PHONY: all _all clean _cleanall build _buildall
default: build
clean: _cleanall
_cleanall:
rm -rf obj
rm -rf bin
rm -rf lib
all: _all
build: _all
buildall: _all
_all: ${LIBRARY_DUMMY_DEVICE} ${LIBRARY_DUMMY}
${LIBRARY_DUMMY_DEVICE}: ${LIBRARY_DUMMY_DEVICE_OBJECT_FILES} ${LIBRARY_DUMMY}
g++ ${LINK_LIBRARY_FLAGS} -lBUTool_Dummy ${LIBRARY_DUMMY_DEVICE_OBJECT_FILES} -o $@
@echo "export BUTOOL_AUTOLOAD_LIBRARY_LIST=\$$BUTOOL_AUTOLOAD_LIBRARY_LIST:$$PWD/${LIBRARY_DUMMY_DEVICE}" > env.sh
${LIBRARY_DUMMY}: ${LIBRARY_DUMMY_OBJECT_FILES}
g++ ${LINK_LIBRARY_FLAGS} ${LIBRARY_DUMMY_OBJECT_FILES} -o $@
# -----------------------
# install
# -----------------------
install: all
install -m 775 -d ${INSTALL_PATH}/lib
install -b -m 775 ./lib/* ${INSTALL_PATH}/lib
obj/%.o : src/%.cc
mkdir -p $(dir $@)
mkdir -p {lib,obj}
g++ ${CPP_FLAGS} -c $< -o $@
-include $(LIBRARY_OBJECT_FILES:.o=.d)