File: Makefile

package info (click to toggle)
bloboats 1.0.1.dsfg-3
  • links: PTS, VCS
  • area: main
  • in suites: squeeze, wheezy
  • size: 1,772 kB
  • ctags: 1,046
  • sloc: cpp: 9,638; makefile: 157
file content (183 lines) | stat: -rw-r--r-- 5,493 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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
# Released under GNU GPL version 2 except for a few datafiles.

### Installation options:
# These are the directories for `make install'
# NOTICE: Use absolute paths! ~ means $HOME, but ONLY for PRIVATEDIR.

### Installation directory (Installation prefix)
# If you don't have root privileges, set this to /home/tentacleman/bloboats/
# for example, otherwise /. Don't use ~ or other environment variables!
PREFIX = /

### Or if you don't want to run make install at all, uncomments the next line
# and comment the line below. Compile and run with './bin/bloboats'
#DATADIR = data

DATADIR = $(PREFIX)/usr/games/bloboats/data

### If you do make install, you may perhaps want to set these
BINARYDIR = $(PREFIX)/usr/bin
CONFIGDIR = $(PREFIX)/etc

PRIVATEDIR = ~/.bloboats



### To compile, this program requires:
# SDL, SDL_image, SDL_mixer and SDL_net to compile. Libvorbis for music support.
# OpenGL support.

SOUND = 0
NETWORK = 1
MUSIC = 0
DEBUG = 0

# Select target system
# Possible targets: DEFAULT (Linux and most of others too)
#                   FREEBSD
#                   NETBSD (use gmake)
#                   MACOSX (not sure if replay and ghost work)
#                   CROSS (for cross-compiling to win32)


#This should probably be DEFAULT
TARGET = DEFAULT


### Only some random settings below


# For compiling with an icon, set these

ICON = src/icon.o
ICON_CMD = i586-mingw32msvc-windres -i src/icon.rc -o $(ICON)


### C++ compiler to be used
CXX_DEFAULT = g++
CXX_FREEBSD = g++
CXX_NETBSD = g++
CXX_MACOSX = g++
CXX_CROSS = i586-mingw32msvc-g++

CXX = $(CXX_$(TARGET))


### SDL-Config in your system
SDLCONFIG_DEFAULT = sdl-config
SDLCONFIG_FREEBSD = sdl11-config
SDLCONFIG_NETBSD = sdl-config
SDLCONFIG_MACOSX = sdl-config
SDLCONFIG_CROSS = i586-mingw32msvc-sdl-config

SDLCONFIG = $(SDLCONFIG_$(TARGET))

### Libs
LIBS_DEFAULT = `$(SDLCONFIG) --libs` -lSDL_image -lSDL_mixer -lSDL_net -lGL -lGLU
LIBS_FREEBSD = `$(SDLCONFIG) --libs` -lSDL_image -lSDL_mixer -lSDL_net -L/usr/X11R6/lib -lGL -lGLU
LIBS_NETBSD = `$(SDLCONFIG) --libs` -lSDL_image -lSDL_mixer -lSDL_net -lGL -lGLU -L/usr/pkg/lib
LIBS_MACOSX = `$(SDLCONFIG) --libs` -lSDL_image -lSDL_mixer -lSDL_net -framework OpenGL
LIBS_CROSS = `$(SDLCONFIG) --libs` -lSDL_image -lSDL_mixer -lSDL_net -lopengl32 -lglu32

LIBS = $(LIBS_$(TARGET))

### Binary path
BINARY_DEFAULT = bloboats
BINARY_FREEBSD = bloboats
BINARY_NETBSD = bloboats
BINARY_MACOSX = bloboats
BINARY_CROSS = bloboats.exe

BINARY = $(BINARY_$(TARGET))

### CXX-Flags
CXXFLAGS_DEFAULT = -g `$(SDLCONFIG) --cflags` -o bin/$(BINARY) -O2
CXXFLAGS_FREEBSD = -g `$(SDLCONFIG) --cflags` -I/usr/X11R6/include -o bin/$(BINARY) -O2
CXXFLAGS_NETBSD = -g `$(SDLCONFIG) --cflags` -O2 -I/usr/pkg/include
CXXFLAGS_MACOSX = -g `$(SDLCONFIG) --cflags` -o bin/$(BINARY) -O2
CXXFLAGS_CROSS = -g `$(SDLCONFIG) --cflags` -o bin/$(BINARY) -O2

CXXFLAGS = $(CXXFLAGS_$(TARGET))

### Stripping command
STRIP_DEFAULT = strip
STRIP_FREEBSD = strip
STRIP_NETBSD = strip
STRIP_MACOSX = strip
STRIP_CROSS = i586-mingw32msvc-strip

STRIP = $(STRIP_$(TARGET))


##########
# -fomit-frame-pointer -ffast-math


OBJ=src/main.o src/vec.o src/particle.o src/keyboard.o src/window.o src/mouse.o src/graphics.o src/wall.o src/spring.o \
src/model.o src/font.o src/compat.o src/level.o src/model_tex.o src/game.o src/menu.o \
src/menutext.o src/config.o src/player.o src/models/paatti.o src/models/canvas.o \
src/sound.o src/media.o src/path.o src/text.o src/models/hirvio.o src/models/invader.o \
src/water.o src/models/broken.o src/models/boulder.o src/element.o src/models/tux.o \
src/connection.o src/condition.o src/handler.o src/texfile.o

BINARY_DEFAULT_ = blobinv
BINARY_FREEBSD_ = blobinv
BINARY_NETBSD_ = blobinv
BINARY_MACOSX_ = blobinv
BINARY_CROSS_ = blobinv.exe
BINARY_ = $(BINARY_$(TARGET)_)
CXXFLAGS_DEFAULT_ = -g `$(SDLCONFIG) --cflags` -o bin/$(BINARY_) -O2
CXXFLAGS_FREEBSD_ = -g `$(SDLCONFIG) --cflags` -I/usr/X11R6/include -o bin/$(BINARY_) -O2
CXXFLAGS_NETBSD = -g `$(SDLCONFIG) --cflags` -O2 -I/usr/pkg/include
CXXFLAGS_MACOSX_ = -g `$(SDLCONFIG) --cflags` -o bin/$(BINARY_) -O2
CXXFLAGS_CROSS_ = -g `$(SDLCONFIG) --cflags` -o bin/$(BINARY_) -O2
CXXFLAGS_ = $(CXXFLAGS_$(TARGET)_)

all: config main

main: $(OBJ)
	$(CXX) $(OBJ) $(LIBS) $(CXXFLAGS)
	$(STRIP) bin/$(BINARY)

icon:
	$(ICON_CMD)
	$(CXX) -o bin/$(BINARY) $(OBJ) $(ICON) $(LIBS)
	$(STRIP) bin/$(BINARY)

config:
	echo "datadir $(DATADIR)" >bloboats.dirs
	echo "privatedir $(PRIVATEDIR)" >>bloboats.dirs
	chmod 644 bloboats.dirs
	echo "#define DEFAULT_CONFIGFILE \"$(CONFIGDIR)/bloboats.dirs\"" >src/compiling_settings.h
	echo "#define SOUND $(SOUND)" >> src/compiling_settings.h
	echo "#define NETWORK $(NETWORK)" >> src/compiling_settings.h
	echo "#define MUSIC $(MUSIC)" >> src/compiling_settings.h
	echo "#define DEBUG $(DEBUG)" >> src/compiling_settings.h

install:
	mkdir -p $(BINARYDIR)/
	mkdir -p $(CONFIGDIR)/
	cp bloboats.dirs $(CONFIGDIR)/
	mkdir -p $(DATADIR)/
	cp -R data/* $(DATADIR)/
	cp bin/$(BINARY) $(BINARYDIR)/
	chmod -R 744 $(DATADIR)
	chmod 755 `find $(DATADIR) -type d`

uninstall:
	rm -f $(CONFIGDIR)/bloboats.dirs
	rm -rf $(DATADIR)/*
	rm -f $(BINARYDIR)/bloboats
	rmdir -p --ignore-fail-on-non-empty $(DATADIR)
	rmdir -p --ignore-fail-on-non-empty $(CONFIGDIR)
	rmdir -p --ignore-fail-on-non-empty $(BINARYDIR)

gho: src/viewport.o
	$(CXX) src/viewport.o $(LIBS) $(CXXFLAGS_)
	$(STRIP) bin/$(BINARY_)

clean:
	rm bloboats.dirs
	rm src/*.o
	rm src/models/*.o
	rm bin/$(BINARY)