JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
bump version to 0.5.8
[vor.git] / Makefile.in
index 15dce6d..aa1cd0a 100644 (file)
 #   along with this program; if not, write to the Free Software
 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-prefix = /usr/local
-exec_prefix = $(prefix)
 
-datarootdir = $(prefix)/share
-pkgdatadir = $(datarootdir)/vor
-bindir = $(exec_prefix)/bin
+SHELL = /bin/sh
+VPATH = @srcdir@
+
+srcdir = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datarootdir = @datarootdir@
+datadir = @datadir@
+pkgdatadir = $(datadir)/@PACKAGE_TARNAME@
+bindir = @bindir@
+
+CC = @CC@
+CPPFLAGS = @CPPFLAGS@
+CFLAGS = $(CPPFLAGS) @CFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+INSTALL = @INSTALL@
+
+
+exe_name = @PACKAGE_TARNAME@@EXEEXT@
+
 
-CFLAGS := -Wall -O3
-LDFLAGS := 
 
 paths := -DDATA_PREFIX=\"$(pkgdatadir)\"
-sdl-cflags := $(shell sdl-config --cflags)
-sdl-ldflags := $(shell sdl-config --libs)
+SDL_CFLAGS := @SDL_CFLAGS@ @SDL_MIXER_CFLAGS@ @SDL_IMAGE_CFLAGS@
+SDL_LIBS := @SDL_LIBS@ @SDL_MIXER_LIBS@ @SDL_IMAGE_LIBS@
 
-ldflags := $(sdl-ldflags) -lSDL_image -lSDL_mixer $(LDFLAGS)
-cflags := $(sdl-cflags) $(paths) $(CFLAGS)
+ldflags := $(SDL_LIBS) $(LDFLAGS) -lm
+cflags := -I. $(SDL_CFLAGS) $(paths) $(CFLAGS)
 
-my_objects := args.o dust.o file.o mt.o rocks.o score.o sprite.o sound.o autopilot.o
-my_objects += main.o
-libs := font.o
+my_objects := args.@OBJEXT@ dust.@OBJEXT@ file.@OBJEXT@ mt.@OBJEXT@ rocks.@OBJEXT@ score.@OBJEXT@ sprite.@OBJEXT@ sound.@OBJEXT@ autopilot.@OBJEXT@
+my_objects += main.@OBJEXT@
+libs := font.@OBJEXT@
 objects := $(libs) $(my_objects)
 
 rocks := 00 01 02 03 04 05 06 07 08 09
@@ -54,44 +68,52 @@ INSTALL_DATA := $(INSTALL) -m 644
 .PHONY: mkinstalldirs rminstalldirs
 .PHONY: program program-clean install-program uninstall-program
 .PHONY: data data-clean install-data uninstall-data
+.PHONY: build-dir-data-link
 
 .INTERMEDIATE: font_guts font_guts.pov
 
 all: program data
 
-data: $(graphics)
+data: $(graphics) build-dir-data-link
+
+# symbolic link to data dir so you can run the game from the build dir:
+build-dir-data-link:
+       test -e data || ln -s $(srcdir)/data
 
-program: vor
+program: $(exe_name) @PACKAGE_TARNAME@.desktop
 
-%.o: %.c
+%.@OBJEXT@: %.c
        $(CC) $(cflags) -c -o $@ $<
 
 $(my_objects): vorconfig.h
 
-font.o: font.h
+font.@OBJEXT@: font.h
 
-args.o: args.h
+args.@OBJEXT@: args.h config.h
 
-dust.o: globals.h dust.h float.h mt.h
+dust.@OBJEXT@: globals.h dust.h float.h mt.h
 
-file.o: file.h common.h
+file.@OBJEXT@: file.h common.h
 
-main.o: args.h common.h dust.h file.h float.h globals.h mt.h rocks.h score.h sprite.h sound.h autopilot.h
+main.@OBJEXT@: args.h common.h config.h dust.h file.h float.h globals.h mt.h rocks.h score.h sprite.h sound.h autopilot.h
 
-mt.o: mt.h
+mt.@OBJEXT@: mt.h
 
-rocks.o: rocks.h common.h file.h globals.h mt.h sprite.h
+rocks.@OBJEXT@: rocks.h common.h file.h globals.h mt.h sprite.h
 
