File: Makefile

package info (click to toggle)
vonsh 1.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,588 kB
  • sloc: ansic: 2,355; makefile: 53
file content (41 lines) | stat: -rw-r--r-- 1,471 bytes parent folder | download
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
VERSION_STR ?= DEV
INC_DIR = inc
SRC_DIR = src
OBJ_DIR = obj
BUILD_DIR = usr
EXE_DIR = $(BUILD_DIR)/games
SRC = $(wildcard $(SRC_DIR)/*.c)
OBJ = $(SRC:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o)
EXE = $(EXE_DIR)/vonsh
STRIP ?= strip
CFLAGS ?= -Wall -Wextra -Werror=format-security
CFLAGS += -std=c99 -D_DEFAULT_SOURCE -pedantic -I$(INC_DIR) -DVERSION_STR=\"$(VERSION_STR)\"
LDFLAGS ?= -Wl,-z,relro,-z,now
LDLIBS = -lSDL2 -lSDL2main -lSDL2_image -lSDL2_mixer -lcjson -lm
.PHONY: all clean deb_build deb_clean
all: release
release: CFLAGS += -O2 -D_FORTIFY_SOURCE=2 -fstack-protector-strong
release: $(EXE)
	$(STRIP) --strip-all $^
debug: CFLAGS += -g
debug: $(EXE)
$(EXE): $(OBJ)
	mkdir -p $(EXE_DIR)
	$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
	mkdir -p $(OBJ_DIR)
	$(CC) $(CFLAGS) -c $< -o $@
clean:
	$(RM) -rf $(EXE_DIR) $(OBJ_DIR)
deb_build: deb_clean
	git archive --format=tar.gz --output=../vonsh_$(UPSTREAM_VERSION_STR).orig.tar.gz v$(UPSTREAM_VERSION_STR) -- . ':!debian'
	mkdir -p $(DEB_BUILD_DIR)
	tar xf ../vonsh_$(UPSTREAM_VERSION_STR).orig.tar.gz -C $(DEB_BUILD_DIR)
	cp -a debian $(DEB_BUILD_DIR)
	cd $(DEB_BUILD_DIR)/ && dpkg-buildpackage
	rm -rf $(DEB_BUILD_DIR)
deb_clean:
	$(eval UPSTREAM_VERSION_STR := $(shell dpkg-parsechangelog -S Version | sed 's/-[^-]*$$//'))
	$(eval DEB_BUILD_DIR := ../vonsh_$(UPSTREAM_VERSION_STR)_deb_build)
	rm -rf $(DEB_BUILD_DIR)
	rm -rf ../vonsh_$(UPSTREAM_VERSION_STR)* ../vonsh-dbgsym_$(UPSTREAM_VERSION_STR)*