File: Makefile

package info (click to toggle)
curseofwar 1.3.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,596 kB
  • sloc: ansic: 3,315; makefile: 151
file content (124 lines) | stat: -rw-r--r-- 3,069 bytes parent folder | download | duplicates (2)
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
SHELL = /bin/sh
CC      = gcc
INSTALL = install
EXEC_NCURSES = curseofwar
EXEC_SDL = curseofwar-sdl

GAME_TITLE = $(EXEC_NCURSES)

PREFIX ?= /usr
MANPREFIX = $(PREFIX)/share/man

BINDIR = $(DESTDIR)$(PREFIX)/bin
MANDIR = $(DESTDIR)$(MANPREFIX)/man6
DOCDIR = $(DESTDIR)$(PREFIX)/share/doc/$(GAME_TITLE)

# Game resources directories
INSTALL_DATA ?= $(DESTDIR)$(PREFIX)/share/$(GAME_TITLE)
IMAGESDIR = images

# Sources
SRCS_INDEP = grid.c state.c king.c network.c client.c server.c output-common.c path.c main-common.c
SRCS_NCURSES = output.c main.c 
SRCS_SDL = output-sdl.c main-sdl.c

HDRS_INDEP = common.h messaging.h $(SRCS_INDEP:.c=.h)
HDRS_NCURSES = output.h
HDRS_SDL = output-sdl.h

OBJS_INDEP = $(SRCS_INDEP:.c=.o)
OBJS_NCURSES = $(SRCS_NCURSES:.c=.o)
OBJS_SDL = $(SRCS_SDL:.c=.o)

EXECS = $(EXEC_NCURSES) $(EXEC_SDL)
CFLAGS += -Wall -O2
LDLIBS += -lm

# Common sources and header
OBJS = $(OBJS_INDEP) 
HDRS = $(HDRS_INDEP) 
# SDL or ncurses
ifdef SDL
 OBJS += $(OBJS_SDL)
 HDRS += $(HDRS_SDL)
 CFLAGS += $(shell sdl-config --cflags)
 LDLIBS += $(shell sdl-config --libs)
 EXEC = $(EXEC_SDL)
 # Version-specific
 INSTALL_OPTIONAL = install-sdl-manpage
 UNINSTALL_OPTIONAL = uninstall-sdl-manpage
 ifdef INSTALL_DATA
  INSTALL_OPTIONAL += install-images
  UNINSTALL_OPTIONAL += uninstall-images
 endif
else
 OBJS += $(OBJS_NCURSES)
 HDRS += $(HDRS_NCURSES)
 LDLIBS += -lncurses
 EXEC = $(EXEC_NCURSES)
 # Version-specific
 INSTALL_OPTIONAL = install-manpage install-changelog
 UNINSTALL_OPTIONAL = uninstall-manpage uninstall-changelog
endif

VERSION=$(shell cat VERSION)
CPPFLAGS += -DVERSION="\"$(VERSION)\""

CPPFLAGS += -DINSTALL_DATA="\"$(INSTALL_DATA)/\""

.PHONY: all clean cleanall

# Build
all: $(EXEC)

clean:
	-rm -f $(OBJS_INDEP) $(OBJS_NCURSES) $(OBJS_SDL) $(EXECS)

%.o: %.c $(HDRS)  
	$(CC) $(CPPFLAGS) $(CFLAGS) -c $<

$(EXEC): $(OBJS) $(HDRS)
	$(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LDLIBS) -o $(EXEC)


# Install
install-manpage:
	$(INSTALL) -m 755 -d $(MANDIR)
	-sed "s/%VERSION%/$(VERSION)/g" $(GAME_TITLE).6 > $(MANDIR)/$(GAME_TITLE).6
	-chmod 644 $(MANDIR)/$(GAME_TITLE).6
install-changelog:
	$(INSTALL) -m 755 -d $(DOCDIR)
	-cat CHANGELOG | gzip -c > $(DOCDIR)/changelog.gz
	-chmod 644 $(DOCDIR)/changelog.gz
install-images:
	$(INSTALL) -m 755 -d $(INSTALL_DATA)/$(IMAGESDIR)
	for file in $(IMAGESDIR)/*; do \
		$(INSTALL) -m 0644 $$file $(INSTALL_DATA)/$(IMAGESDIR); \
	done
install-sdl-manpage:
	$(INSTALL) -m 755 -d $(MANDIR)
	-sed "s/%VERSION%/$(VERSION)/g" $(EXEC_SDL).6 > $(MANDIR)/$(EXEC_SDL).6
	-chmod 644 $(MANDIR)/$(GAME_TITLE).6

install: all $(INSTALL_OPTIONAL) 
	$(INSTALL) -m 755 -D $(EXEC) $(BINDIR)/$(EXEC)

# Uninstall
uninstall-manpage:
	-rm -f $(MANDIR)/$(GAME_TITLE).6.gz
uninstall-changelog:
	-rm $(DOCDIR)/changelog.gz
	-rmdir $(DOCDIR)

uninstall-images:
	-rm -f $(INSTALL_DATA)/$(IMAGESDIR)/*
	-rmdir $(INSTALL_DATA)/$(IMAGESDIR)
	-rmdir $(INSTALL_DATA)
uninstall-sdl-manpage:
	-rm -f $(MANDIR)/$(EXEC_SDL).6.gz

uninstall: $(UNINSTALL_OPTIONAL)
	-rm -f $(BINDIR)/$(EXEC)

show-path:
	@echo would install to ${BINDIR}