-score.o: score.h common.h file.h
+score.@OBJEXT@: score.h common.h file.h
 
-sound.o: sound.h args.h common.h
+sound.@OBJEXT@: sound.h args.h common.h
 
-sprite.o: sprite.h common.h
+sprite.@OBJEXT@: sprite.h common.h
 
-vor: $(objects)
+@PACKAGE_TARNAME@.desktop: @PACKAGE_TARNAME@.desktop.in
+       sed -e "s|EXE_NAME|$(exe_name)|g" -e "s|DISPLAY_NAME|@PACKAGE_NAME@|g" -e "s|ICON_PATH|$(pkgdatadir)|g" $< > $@ || sh -c "rm $@; false"
+
+$(exe_name): $(objects)
        $(CC) $^ $(ldflags) -o $@
 
-include gfx.mk
+include $(srcdir)/gfx.mk
 
 tags: *.c *.h
        exuberant-ctags *.c *.h /usr/include/SDL/*
@@ -99,14 +121,17 @@ tags: *.c *.h
 clean: program-clean
        rm -f tags
 
-maintainer-clean: program-clean data-clean
-
-program-clean:
-       rm -f *.o vor
+distclean: clean
+       rm -f Makefile config.h config.log config.status
 
-data-clean:
+maintainer-clean: distclean
+       @echo 'This command is intended for maintainers to use; it'
+       @echo 'deletes files that may need special tools to rebuild.'
        rm -f $(graphics) font_guts font_guts.pov
 
+program-clean:
+       rm -f *.@OBJEXT@ $(exe_name) @PACKAGE_TARNAME@.desktop
+
 mkinstalldirs:
        if [ ! -d $(DESTDIR)$(pkgdatadir) ]; then mkdir -p $(DESTDIR)$(pkgdatadir); fi
        if [ ! -d $(DESTDIR)$(bindir) ]; then mkdir -p $(DESTDIR)$(bindir); fi
@@ -114,15 +139,26 @@ mkinstalldirs:
 rminstalldirs: uninstall-data
        if [ -d $(DESTDIR)$(pkgdatadir) ]; then rmdir $(DESTDIR)$(pkgdatadir); fi
 
-install: all mkinstalldirs install-program install-data
+
+install-desktop-file-note: @PACKAGE_TARNAME@.desktop install-files
+       @echo
+       @echo "If you've installed system wide, you may want to run: make install-desktop-file"
+       @echo '(as root) to install a menu entry for @PACKAGE_NAME@'
+
+install-desktop-file: @PACKAGE_TARNAME@.desktop
+       desktop-file-install @PACKAGE_TARNAME@.desktop
+
+install-files: all mkinstalldirs install-program install-data
+
+install: install-files install-desktop-file-note
 
 install-program: program
-       $(INSTALL_PROGRAM) ./vor $(DESTDIR)$(bindir)/
+       $(INSTALL_PROGRAM) ./$(exe_name) $(DESTDIR)$(bindir)/
 
 install-data: data mkinstalldirs
-       $(INSTALL_DATA) ./data/*.png $(DESTDIR)$(pkgdatadir)/
-       $(INSTALL_DATA) ./data/*.wav $(DESTDIR)$(pkgdatadir)/
-       $(INSTALL_DATA) ./data/*.xm $(DESTDIR)$(pkgdatadir)/
+       $(INSTALL_DATA) $(srcdir)/data/*.png $(DESTDIR)$(pkgdatadir)/
+       $(INSTALL_DATA) $(srcdir)/data/*.wav $(DESTDIR)$(pkgdatadir)/
+       $(INSTALL_DATA) $(srcdir)/data/*.xm $(DESTDIR)$(pkgdatadir)/
        @echo
        @echo "$(pkgdatadir)/icon.png (48x48) or ship.png (32x32) make good icons."
        @echo
@@ -130,7 +166,7 @@ install-data: data mkinstalldirs
 uninstall: uninstall-program uninstall-data rminstalldirs
 
 uninstall-program:
-       rm -f $(DESTDIR)$(bindir)/vor
+       rm -f $(DESTDIR)$(bindir)/$(exe_name)
 
 uninstall-data:
        rm -f $(DESTDIR)$(pkgdatadir)/*.png