PREFIX = /usr


# Include directories
#
INC_DIRS =


# Compiler flags
#
CFLAGS   = -Wall -O2 -g `glib-config --cflags` `endeavour2-config --cflags`
CPPFLAGS = -D__cplusplus -Dc_plusplus


# Libraries
#
LIBS = `glib-config --libs` `endeavour2-config --libs`
LIB_DIRS =


# Compilers
#
CC = cc
CPP = c++


# Programs and their flags
#
MKDIR      = mkdir
MKDIRFLAGS = -p -m 0755

LINK      = ln
LINKFLAGS = -s -f

INSTALL      = install
INSTBINFLAGS = -m 0755 -s
INSTINCFLAGS = -m 0644

# Locations
#
EDV_BIN_DIR = $(PREFIX)/lib/endeavour2/bin


# Compile time information export:
#
EXPORT_COMPILETIMEINFO_H = echo -n -e "\
\#ifndef COMPILETIMEINFO_H\n\
\#define COMPILETIMEINFO_H\n\
\#define COMPILE_COMPILER\t\"`$(CPP) --version`\"\n\
\#define COMPILE_USER\t\t\"$(USER)\"\n\
\#define COMPILE_LOCATION\t\"`uname -n`\"\n\
\#define COMPILE_DATE\t\t`date +\"%s\"`\n\
\#endif\t/* COMPILETIMEINFO_H */\n"


# Rules:
#
all: config helloworld open params purge recover recycle rls

config:
	$(EXPORT_COMPILETIMEINFO_H) > compiletimeinfo.h

helloworld:
	$(CC) $(CFLAGS) $(INC_DIRS) $(LIBS) $(LIB_DIRS) \
	helloworld.c -o helloworld

open:
	$(CC) $(CFLAGS) $(INC_DIRS) $(LIBS) $(LIB_DIRS) \
	open.c -o open

params:
	$(CC) $(CFLAGS) $(INC_DIRS) $(LIBS) $(LIB_DIRS) \
	params.c -o params

purge:
	$(CC) $(CFLAGS) $(INC_DIRS) $(LIBS) $(LIB_DIRS) \
	purge.c -o purge

recover:
	$(CC) $(CFLAGS) $(INC_DIRS) $(LIBS) $(LIB_DIRS) \
	recover.c -o recover

recycle:
	$(CC) $(CFLAGS) $(INC_DIRS) $(LIBS) $(LIB_DIRS) \
	recycle.c -o recycle

rls:
	$(CC) $(CFLAGS) $(INC_DIRS) $(LIBS) $(LIB_DIRS) \
	rls.c -o rls

HR = "-------------------------------------------------------------------------"

install:
	$(MKDIR) $(MKDIRFLAGS) $(EDV_BIN_DIR)
	-$(INSTALL) $(INSTBINFLAGS) helloworld $(EDV_BIN_DIR)
	-$(INSTALL) $(INSTBINFLAGS) open $(EDV_BIN_DIR)
	-$(INSTALL) $(INSTBINFLAGS) params $(EDV_BIN_DIR)
	-$(INSTALL) $(INSTBINFLAGS) purge $(EDV_BIN_DIR)
	-$(INSTALL) $(INSTBINFLAGS) recover $(EDV_BIN_DIR)
	-$(INSTALL) $(INSTBINFLAGS) recycle $(EDV_BIN_DIR)
	-$(INSTALL) $(INSTBINFLAGS) rls $(EDV_BIN_DIR)
	@echo $(HR)
	@echo "Demo programs installed in:"
	@echo " "
	@echo "        $(EDV_BIN_DIR)"
	@echo " "
	@echo $(HR)
	@echo " "
	@echo "Installation complete!"
	@echo " "

# Maintainance and Misc Rules:
clean:
	rm -f a.out core *.o compiletimeinfo.h \
	helloworld open params purge recover recycle rls
