JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
create all install dirs and parents is needed
[vor.git] / Makefile
index c7f6941..555fb96 100644 (file)
--- a/Makefile
+++ b/Makefile
 #   along with this program; if not, write to the Free Software
 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-DATA_PREFIX := /usr/share/vor
-PROGRAM_PREFIX := /usr/games/bin
+prefix = /usr/local
+exec_prefix = $(prefix)
+
+datarootdir = $(prefix)/share
+pkgdatadir = $(datarootdir)/vor
+bindir = $(exec_prefix)/bin
 
 CFLAGS := -Wall -O3
 LDFLAGS := 
 
-paths := -DDATA_PREFIX=\"$(DATA_PREFIX)\"
+paths := -DDATA_PREFIX=\"$(pkgdatadir)\"
 sdl-cflags := $(shell sdl-config --cflags)
 sdl-ldflags := $(shell sdl-config --libs)
 
@@ -42,7 +46,7 @@ rocks := $(rocks:%=data/rock%.png)
 graphics := data/ship.png data/icon.png data/life.png data/font.png $(rocks)
 
 INSTALL := install
-INSTALL_PROGRAM := $(INSTALL) -o games -g games
+INSTALL_PROGRAM := $(INSTALL)
 INSTALL_DATA := $(INSTALL) -m 644
 
 
@@ -51,6 +55,8 @@ INSTALL_DATA := $(INSTALL) -m 644
 .PHONY: program program-clean install-program uninstall-program
 .PHONY: data data-clean install-data uninstall-data
 
+.INTERMEDIATE: font_guts font_guts.pov
+
 all: program data
 
 data: $(graphics)
@@ -58,8 +64,7 @@ data: $(graphics)
 program: vor
 
 %.o: %.c
-       @echo compiling $@ from $<
-       @$(CC) $(cflags) -c -o $@ $<
+       $(CC) $(cflags) -c -o $@ $<
 
 $(my_objects): config.h
 
@@ -84,8 +89,7 @@ sound.o: sound.h args.h common.h
 sprite.o: sprite.h common.h
 
 vor: $(objects)
-       @echo linking $@ from $^
-       @$(CC) $^ $(ldflags) -o $@
+       $(CC) $^ $(ldflags) -o $@
 
 include gfx.mk
 
@@ -104,30 +108,31 @@ data-clean:
        rm -f $(graphics) font_guts font_guts.pov
 
 mkinstalldirs:
-       if [ ! -d $(DATA_PREFIX) ]; then mkdir $(DATA_PREFIX); fi
+       if [ ! -d $(DESTDIR)$(pkgdatadir) ]; then mkdir -p $(DESTDIR)$(pkgdatadir); fi
+       if [ ! -d $(DESTDIR)$(bindir) ]; then mkdir -p $(DESTDIR)$(bindir); fi
 
-rminstalldirs:
-       if [ -d $(DATA_PREFIX) ]; then rmdir $(DATA_PREFIX); fi
+rminstalldirs: uninstall-data
+       if [ -d $(DESTDIR)$(pkgdatadir) ]; then rmdir $(DESTDIR)$(pkgdatadir); fi
 
 install: all mkinstalldirs install-program install-data
 
 install-program: program
-       $(INSTALL_PROGRAM) ./vor $(PROGRAM_PREFIX)
+       $(INSTALL_PROGRAM) ./vor $(DESTDIR)$(bindir)/
 
-install-data: data
-       $(INSTALL_DATA) ./data/*.png $(DATA_PREFIX)/
-       $(INSTALL_DATA) ./data/*.wav $(DATA_PREFIX)/
-       $(INSTALL_DATA) ./data/*.xm $(DATA_PREFIX)/
+install-data: data mkinstalldirs
+       $(INSTALL_DATA) ./data/*.png $(DESTDIR)$(pkgdatadir)/
+       $(INSTALL_DATA) ./data/*.wav $(DESTDIR)$(pkgdatadir)/
+       $(INSTALL_DATA) ./data/*.xm $(DESTDIR)$(pkgdatadir)/
        @echo
-       @echo "$(DATA_PREFIX)/icon.png (48x48) or ship.png (32x32) make good icons."
+       @echo "$(pkgdatadir)/icon.png (48x48) or ship.png (32x32) make good icons."
        @echo
 
 uninstall: uninstall-program uninstall-data rminstalldirs
 
 uninstall-program:
-       rm -f $(PROGRAM_PREFIX)/vor
+       rm -f $(DESTDIR)$(bindir)/vor
 
 uninstall-data:
-       rm -f $(DATA_PREFIX)/*.png
-       rm -f $(DATA_PREFIX)/*.wav
-       rm -f $(DATA_PREFIX)/*.xm
+       rm -f $(DESTDIR)$(pkgdatadir)/*.png
+       rm -f $(DESTDIR)$(pkgdatadir)/*.wav
+       rm -f $(DESTDIR)$(pkgdatadir)/*.xm