Skip to content
Snippets Groups Projects
Makefile 1.08 KiB
Newer Older
burneykb's avatar
burneykb committed
# Declaration of variables
GCC=gcc
GXX=g++
CFLAGS= -Wall  -std=c99 -g
CPPFLAGS= -Wall  -std=c++11 -g
burneykb's avatar
burneykb committed
INCLUDES = $(foreach dir, $(INCDIR), -I$(dir))

# Directories
SRCDIR=src 
INCDIR=inc src src/vrpn src/vrpn/quat src/vrpn/build 
OBJDIR=obj

# Final exacutable name
EXE=BlueTooth

# File names
CSOURCES := $(foreach dir, $(SRCDIR), $(wildcard $(dir)/*.c )) 
CPPSOURCES := $(foreach dir, $(SRCDIR), $(wildcard $(dir)/*.cpp ))
COBJECTS = $(CSOURCES:.c=.o) 
CPPOBJECTS = $(CPPSOURCES:.cpp=.o)
OBJECTS = $(CPPOBJECTS) $(COBJECTS) 

LIBS= -lpthread -lbluetooth -lvrpn -lquat -Lsrc/vrpn/build -Lsrc/vrpn/build/quat 

# Default target
all: logs vrpn/build $(EXE)

# Main target
$(EXE): $(OBJECTS) 
	$(GXX) $(CPPFLAGS) $^ -o $@  $(INCLUDES) $(LIBS)

$(COBJECTS) : %.o : %.c
	$(GCC)  $(CFLAGS) -c $< -o $@ $(INCLUDES) $(LIBS)

$(CPPOBJECTS) : %.o : %.cpp
	$(GCC)  $(CPPFLAGS) -c $< -o $@ $(INCLUDES) $(LIBS)

vrpn/build:
	mkdir -p src/vrpn/build
	cd src/vrpn/build && cmake .. && make

logs:
	mkdir -p logs

clean_logs:
	rm -f logs/*

clean:
	rm -f $(EXE) $(OBJECTS)

debug:
	@echo $(COBJECTS)
	@echo $(CPPOBJECTS)