JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
custom rocks
[vor.git] / Makefile
1 #   Rock Dodger! Avoid the rocks as long as you can!
2 #   Copyright (C) 2001  Paul Holt <pad@pcholt.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 debug := $(if $(DEBUG),1,0)
19 ldflags := $(shell sdl-config --libs) -lSDL_image -lSDL_mixer
20 cflags := $(shell sdl-config --cflags) -Wall -DDEBUG=$(debug)
21
22 my_objects := file.o score.o sound.o main.o $(if $(DEBUG),debug.o)
23 libs := SFont.o
24 objects := $(libs) $(my_objects)
25
26 graphics := data/sprites/ship.png data/sprites/rock00.png data/sprites/rock01.png data/sprites/rock02.png data/sprites/rock03.png data/sprites/rock04.png data/sprites/rock05.png data/sprites/rock06.png data/sprites/rock07.png data/sprites/rock08.png data/sprites/rock09.png data/sprites/rock10.png data/sprites/rock11.png data/sprites/rock12.png data/sprites/rock13.png data/sprites/rock14.png data/sprites/rock15.png data/sprites/rock16.png data/sprites/rock17.png data/sprites/rock18.png data/sprites/rock19.png data/sprites/rock20.png data/sprites/rock21.png data/sprites/rock22.png data/sprites/rock23.png data/sprites/rock24.png data/sprites/rock25.png data/sprites/rock26.png data/sprites/rock27.png data/sprites/rock28.png data/sprites/rock29.png data/sprites/rock30.png data/sprites/rock31.png data/sprites/rock32.png data/sprites/rock33.png data/sprites/rock34.png data/sprites/rock35.png data/sprites/rock36.png data/sprites/rock37.png data/sprites/rock38.png data/sprites/rock39.png data/sprites/rock40.png data/sprites/rock41.png data/sprites/rock42.png data/sprites/rock43.png data/sprites/rock44.png data/sprites/rock45.png data/sprites/rock46.png data/sprites/rock47.png data/sprites/rock48.png data/sprites/rock49.png
27
28 INSTALL = install
29 INSTALL_PROGRAM = $(INSTALL) -o games -g games
30 INSTALL_DATA = $(INSTALL) -m 644
31
32 DATA_PREFIX = /usr/share/vor
33 PROGRAM_PREFIX = /usr/games/bin
34
35
36 all: vor $(graphics)
37
38 %.o: %.c
39         $(CC) $(cflags) -c -o $@ $<
40
41 $(my_objects): config.h
42
43 main.o file.o: file.h
44
45 vor: $(objects)
46         $(CC) $(ldflags) -o $@ $^ $(LIBRARIES)
47
48 pnmoutline: pnmoutline.c
49         $(CC) -lnetpbm -o $@ $<
50
51 data/sprites/ship.png: ship.pov pnmoutline Makefile
52         povray -GA -D +A +UA +W32 +H32 $< >/dev/null 2>/dev/null
53         pngtopnm ship.png >ship.pnm
54         ./pnmoutline <ship.pnm >data/sprites/ship.pnm
55         pnmtopng -transparent =white data/sprites/ship.pnm >$@
56         rm ship.png ship.pnm data/sprites/ship.pnm
57
58 data/sprites/rock%.png: rocks.pov Makefile
59         povray -Irocks.pov -D +H52 +W52 +K`echo "$@" | grep -o '[0-9][0-9]'` +Fp -O$@.pnm
60         pnmcrop < $@.pnm > $@-c.pnm
61         pnmtopng -transparent black < $@-c.pnm > $@
62         rm $@.pnm $@-c.pnm
63
64 clean:
65         rm -f *.o vor pnmoutline data/sprites/ship.png
66
67 install:        all
68         if [ ! -d $(DATA_PREFIX) ]; then mkdir $(DATA_PREFIX); fi
69         if [ ! -d $(DATA_PREFIX)/banners ]; then mkdir $(DATA_PREFIX)/banners; fi
70         if [ ! -d $(DATA_PREFIX)/fonts ]; then mkdir $(DATA_PREFIX)/fonts; fi
71         if [ ! -d $(DATA_PREFIX)/icons ]; then mkdir $(DATA_PREFIX)/icons; fi
72         if [ ! -d $(DATA_PREFIX)/indicators ]; then mkdir $(DATA_PREFIX)/indicators; fi
73         if [ ! -d $(DATA_PREFIX)/music ]; then mkdir $(DATA_PREFIX)/music; fi
74         if [ ! -d $(DATA_PREFIX)/sounds ]; then mkdir $(DATA_PREFIX)/sounds; fi
75         if [ ! -d $(DATA_PREFIX)/sprites ]; then mkdir $(DATA_PREFIX)/sprites; fi
76
77         $(INSTALL_PROGRAM) ./vor $(PROGRAM_PREFIX)
78         $(INSTALL_DATA) ./data/banners/* $(DATA_PREFIX)/banners/
79         $(INSTALL_DATA) ./data/fonts/* $(DATA_PREFIX)/fonts/
80         $(INSTALL_DATA) ./data/icons/* $(DATA_PREFIX)/icons/
81         $(INSTALL_DATA) ./data/indicators/* $(DATA_PREFIX)/indicators/
82         $(INSTALL_DATA) ./data/music/* $(DATA_PREFIX)/music/
83         $(INSTALL_DATA) ./data/sounds/* $(DATA_PREFIX)/sounds/
84         $(INSTALL_DATA) ./data/sprites/* $(DATA_PREFIX)/sprites/
85         touch $(DATA_PREFIX)/scores
86         chmod a+rw $(DATA_PREFIX)/scores
87
88 uninstall:
89         rm -f $(PROGRAM_PREFIX)/vor
90         rm -f $(DATA_PREFIX)/banners/*
91         rm -f $(DATA_PREFIX)/fonts/*
92         rm -f $(DATA_PREFIX)/icons/*
93         rm -f $(DATA_PREFIX)/indicators/*
94         rm -f $(DATA_PREFIX)/music/*
95         rm -f $(DATA_PREFIX)/sounds/*
96         rm -f $(DATA_PREFIX)/sprites/*
97         rm -f $(DATA_PREFIX)/scores $(DATA_PREFIX)/.highscore
98
99         if [ -d $(DATA_PREFIX)/banners ]; then rmdir $(DATA_PREFIX)/banners; fi
100         if [ -d $(DATA_PREFIX)/fonts ]; then rmdir $(DATA_PREFIX)/fonts; fi
101         if [ -d $(DATA_PREFIX)/icons ]; then rmdir $(DATA_PREFIX)/icons; fi
102         if [ -d $(DATA_PREFIX)/indicators ]; then rmdir $(DATA_PREFIX)/indicators; fi
103         if [ -d $(DATA_PREFIX)/music ]; then rmdir $(DATA_PREFIX)/music; fi
104         if [ -d $(DATA_PREFIX)/sounds ]; then rmdir $(DATA_PREFIX)/sounds; fi
105         if [ -d $(DATA_PREFIX)/sprites ]; then rmdir $(DATA_PREFIX)/sprites; fi
106         if [ -d $(DATA_PREFIX) ]; then rmdir $(DATA_PREFIX); fi