File: Makefile

package info (click to toggle)
ska 1.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 540 kB
  • sloc: cpp: 5,556; makefile: 90
file content (48 lines) | stat: -rw-r--r-- 917 bytes parent folder | download | duplicates (3)
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
CXX = g++
CXXFLAGS = -g -std=c++0x -O2

RM = rm -f
MKDIR = mkdir
ECHO = echo
CP = cp
dir_guard=@mkdir -p $(@D)

SOURCEDIR = src
HEADERDIR = src
BUILDDIR = build
BINARYDIR = bin

SOURCES = $(wildcard $(SOURCEDIR)/*.cpp)
OBJECTS = $(patsubst $(SOURCEDIR)/%.cpp, $(BUILDDIR)/%.o, $(SOURCES))

LDFLAGS = -lz

# the build target executable:
BINARY = ska

all: $(BINARYDIR)/$(BINARY)

$(BINARYDIR)/$(BINARY): $(OBJECTS)
	$(dir_guard)
	$(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)

$(BUILDDIR)/%.o: $(SOURCEDIR)/%.cpp
	$(dir_guard)
	$(CXX) $(CXXFLAGS) -I$(HEADERDIR) -I$(SOURCEDIR) -c $< -o $@

install:
	$(CP) $(BINARYDIR)/$(BINARY) /usr/local/bin/

.phony: clean
clean:
	$(RM) $(OBJECTS)

.phony: distclean
distclean: clean
	$(RM) $(BINARYDIR)/$(BINARY)

help:
	@$(ECHO) "Targets:"
	@$(ECHO) "all     - build and compile what is necessary"
	@$(ECHO) "clean   - cleanup old .o files"
	@$(ECHO) "distclean   - cleanup old binary"