summaryrefslogtreecommitdiffstats
path: root/Master/Real-Time Systems/Praktikum1/Aufgabe3/Makefile
blob: 648c71149508096e38fd0b184b634d496f1a92b6 (plain)
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
#
# Variables
#
PROJECT_ROOT	= .
BUILDDIR			=	$(PROJECT_ROOT)/build
SOURCEDIR			= $(PROJECT_ROOT)/src
INCLUDEDIRS		= $(SOURCEDIR)
INCLUDES			= $(addprefix -I,$(INCLUDEDIRS))
LIBNAMES			= 
LIBS					=	$(addprefix -l,$(LIBNAMES))
DEBUGFLAGS		= -g
CFLAGS 				= -Wall -DDEBUG_MODE -DDEBUG
CFLAGS				+=	-DLINUX  $(DEBUGFLAGS)
LDFLAGS				= $(DEBUGFLAGS)
CC						=	g++
LD						= g++

LINK_TARGET = $(BUILDDIR)/scheduler_sim

SOURCES := $(wildcard $(SOURCEDIR)/*.cpp)

OBJS_TMP := $(foreach srcfile,$(SOURCES),$(srcfile).o)
OBJS	:= $(foreach tmp,$(OBJS_TMP),$(patsubst $(SOURCEDIR)/%.cpp.o,$(BUILDDIR)/%.o,$(tmp)))

REBUILDABLES = $(OBJS) $(LINK_TARGET)

.PHONY: clean
clean : 
	rm -f $(REBUILDABLES)
	rm -f $(BUILDDIR)/*
	rmdir $(BUILDDIR)
	@echo Clean done

all : builddir $(LINK_TARGET)
	@echo All done

builddir :
	@echo 'Creating build directory'
	mkdir -p $(BUILDDIR)

$(LINK_TARGET) : $(OBJS)
	@echo 'Linking file: $@'
	$(LD) $(LDFLAGS) $(LIBS) -o $@ $^

$(BUILDDIR)/%.o : $(SOURCEDIR)/%.cpp
	@echo 'Building file: $<'
	$(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $<