-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
67 lines (50 loc) · 2.18 KB
/
Makefile
File metadata and controls
67 lines (50 loc) · 2.18 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
65
66
67
HOST=$(shell hostname)
LIBPATH=/usr/local/lib
DIR=$(HOME)/basketball
HEADER=$(DIR)/include
LIBDIR=$(DIR)/lib
CC=g++
LIBS=-larmadillo -lm -lboost_program_options
FLAGS=-I$(HEADER) -pthread -std=c++11
RELEASE=-O3 -DNDEBUG
DEBUG=-DDEBUG -g -Wall -pedantic -Wextra #-Weffc++
SHARED_OBJ=$(LIBDIR)/libbasket.so
OBJDIR=$(DIR)/obj
TEST_EXE=./unit_tests
SRCS=$(wildcard $(DIR)/src/*.cpp $(DIR)/src/*.c)
OBJS=$(addsuffix .o,$(addprefix $(OBJDIR)/,$(basename $(notdir $(SRCS)))))
#$(info $$OBJS is [${OBJS}])
# for compiling everything, release and debug modes
debug: FLAGS += $(DEBUG)
debug: all
release: FLAGS += $(RELEASE)
release: all
all: $(SHARED_OBJ)
$(SHARED_OBJ) : $(OBJS)
$(CC) -shared $(FLAGS) -o $@ $^ -L$(LIBPATH) $(LIBS)
$(OBJDIR)/player.o : $(DIR)/src/player.cpp $(HEADER)/player.hpp $(HEADER)/optim.h $(HEADER)/kinematics.h
$(CC) -c -fPIC $(FLAGS) -o $@ $<
$(OBJDIR)/ball.o : $(DIR)/src/ball.cpp $(HEADER)/ball.h $(HEADER)/constants.h
$(CC) -c -fPIC $(FLAGS) -o $@ $<
$(OBJDIR)/kalman.o : $(DIR)/src/kalman.cpp $(HEADER)/kalman.h
$(CC) -c -fPIC $(FLAGS) -o $@ $<
$(OBJDIR)/extkalman.o : $(DIR)/src/extkalman.cpp $(HEADER)/kalman.h
$(CC) -c -fPIC $(FLAGS) -o $@ $<
$(OBJDIR)/sl_basketball_interface.o : $(DIR)/src/sl_basketball_interface.cpp $(HEADER)/kalman.h $(HEADER)/optim.h $(HEADER)/kinematics.h \
$(HEADER)/constants.h $(HEADER)/sl_basketball_interface.h $(HEADER)/ball.h
$(CC) -c -fPIC $(FLAGS) -o $@ $<
$(OBJDIR)/optim.o : $(DIR)/src/optim.cpp $(HEADER)/kinematics.h $(HEADER)/optim.h $(HEADER)/utils.h $(HEADER)/constants.h $(HEADER)/ball.h
$(CC) -c -fPIC $(FLAGS) -o $@ $<
$(OBJDIR)/kinematics.o : $(DIR)/src/kinematics.cpp $(HEADER)/kinematics.h $(HEADER)/constants.h $(HEADER)/optim.h
$(CC) -c -fPIC $(FLAGS) -o $@ $<
$(OBJDIR)/utils.o : $(DIR)/src/utils.c $(HEADER)/utils.h
$(CC) -c -fPIC $(FLAGS) -o $@ $<
clean:
rm -rf obj/*.o lib/*.so
##### ALL TESTS ARE INCLUDED HERE
test: $(TEST_EXE)
$(TEST_EXE) : obj/test/test_optim.o $(SHARED_OBJ)
$(CC) $(FLAGS) $(DEBUG) -o $@ $^ $(SHARED_OBJ) -L$(LIBPATH) $(LIBS) $(LIBPATH)/libboost_unit_test_framework.a -lnlopt
obj/test/test_optim.o : test/test_optim.cpp
$(CC) -c $(FLAGS) -o $@ $<
.PHONY: all test clean