# C compiler to use
CC=gcc

# Set PREFIX to the root of where you want to install gtklife
PREFIX=/usr/local

# Installation points for the gtklife binary, data, and documentation.
BINDIR=$(PREFIX)/games
DATADIR=$(PREFIX)/share/gtklife
DOCDIR=$(PREFIX)/doc/gtklife

# Optimization and debug flags
CFLAGS=-O3 -Wall # -g

########## No user-serviceable parts below ##########

CPPFLAGS=`gtk-config --cflags` -DDATADIR=\"$(DATADIR)\" -DDOCDIR=\"$(DOCDIR)\"
LDFLAGS=`gtk-config --libs`

OBJS=gtklife.o life.o loadsave.o ewmh.o util.o icons.o ul_lookup.o ur_lookup.o ll_lookup.o lr_lookup.o
CL_OBJS=create_lookup.o util.o

# Targets

all: gtklife

install: all
	install -d $(BINDIR)
	install -s gtklife $(BINDIR)
	install -d $(DATADIR)
	install -d $(DATADIR)/graphics
	install -m 0644 graphics/* $(DATADIR)/graphics
	rm -rf $(DATADIR)/patterns
	umask 022; cp -r patterns $(DATADIR)
	install -d $(DOCDIR)
	install -m 0644 doc/* $(DOCDIR)

gtklife: $(OBJS)
	$(CC) -o gtklife $(OBJS) $(LDFLAGS)

create_lookup: $(CL_OBJS)
	$(CC) -o create_lookup $(CL_OBJS)

clean:
	rm -f gtklife create_lookup [ul][lr]_lookup.c *.o

# Generated source files

ul_lookup.c: create_lookup
	./create_lookup ul
ur_lookup.c: create_lookup
	./create_lookup ur
ll_lookup.c: create_lookup
	./create_lookup ll
lr_lookup.c: create_lookup
	./create_lookup lr

# Dependencies

gtklife.o: gtklife.h life.h ewmh.h util.h icons.h
life.o: life.h loadsave.h lookup.h util.h
loadsave.o: loadsave.h life.h util.h
create_lookup.o: create_lookup.h util.h
ewmh.o: ewmh.h util.h
util.o: util.h
