# Makefile.  Generated from Makefile.in by configure.

CC=gcc
LIBS=-lm   -logg -logg  -lvorbis -lm -ltheora -L/usr/lib -lSDL -lpthread
CPPFLAGS=    -I/usr/include \
		 -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -DCONFIG_DATADIR=\"${DATA_DIR}\"
PACKAGE_TARNAME=raceintospace
VERSION=0.4.5
PROG_NAME=${PACKAGE_TARNAME}
CFLAGS =-g -Wall -std=c99 -g -O2
TAR_NAME=$(PACKAGE_TARNAME)-$(VERSION)
DATA_NAME=$(PACKAGE_TARNAME)-data
DATA_TARNAME=$(DATA_NAME)-$(VERSION)

# rpmbuild uses DESTDIR to stage the compilation output
DESTDIR=
prefix = $(DESTDIR)//usr/local
exec_prefix = ${prefix}
bindir = ${exec_prefix}/bin
datadir = ${prefix}/share
mandir = ${prefix}/share/man
docdir = ${datadir}/doc/${PACKAGE_TARNAME}
DATA_DIR=${datadir}/${PACKAGE_TARNAME}

# HACK - use vpath to search for files in win32 build
vpath %.o
vpath %.c
vpath %.h

vpath %.c ../
vpath %.h ../

ACLOCAL_FLAGS = -I m4

EXTRA_WARNINGS =  -Wextra -Wno-unused-parameter \
	-Wno-char-subscripts -Wno-deprecated-declarations #-Werror

PROGS = $(addsuffix , \
	imgsplit vtest decode getport getvab mtest sdltest vtest2)

EXTRA_SOURCES = AUTHORS README COPYING DEVELOPER TODO ChangeLog \
				raceintospace.6 \
				configure Makefile.in race.h.in mkrpm.in \
				raceintospace.spec.in \
				$(wildcard m4/*.m4) \
				$(shell find os_macosx -name CVS -prune -o -type f -print) \
				os_win32/configure.mingw os_win32/Moon.ico \
				os_win32/installer.nsi.in os_win32/Makefile.os

BARIS_HFILES = av.h Buzz_inc.h data.h endianness.h externs.h gamedata.h \
	int_types.h macros.h mis.h music.h pace.h proto.h records.h soundfx.h \
	soundint.h mmfile.h options.h fs.h utils.h log4c.h logging.h

BARIS_OBJS = $(addsuffix .o, \
	admin aimast aimis aipur ast0 ast1 ast2 ast3 ast4 budget crew endgame \
	endianness futbub future hardef intel intro main mc2 mc mis_c mis_m museum \
	newmis news news_sup news_suq place port prefs prest radar rdplex records \
	replay review rush start vab pace gx gr sdl music gamedata mmfile options fs \
	utils logging log4c log_default \
)

all: $(PROG_NAME)

extra: all $(PROGS)

rpm_all: $(PROG_NAME)

install: $(PROG_NAME)
	mkdir -p ${bindir}
	mkdir -p ${mandir}/man6
	mkdir -p ${docdir}
	mkdir -p $(DATA_DIR)
	install -c -m 755 $(PROG_NAME) ${bindir}
	gzip < $(PROG_NAME).6 > ${mandir}/man6/$(PROG_NAME).6.gz
	install -c -m 644 README ${docdir}/.

# don't change the source of these copies ... they copy
# data from the compilation environment into the build root
rpm_install: install
	cp -pr /usr/local/share/raceintospace/audio $(DATA_DIR)
	cp -pr /usr/local/share/raceintospace/video $(DATA_DIR)
	cp -pr /usr/local/share/raceintospace/gamedata $(DATA_DIR)
	cp -pr /usr/local/share/raceintospace/images $(DATA_DIR)
	find $(DATA_DIR) -type f -print | xargs chmod a-x+r

uninstall:
	rm -f ${bindir}/$(PROG_NAME)
	rm -f ${mandir}/man6/$(PROG_NAME).6*
	rm -rf ${docdir}
	rm -rf $(DATA_DIR)

# cheat, we still use CC but print LD
$(PROG_NAME): $(BARIS_OBJS)
	@echo "$(LD) ...flags... -o $@ ...libs..."
	@$(CC) $(CFLAGS) -o $(PROG_NAME) $(BARIS_OBJS) $(LIBS)

.c.o:
	@echo "$(CC) ...flags... -c $<"
	@$(CC) $(CPPFLAGS) $(CFLAGS) $(EXTRA_WARNINGS) -c $<

vtest2: $(addsuffix .o, vtest2 mmfile utils)
	$(CC) $(CFLAGS) -o $@ $^  -logg -logg  -lvorbis -lm -ltheora -L/usr/lib -lSDL -lpthread

imgsplit: imgsplit.o
	$(CC) $(CFLAGS) -o $@ $^ -lm

vtest: vtest.o
	$(CC) $(CFLAGS) -o $@ $^ -lasound -lm

decode: decode.o
	$(CC) $(CFLAGS) -o $@ $^ -lm

getport: getport.o
	$(CC) $(CFLAGS) -o $@ $^ -lm

getvab: getvab.o
	$(CC) $(CFLAGS) -o $@ $^ -lm

mtest: mtest.o
	$(CC) $(CFLAGS) -o $@ $^ -lm

sdltest: sdltest.o
	$(CC) $(CFLAGS) -o $@ $^ -L/usr/lib -lSDL -lpthread -lvorbisfile -lm

FORCE:

tags: FORCE
	ctags *.[ch]

TAGS: FORCE
	etags *.[ch]

cscope: FORCE
	cscope -b

clean:
	rm -f *.o *~ diffs
	rm -f $(PROG_NAME)
	rm -f $(PROGS)
	rm -f $(TAR_NAME).*

distclean: clean
	rm -f config.log config.cache config.status Makefile
	rm -f mkrpm raceintospace.spec
	rm -f int_types.h race.h
	rm -f configure
	rm -rf autom4te.cache
	rm -f aclocal.m4

configure: configure.in $(wildcard m4/*.m4)
	-aclocal $(ACLOCAL_FLAGS)
	autoconf

race.h.in: configure.in
	autoheader

tar: $(EXTRA_SOURCES)
	rm -f $(TAR_NAME).tar*
	rm -rf .temp
	mkdir -p .temp/$(TAR_NAME)
	cp -l --parents *.[ch] $(EXTRA_SOURCES) .temp/${TAR_NAME}
	tar -zchC .temp --exclude CVS -f $(TAR_NAME).tar.gz $(TAR_NAME)

datatar:
	rm -f $(DATA_TARNAME).tar.gz
	tar -czhvf $(DATA_TARNAME).tar.gz audio video gamedata images

datazip:
	rm -f $(DATA_TARNAME).zip
	zip -r $(DATA_TARNAME).zip audio video gamedata images

# Personal Makefile
-include Makefile.$(LOGNAME)

# Os makefile
-include Makefile.os
