Skip to content
Snippets Groups Projects
Makefile 2.01 KiB
Newer Older
burneykb's avatar
burneykb committed
# Declaration of variables
burneykb's avatar
burneykb committed
GCC=gcc
GXX=g++
Jake Drahos's avatar
Jake Drahos committed
CFLAGS= -Wall -Wpedantic -Wextra -Werror -std=c99 -g -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-but-set-variable
CXXFLAGS= -Wall -Wpedantic -Wextra -Werror -Wno-reorder -Wno-unused-variable -std=c++0x -g
burneykb's avatar
burneykb committed
INCLUDES = $(foreach dir, $(INCDIR), -I$(dir))
Jake Drahos's avatar
Jake Drahos committed
INCDIR=inc src/vrpn src/vrpn/quat src/vrpn/build $(BESRCDIR) $(CLISRCDIR) $(FESRCDIR)
LIBS= -lpthread -lbluetooth -lvrpn -lquat -Lsrc/vrpn/build -Lsrc/vrpn/build/quat 
burneykb's avatar
burneykb committed
OBJDIR=obj

# Backend Specific Variables
BEBINARY=BackEnd
BESRCDIR=src/backend
BECSOURCES := $(wildcard $(BESRCDIR)/*.c )
BECOBJECTS = $(BECSOURCES:$(BESRCDIR)/%.c=$(OBJDIR)/%.o)
BECPPSOURCES := $(wildcard $(BESRCDIR)/*.cpp )
BECPPOBJECTS = $(BECPPSOURCES:$(BESRCDIR)/%.cpp=$(OBJDIR)/%.o)
burneykb's avatar
burneykb committed

CLISOURCES := $(wildcard $(CLISRCDIR)/*.c)
CLIOBJECTS = $(CLISOURCES:$(CLISRCDIR)/%.c=$(OBJDIR)/%.o)
burneykb's avatar
burneykb committed

Jake Drahos's avatar
Jake Drahos committed
# Frontend-common stuff
FESRCDIR=src/frontend
FECSOURCES := $(wildcard $(FESRCDIR)/*.c )
FECOBJECTS = $(FECSOURCES:$(FESRCDIR)/%.c=$(OBJDIR)/%.o)
Jake Drahos's avatar
Jake Drahos committed

OBJECTS= $(CLIOBJECTS) $(BECOBJECTS) $(BECPPOBJECTS) $(FECOBJECTS)
burneykb's avatar
burneykb committed

# Default target
Jake Drahos's avatar
Jake Drahos committed

vrpn: vrpn/build
burneykb's avatar
burneykb committed

cli:  $(CLIOBJECTS) $(FECOBJECTS)
	$(GCC) $(CFLAGS) $^ -o $@ $(INCLUDES) $(LIBS)
burneykb's avatar
burneykb committed

$(CLIOBJECTS) : $(OBJDIR)/%.o : $(CLISRCDIR)/%.c
	$(GCC)  $(CFLAGS) -c $^ -o $@ $(INCLUDES) $(LIBS)
burneykb's avatar
burneykb committed


backend: $(BECPPOBJECTS) $(BECOBJECTS)
	$(GXX) $(CXXFLAGS) $^ -o $(BEBINARY) $(INCLUDES) $(LIBS)

Jake Drahos's avatar
Jake Drahos committed
$(FECOBJECTS) : $(OBJDIR)/%.o : $(FESRCDIR)/%.c
	$(GCC)  $(CFLAGS) -c $^ -o $@ $(INCLUDES) $(LIBS)

$(BECOBJECTS) : $(OBJDIR)/%.o : $(BESRCDIR)/%.c
	$(GCC)  $(CFLAGS) -c $^ -o $@ $(INCLUDES) $(LIBS)

$(BECPPOBJECTS) : $(OBJDIR)/%.o : $(BESRCDIR)/%.cpp
	$(GXX)  $(CXXFLAGS) -c $^ -o $@ $(INCLUDES) $(LIBS)
burneykb's avatar
burneykb committed

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

logs:
	mkdir -p logs

burneykb's avatar
burneykb committed
clean_logs:
	rm -f logs/*

clean:
	rm -rf $(OBJDIR)/ $(BEBINARY) $(CLIBINARIES)
burneykb's avatar
burneykb committed

debug:
	@echo $(OBJECTS)