#
# This file is part of sudognu.
#
# Copyright (C) 2007 Jens Baaran, Germany.
# ******************************************************************************

# edit locations of files according to your preferences
PREFIX=/usr/local
BIN_DIR=$(PREFIX)/bin
MAN_DIR=$(PREFIX)/man/man1
CGI_DIR=$(HOME)/public_html/cgi-bin

# tell the compiler whether to build with pdf support and if yes, where to find
# libharu include files and library.
#
# to build without pdf support use the following
#HARULIB_LDFLAG=
#HARULIB_CFLAG=

# use the following, if you have libharu in standard location
HARULIB_LDFLAG=-lhpdf
HARULIB_CFLAG=-D HARULIB

# use this to specify location of library and include files explicitly
#HARULIB_LDFLAG=-L$(HOME)/lib -lhpdf
#HARULIB_CFLAG=-D HARULIB -I$(HOME)/include

# you probably don't have to worry about anything below this line
# ---------------------------------------------------------------
PROGNAME=sudognu
VERSION=$(shell grep VERSION sudoku.h | grep -o '[0-9.]\+')
ARCH_DIR=./archive

ARCHIVE=$(ARCH_DIR)/$(PROGNAME)-$(VERSION).tar.gz
SOURCES=$(wildcard *.c)
OBJECTS=$(subst .c,.o,$(SOURCES))
HEADERS=$(wildcard *.h)
CGIBINS=$(wildcard *.cgi)
MANPAGE=$(PROGNAME).1
DOCS=$(wildcard *.html) COPYING README INSTALL 

CC=gcc
LDFLAGS=$(HARULIB_LDFLAG) -lm -lz -lpthread
CFLAGS=-g -I. $(HARULIB_CFLAG) -Wall

all: $(PROGNAME)

archive: $(ARCHIVE)

install: $(PROGNAME) install-man
	install $(PROGNAME) $(BIN_DIR)

install-cgi:
	@echo "don't install cgi scripts automatically, check them 1st"
#	install $(CGIBINS) $(CGI_DIR)

install-man:
	install $(MANPAGE) $(MAN_DIR)

uninstall:
	rm $(MAN_DIR)/$(MANPAGE)
	rm $(BIN_DIR)/$(PROGNAME)
	cd $(CGI_DIR); rm -i $(CGIBINS)

dist: $(PROGNAME) $(ARCHIVE) install install-cgi install-man
	cp $(ARCHIVE) $(HOME)/public_html/sudoku
	cp $(PROGNAME).txt $(HOME)/public_html/sudognu

clean:
	rm -f $(OBJECTS)

manpage: $(MANPAGE) $(PROGNAME).txt

%.o: %.c $(HEADERS)
	$(CC) $(CFLAGS) -c $< -o $@

$(PROGNAME): $(OBJECTS)
	$(CC) $(CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@

$(MANPAGE): $(PROGNAME)
	help2man -N -h -h -v -V ./$(PROGNAME) > $@

$(PROGNAME).txt: $(MANPAGE)
	man ./$(MANPAGE) | col -b > $@

$(ARCHIVE): $(SOURCES) $(HEADERS) $(MANPAGE) Makefile $(DOCS) $(PROGNAME).txt
	mkdir $(PROGNAME)-$(VERSION)
	cp $(SOURCES) $(HEADERS) $(CGIBINS) $(MANPAGE) Makefile $(DOCS) $(PROGNAME)-$(VERSION)
	tar czf $@ $(PROGNAME)-$(VERSION)
	rm -rf $(PROGNAME)-$(VERSION)

.PHONY: all archive dist clean manpage install install-cgi install-man

