File: Makefile

package info (click to toggle)
triplane 1.0.8-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 16,056 kB
  • sloc: cpp: 14,583; makefile: 93; sh: 29
file content (102 lines) | stat: -rw-r--r-- 3,785 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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
PREFIX ?= /usr/local
DESTDIR ?=

CXX	     ?= g++
OPTIFLAG     = -O2 -g
SDL_CONFIG  ?= sdl-config
VERSION      = 1.0.8
CFLAGS      := -Wall -Isrc $(OPTIFLAG) $(CFLAGS_NOSDL) `$(SDL_CONFIG) --cflags` -DHAVE_SDL_MIXER "-DTRIPLANE_DATA=\"$(PREFIX)/share/games/triplane\"" "-DTRIPLANE_VERSION=\"$(VERSION)\""
LDFLAGS      = 
LIBS        := `$(SDL_CONFIG) --libs` -lSDL_mixer -lm
INSTALL_DATA     ?= install -m 644
INSTALL_PROGRAM  ?= install

COMMON_OBJS = src/gfx/bitmap.o src/gfx/font.o \
	src/gfx/gfx.o src/util/wutil.o src/util/random.o \
	src/io/sdl_compat.o src/io/video.o \
	src/io/mouse.o src/io/dksfile.o src/io/timing.o
TRIPLANE_OBJS = src/triplane.o src/world/tripai.o \
	src/world/tripmis.o src/gfx/fades.o src/menus/tripmenu.o \
	src/world/terrain.o src/world/fobjects.o src/world/tmexept.o \
	src/gfx/extra.o src/settings.o src/world/plane.o src/io/joystick.o src/io/sound.o \
	src/world/tripaudio.o
LVLEDIT_OBJS = src/tools/lvledit/lvledit.o
PGDVIEW_OBJS = src/tools/pgdview/pgdview.o
PCX2PGD_OBJS = src/tools/pcx2pgd/pcx2pgd.o

COMMON_SRCS = $(COMMON_OBJS:.o=.cpp)
TRIPLANE_SRCS = $(TRIPLANE_OBJS:.o=.cpp)
LVLEDIT_SRCS = $(LVLEDIT_OBJS:.o=.cpp)
PGDVIEW_SRCS = $(PGDVIEW_OBJS:.o=.cpp)
PCX2PGD_SRCS = $(PCX2PGD_OBJS:.o=.cpp)
ALLSRCS = $(COMMON_SRCS) $(TRIPLANE_SRCS) $(LVLEDIT_SRCS) $(PGDVIEW_SRCS) $(PCX2PGD_SRCS)

all: checkdepend triplane tools/dksbuild fokker.dks tools/lvledit tools/pgdview

checkdepend:
	@[ -f .depend ] || ( echo 'Please run "make depend" first!'; exit 1 )

depend: $(ALLSRCS)
	rm -f .depend
	touch .depend
	(set -e; \
	for src in $(ALLSRCS); do \
		$(CXX) -MM -MT "`echo "$$src" | sed 's/\\.cpp$$/.o/'`" $(CFLAGS) "$$src" >>.depend; \
	done)
	echo "fokker.dks: tools/dksbuild data/fokker.lst \\" >>.depend
	sed '1d;  /^;/d;  s/ .*$$//;  s/$$/ \\/;  $$s/ \\//;  s/^/  /;' data/fokker.lst >> .depend

clean:
	rm -f .depend
	rm -f src/*.o
	rm -f src/*/*.o
	rm -f src/*/*/*.o
	rm -f triplane tools/dksbuild tools/lvledit tools/pgdview tools/pcx2pgd
	rm -f fokker.dks

fokker.dks:
	./tools/dksbuild data/fokker.lst

%.o: %.cpp
	$(CXX) -o $@ $(CFLAGS) -c $<

triplane: $(TRIPLANE_OBJS) $(COMMON_OBJS)
	$(CXX) -o $@ $(CFLAGS) $(LDFLAGS) $^ $(LIBS)

tools/lvledit: $(LVLEDIT_OBJS) $(COMMON_OBJS)
	$(CXX) -o $@ $(CFLAGS) $(LDFLAGS) $^ $(LIBS)

tools/pgdview: $(PGDVIEW_OBJS) $(COMMON_OBJS)
	$(CXX) -o $@ $(CFLAGS) $(LDFLAGS) $^ $(LIBS)

tools/pcx2pgd: $(PCX2PGD_OBJS) $(COMMON_OBJS)
	$(CXX) -o $@ $(CFLAGS) $(LDFLAGS) $^ $(LIBS)

tools/dksbuild: src/tools/dksbuild/dksbuild.cc
	$(CXX) -o tools/dksbuild -g src/tools/dksbuild/dksbuild.cc

install:
	mkdir -p $(DESTDIR)$(PREFIX)/games
	$(INSTALL_PROGRAM) triplane $(DESTDIR)$(PREFIX)/games/triplane
	mkdir -p $(DESTDIR)$(PREFIX)/share/games/triplane
	$(INSTALL_DATA) fokker.dks $(DESTDIR)$(PREFIX)/share/games/triplane/fokker.dks
	mkdir -p $(DESTDIR)$(PREFIX)/share/man/man6
	$(INSTALL_DATA) doc/triplane.6 $(DESTDIR)$(PREFIX)/share/man/man6/triplane.6
test:
	if [ ! -d triplane-testsuite ]; then echo Please darcs get http://iki.fi/lindi/darcs/triplane-testsuite; false; fi
	SDL_VIDEODRIVER=dummy bash tools/run-all-tests tools/run-one-test ./triplane triplane-testsuite

build-data-from-source: tools/pcx2pgd
	tools/build-data-from-source

dist:
	make clean
	test -z "`git ls-files -d -o -m -u -s`" || (echo "There are uncommitted changes" >&2; /bin/false)
	test -z "`git diff --cached`" || (echo "There are uncommitted changes in the index" >&2; /bin/false)
	test -z "`find -type d -empty ! -path "./.git/*"`" || (echo "There are empty directories" >&2; /bin/false)
	tar --transform "s/^./triplane-$(VERSION)/" --exclude=.git --exclude=debian -zcf ../triplane-$(VERSION).tar.gz .

# man -Tps doc/triplane.6 > triplane.ps
# ps2pdf triplane.ps
.PHONY: all checkdepend depend clean install test
-include .depend