JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
* mt.c: Added (Mersenne Twister random number generator).
[vor.git] / Makefile
1 #   Variations on Rockdodger
2 #   Copyright (C) 2004  Joshua Grams <josh@qualdan.com>
3
4 #   This program is free software; you can redistribute it and/or modify
5 #   it under the terms of the GNU General Public License as published by
6 #   the Free Software Foundation; either version 2 of the License, or
7 #   (at your option) any later version.
8
9 #   This program is distributed in the hope that it will be useful,
10 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
11 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 #   GNU General Public License for more details.
13
14 #   You should have received a copy of the GNU General Public License
15 #   along with this program; if not, write to the Free Software
16 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
18 DATA_PREFIX := /usr/share/vor
19 PROGRAM_PREFIX := /usr/games/bin
20
21 CFLAGS := -Wall
22 LDFLAGS := 
23
24 debug := $(if $(DEBUG),-DDEBUG=1)
25 paths := -DDATA_PREFIX=\"$(DATA_PREFIX)\"
26 sdl-cflags := $(shell sdl-config --cflags)
27 sdl-ldflags := $(shell sdl-config --libs)
28
29 ldflags := $(sdl-ldflags) -lSDL_image -lSDL_mixer $(LDFLAGS)
30 cflags := $(sdl-cflags) $(debug) $(paths) $(CFLAGS)
31
32 my_objects := args.o dust.o file.o mt.o rocks.o score.o shape.o sound.o
33 my_objects += $(if $(DEBUG),debug.o) main.o
34 libs := SFont.o
35 objects := $(libs) $(my_objects)
36
37 rocks := 00 01 02 03 04 05 06 07 08 09
38 rocks += 10 11 12 13 14 15 16 17 18 19
39 rocks += 20 21 22 23 24 25 26 27 28 29
40 rocks += 30 31 32 33 34 35 36 37 38 39
41 rocks += 40 41 42 43 44 45 46 47 48 49
42 rocks := $(rocks:%=data/sprites/rock%.png)
43 graphics := data/sprites/ship.png data/indicators/life.png $(rocks)
44
45 INSTALL := install
46 INSTALL_PROGRAM := $(INSTALL) -o games -g games
47 INSTALL_DATA := $(INSTALL) -m 644
48
49
50 .PHONY: all clean maintainer-clean install uninstall
51 .PHONY: mkinstalldirs rminstalldirs
52 .PHONY: program program-clean install-program uninstall-program
53 .PHONY: data data-clean install-data uninstall-data
54
55 all: program data
56
57 data: $(graphics)
58
59 program: vor
60
61 %.o: %.c
62         @echo compiling $@ from $<
63         @$(CC) $(cflags) -c -o $@ $<
64
65 $(my_objects): config.h
66
67 main.o file.o: file.h
68
69 vor: $(objects)
70         @echo linking $@ from $^
71         @$(CC) $(ldflags) -o $@ $^ $(LIBRARIES)
72
73 include gfx.mk
74
75 clean: program-clean
76
77 maintainer-clean: program-clean data-clean
78
79 program-clean:
80         rm -f *.o vor
81
82 data-clean:
83         rm -f $(graphics)
84
85 mkinstalldirs:
86         if [ ! -d $(DATA_PREFIX) ]; then mkdir $(DATA_PREFIX); fi
87         if [ ! -d $(DATA_PREFIX)/banners ]; then mkdir $(DATA_PREFIX)/banners; fi
88         if [ ! -d $(DATA_PREFIX)/fonts ]; then mkdir $(DATA_PREFIX)/fonts; fi
89         if [ ! -d $(DATA_PREFIX)/icons ]; then mkdir $(DATA_PREFIX)/icons; fi
90         if [ ! -d $(DATA_PREFIX)/indicators ]; then mkdir $(DATA_PREFIX)/indicators; fi
91         if [ ! -d $(DATA_PREFIX)/music ]; then mkdir $(DATA_PREFIX)/music; fi
92         if [ ! -d $(DATA_PREFIX)/sounds ]; then mkdir $(DATA_PREFIX)/sounds; fi
93         if [ ! -d $(DATA_PREFIX)/sprites ]; then mkdir $(DATA_PREFIX)/sprites; fi
94
95 rminstalldirs:
96         if [ -d $(DATA_PREFIX)/banners ]; then rmdir $(DATA_PREFIX)/banners; fi
97         if [ -d $(DATA_PREFIX)/fonts ]; then rmdir $(DATA_PREFIX)/fonts; fi
98         if [ -d $(DATA_PREFIX)/icons ]; then rmdir $(DATA_PREFIX)/icons; fi
99         if [ -d $(DATA_PREFIX)/indicators ]; then rmdir $(DATA_PREFIX)/indicators; fi
100         if [ -d $(DATA_PREFIX)/music ]; then rmdir $(DATA_PREFIX)/music; fi
101         if [ -d $(DATA_PREFIX)/sounds ]; then rmdir $(DATA_PREFIX)/sounds; fi
102         if [ -d $(DATA_PREFIX)/sprites ]; then rmdir $(DATA_PREFIX)/sprites; fi
103         if [ -d $(DATA_PREFIX) ]; then rmdir $(DATA_PREFIX); fi
104
105 install: all mkinstalldirs install-program install-data
106
107 install-program: program
108         $(INSTALL_PROGRAM) ./vor $(PROGRAM_PREFIX)
109
110 install-data: data
111         $(INSTALL_DATA) ./data/banners/* $(DATA_PREFIX)/banners/
112         $(INSTALL_DATA) ./data/fonts/* $(DATA_PREFIX)/fonts/
113         $(INSTALL_DATA) ./data/icons/* $(DATA_PREFIX)/icons/
114         $(INSTALL_DATA) ./data/indicators/* $(DATA_PREFIX)/indicators/
115         $(INSTALL_DATA) ./data/music/* $(DATA_PREFIX)/music/
116         $(INSTALL_DATA) ./data/sounds/* $(DATA_PREFIX)/sounds/
117         $(INSTALL_DATA) ./data/sprites/* $(DATA_PREFIX)/sprites/
118
119 uninstall: uninstall-program uninstall-data rminstalldirs
120
121 uninstall-program:
122         rm -f $(PROGRAM_PREFIX)/vor
123
124 uninstall-data:
125         rm -f $(DATA_PREFIX)/banners/*
126         rm -f $(DATA_PREFIX)/fonts/*
127         rm -f $(DATA_PREFIX)/icons/*
128         rm -f $(DATA_PREFIX)/indicators/*
129         rm -f $(DATA_PREFIX)/music/*
130         rm -f $(DATA_PREFIX)/sounds/*
131         rm -f $(DATA_PREFIX)/sprites/*
132         rm -f $(DATA_PREFIX)/scores