#
# Makefile
#
#
# There is nothing user configurable here.
# All configuration options are located in Makefile.cfg.
#

include Makefile.cfg
include Makefile.common

SDL_CFLAGS = $(shell sdl-config --cflags)
SDL_LDFLAGS = $(shell sdl-config --libs)

CFLAGS = $(COMMON_CFLAGS) $(SDL_CFLAGS) $(DATA_CFLAGS)
LDFLAGS = $(COMMON_LDFLAGS) $(SDL_LDFLAGS)

all: fred.exe pack

clean:
	rm -f core *.o fred.exe
	rm -f data/*.img
	cd utils ; $(MAKE) clean

distclean:
	$(MAKE) clean
	rm -f fred.dat

install:
	install -d $(DESTDIR)$(bin_location) $(DESTDIR)$(data_location)
	install fred $(DESTDIR)$(bin_location)
	install -m 0644 fred.dat $(DESTDIR)$(data_location)

common.o: common.c common.h strings.h
	$(CC) $(CFLAGS) -c common.c

params.o: params.c params.h common.h strings.h keys.h
	$(CC) $(CFLAGS) -c params.c

strings.o: strings.c strings.h
	$(CC) $(CFLAGS) -c strings.c

readdata.o: readdata.c readdata.h common.h params.h level.h pack.h strings.h
	$(CC) $(CFLAGS) -c readdata.c

graphics.o: graphics.c graphics.h common.h keys.h readdata.h strings.h params.h
	$(CC) $(CFLAGS) -c graphics.c

keys.o: keys.c keys.h keytable.c params.h
	$(CC) $(CFLAGS) -c keys.c

level.o: level.c level.h common.h graphics.h keys.h params.h demo.h readdata.h demosave.h strings.h
	$(CC) $(CFLAGS) -c level.c

boxes.o: boxes.c boxes.h graphics.h keys.h level.h params.h readdata.h demo.h save.h strings.h
	$(CC) $(CFLAGS) -c boxes.c

demo.o: demo.c demo.h readdata.h
	$(CC) $(CFLAGS) -c demo.c

save.o: save.c save.h level.h readdata.h boxes.h params.h keys.h graphics.h common.h strings.h
	$(CC) $(CFLAGS) -c save.c

demosave.o: demosave.c demosave.h common.h strings.h
	$(CC) $(CFLAGS) -c demosave.c

fred.o: fred.c params.h readdata.h graphics.h keys.h level.h boxes.h demo.h save.h demosave.h
	$(CC) $(CFLAGS) -c fred.c

icon.o: icon/icon.res
	windres -o icon.o icon/icon.res

fred.exe: fred.o common.o params.o strings.o readdata.o graphics.o boxes.o keys.o level.o demo.o save.o demosave.o icon.o
	$(LD) $(LDFLAGS) -o fred.exe $+ $(ZLIB_LDFLAGS)
	strip fred.exe

pack:
	cd utils && $(MAKE)
	cd data && ../utils/bmp2img ../img/*.bmp
	utils/makepack data/* fred.dat
