Skip to content
Snippets Groups Projects
Makefile 2.92 KiB
Newer Older
burneykb's avatar
burneykb committed
# Declaration of variables
burneykb's avatar
burneykb committed
GCC=gcc
GXX=g++
CFLAGS= -Wall -pedantic -Wextra -std=gnu99 -g -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-but-set-variable
CXXFLAGS= -Wall -pedantic -Wextra -Wno-reorder -Wno-unused-variable -std=c++0x -g
burneykb's avatar
burneykb committed
INCLUDES = $(foreach dir, $(INCDIR), -I$(dir))
dmlarson's avatar
dmlarson committed
INCDIR= src/vrpn src/vrpn/quat src/vrpn/build $(BESRCDIR) $(CLISRCDIR) $(FESRCDIR) $(MASRCDIR) ../quad/inc 
LIBS= -lpthread -lvrpn -lquat -Lsrc/vrpn/build -Lsrc/vrpn/build/quat -L../quad/lib -lquad_app -lcommands -lgraph_blocks -lcomputation_graph -lm
burneykb's avatar
burneykb committed
OBJDIR=obj

dmlarson's avatar
dmlarson committed
# Manual Assist Specific Variables
MABINARY=ManualAssist
MASRCDIR=src/manual_assist
MASOURCES := $(wildcard $(MASRCDIR)/*.c)
MAOBJECTS = $(MASOURCES:$(MASRCDIR)/%.c=$(OBJDIR)/%.o)

# 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

burneykb's avatar
burneykb committed
CLIBINARY=Cli
CLISOURCES := $(wildcard $(CLISRCDIR)/*.c)
CLIOBJECTS = $(CLISOURCES:$(CLISRCDIR)/%.c=$(OBJDIR)/%.o)
SYMLINKS= getnodes addnode getparam setparam getsource setsource getoutput gettrackable settrackable
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)
OBJECTS=$(CLIOBJECTS) $(BECOBJECTS) $(BECPPOBJECTS) $(FECOBJECTS)
burneykb's avatar
burneykb committed

# Default target
dmlarson's avatar
dmlarson committed
all: quad logs objdir backend cli $(SYMLINKS) frontend.a GroundStation manualassist

quad:
	$(MAKE) -C ../quad
Jake Drahos's avatar
Jake Drahos committed

$(SYMLINKS): $(CLIBINARY)
	$(foreach symlink, $(SYMLINKS), ln -s $(CLIBINARY) $(symlink);)
Jake Drahos's avatar
Jake Drahos committed

vrpn: vrpn/build
burneykb's avatar
burneykb committed

Jake Drahos's avatar
Jake Drahos committed
frontend.a: $(FECOBJECTS)
	ar rvs frontend.a $(wildcard $(OBJDIR)/frontend_*.o)

cli:  $(CLIOBJECTS) $(FECOBJECTS)
burneykb's avatar
burneykb committed
	$(GCC) $(CFLAGS) $^ -o $(CLIBINARY) $(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

dmlarson's avatar
dmlarson committed
manualassist: $(MAOBJECTS) $(FECOBJECTS)
	$(GCC) $(CFLAGS) $^ -o $(MABINARY) $(INCLUDES) $(LIBS)

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

burneykb's avatar
burneykb committed
vrpn/build:
	mkdir -p src/vrpn/build
	cd src/vrpn/build && cmake .. && make

ucart's avatar
ucart committed
GroundStation:
ucart's avatar
ucart committed
	cd gui/MicroCART && qmake-qt5
ucart's avatar
ucart committed
	cd gui/MicroCART && make
	ln -s gui/MicroCART/MicroCART GroundStation

burneykb's avatar
burneykb committed
logs:
	mkdir -p logs

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

clean:
dmlarson's avatar
dmlarson committed
	rm -rf $(OBJDIR)/ $(BEBINARY) $(CLIBINARY) $(SYMLINKS) $(MABINARY)
burneykb's avatar
burneykb committed

debug: