1 # Makefile for supertux
3 # by Bill Kendrick & Tobias Glaesser
4 # bill@newbreedsoftware.com
6 # http://www.newbreedsoftware.com/
8 # Version 0.0.6 (in development)
10 # April 11, 2000 - December 29, 2000
13 # User-definable stuff:
16 ifeq ($(USERNAME),root)
21 DATA_PREFIX=$(PWD)/data/
23 DATA_PREFIX=$(PREFIX)/share/games/supertux/data/
28 #undefine this for non debugging compilation
30 DEBUG_FLAG=-DDEBUG -pg
37 CFLAGS=-Wall -O2 $(SDL_CFLAGS) -DDATA_PREFIX=\"$(DATA_PREFIX)\" \
38 -D$(NOSOUNDFLAG) -D$(NOOPENGLFLAG) -D$(TARGET_DEF) -DJOY_$(JOY) $(DEBUG_FLAG)
47 SDL_LIB=$(SDL_MIXER) $(SDL_IMAGE) $(SDL_LDFLAGS)
48 SDL_CFLAGS := $(shell sdl-config --cflags)
49 SDL_LDFLAGS := $(shell sdl-config --libs)
50 GL_LIB = -L/usr/X11R6/lib -lGL
51 installbin = install -g $(USERNAME) -o $(USERNAME) -m 755
52 installdat = install -g $(USERNAME) -o $(USERNAME) -m 644
55 OBJECTS=obj/supertux.o obj/setup.o obj/intro.o obj/title.o obj/scene.o obj/collision.o obj/bitmask.o obj/type.o \
56 obj/timer.o obj/text.o obj/texture.o obj/badguy.o obj/special.o obj/world.o obj/player.o obj/level.o obj/gameloop.o \
57 obj/screen.o obj/sound.o obj/high_scores.o obj/menu.o obj/leveleditor.o
64 mkdir -p $(PREFIX)/games/$(TARGET)
65 mkdir -p $(PREFIX)/share/games/$(TARGET)
66 mkdir -p $(PREFIX)/bin/
67 cp -r data $(PREFIX)/share/games/$(TARGET)/
68 chmod -R 0755 $(PREFIX)/share/games/$(TARGET)/data/
69 -$(installbin) $(TARGET) $(PREFIX)/games/$(TARGET)/$(TARGET)
70 ln -sf $(PREFIX)/games/$(TARGET)/$(TARGET) $(PREFIX)/bin/$(TARGET)
73 rm -r $(PREFIX)/games/$(TARGET)
74 rm -r $(PREFIX)/share/games/$(TARGET)
75 rm $(PREFIX)/bin/$(TARGET)
78 make supertux SDL_MIXER= NOSOUNDFLAG=NOSOUND
81 make supertux GL_LIB= NOOPENGLFLAG=NOOPENGL
84 make supertux GL_LIB= SDL_MIXER= NOSOUNDFLAG=NOSOUND NOOPENGLFLAG=NOOPENGL
87 make TARGET_DEF=WIN32 TARGET=supertux.exe \
89 cp /usr/local/cross-tools/i386-mingw32/lib/SDL*.dll .
93 -rm -f supertux supertux.exe
100 $(TARGET): $(OBJECTS)
101 $(CC) $(CFLAGS) $(OBJECTS) -o $(TARGET) $(SDL_LIB) $(GL_LIB)
105 obj/supertux.o: src/supertux.c src/supertux.h src/defines.h src/globals.h \
106 obj/setup.o obj/intro.o obj/title.o obj/gameloop.o \
107 obj/screen.o obj/sound.o obj/leveleditor.o
108 $(CC) $(CFLAGS) src/supertux.c -c -o obj/supertux.o
110 obj/setup.o: src/setup.c src/setup.h obj/sound.o \
111 src/defines.h src/globals.h obj/screen.o
112 $(CC) $(CFLAGS) src/setup.c -c -o obj/setup.o
114 obj/intro.o: src/intro.c src/intro.h \
115 src/defines.h src/globals.h src/screen.h
116 $(CC) $(CFLAGS) src/intro.c -c -o obj/intro.o
118 obj/title.o: src/title.c src/title.h \
119 src/defines.h src/globals.h src/screen.h
120 $(CC) $(CFLAGS) src/title.c -c -o obj/title.o
122 obj/level.o: src/level.c src/defines.h src/globals.h \
123 src/level.h src/gameloop.h src/screen.h src/badguy.h
124 $(CC) $(CFLAGS) src/level.c -c -o obj/level.o
126 obj/scene.o: src/scene.c src/scene.h \
127 src/defines.h src/globals.h src/screen.h src/scene.h src/gameloop.h obj/sound.o \
128 src/setup.h obj/level.o
129 $(CC) $(CFLAGS) src/scene.c -c -o obj/scene.o
131 obj/collision.o: src/collision.c src/collision.h \
132 src/defines.h src/globals.h src/screen.h src/scene.h src/gameloop.h obj/sound.o \
133 src/setup.h obj/level.o
134 $(CC) $(CFLAGS) src/collision.c -c -o obj/collision.o
136 obj/bitmask.o: src/bitmask.c src/bitmask.h \
137 src/defines.h src/globals.h src/screen.h src/scene.h src/gameloop.h obj/sound.o \
138 src/setup.h obj/level.o
139 $(CC) $(CFLAGS) src/bitmask.c -c -o obj/bitmask.o
141 obj/type.o: src/type.c src/type.h \
142 src/defines.h src/globals.h src/screen.h src/scene.h src/gameloop.h obj/sound.o \
143 src/setup.h obj/level.o
144 $(CC) $(CFLAGS) src/type.c -c -o obj/type.o
146 obj/timer.o: src/timer.c src/timer.h \
147 src/defines.h src/globals.h src/screen.h src/scene.h src/gameloop.h obj/sound.o \
148 src/setup.h obj/level.o
149 $(CC) $(CFLAGS) src/timer.c -c -o obj/timer.o
151 obj/texture.o: src/texture.c src/texture.h \
152 src/defines.h src/globals.h src/screen.h src/scene.h src/gameloop.h obj/sound.o \
153 src/setup.h obj/level.o
154 $(CC) $(CFLAGS) src/texture.c -c -o obj/texture.o
156 obj/text.o: src/text.c src/text.h \
157 src/defines.h src/globals.h src/screen.h src/scene.h src/gameloop.h obj/sound.o \
158 src/setup.h obj/level.o
159 $(CC) $(CFLAGS) src/text.c -c -o obj/text.o
161 obj/badguy.o: src/badguy.c src/badguy.h \
162 src/defines.h src/globals.h src/screen.h src/gameloop.h obj/sound.o \
163 src/setup.h obj/level.o
164 $(CC) $(CFLAGS) src/badguy.c -c -o obj/badguy.o
166 obj/special.o: src/special.c src/special.h \
167 src/defines.h src/globals.h src/screen.h src/gameloop.h obj/sound.o \
168 src/setup.h obj/level.o
169 $(CC) $(CFLAGS) src/special.c -c -o obj/special.o
171 obj/world.o: src/world.c src/world.h \
172 src/defines.h src/globals.h src/screen.h src/gameloop.h obj/sound.o \
173 src/setup.h obj/level.o
174 $(CC) $(CFLAGS) src/world.c -c -o obj/world.o
176 obj/player.o: src/player.c src/player.h \
177 src/defines.h src/globals.h src/screen.h src/gameloop.h obj/sound.o \
178 src/setup.h obj/level.o
179 $(CC) $(CFLAGS) src/player.c -c -o obj/player.o
181 obj/gameloop.o: src/gameloop.c src/gameloop.h \
182 src/defines.h src/globals.h src/screen.h obj/sound.o \
183 src/setup.h obj/level.o obj/player.o
184 $(CC) $(CFLAGS) src/gameloop.c -c -o obj/gameloop.o
186 obj/screen.o: src/screen.c src/defines.h src/globals.h src/screen.h
187 $(CC) $(CFLAGS) src/screen.c -c -o obj/screen.o
189 obj/sound.o: src/sound.c src/defines.h src/globals.h src/sound.h
190 $(CC) $(CFLAGS) src/sound.c -c -o obj/sound.o
192 obj/high_scores.o: src/high_scores.c src/defines.h src/globals.h \
194 $(CC) $(CFLAGS) src/high_scores.c -c -o obj/high_scores.o
196 obj/menu.o: src/menu.c src/defines.h src/globals.h \
197 obj/sound.o src/menu.h src/leveleditor.h
198 $(CC) $(CFLAGS) src/menu.c -c -o obj/menu.o
200 obj/leveleditor.o: src/leveleditor.c src/defines.h src/globals.h \
201 src/leveleditor.h src/gameloop.h src/screen.h src/badguy.h
202 $(CC) $(CFLAGS) src/leveleditor.c -c -o obj/leveleditor.o