PREFIX = /usr

CFLAGS = -Wall -g -O2

INC_DIRS =

LIBS = -lm `glib-config --libs`
LIB_DIRS =

CC = cc
CPP = c++

CPPFLAGS = -D__cplusplus -Dc_plusplus

OBJ_C   = $(SRC_C:.c=.o)
OBJ_CPP = $(SRC_CPP:.cpp=.o)

LS           = ls
LSFLAGS      = -a -l
COPY         = cp
COPYFLAGS    = -R -f
MOVE         = mv
MOVEFLAGS    = -R -f
MKDIR        = mkdir
MKDIRFLAGS   = -p -m 0755
RM           = rm
RMFLAGS      = -f
INSTALL      = install
INSTBINFLAGS = -m 0755 -s

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


# Compile Time Info
#
EXPORT_COMPILETIMEINFO_H = echo -n -e "\
\#ifndef COMPILETIMEINFO_H\n\
\#define COMPILETIMEINFO_H\n\
\#define COMPILE_COMPILER\t\"`$(CPP) --version | tr '\n' ' '`\"\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"


# Build Rules
#

all: pre_build config \
     recycle sendcmd \
     confirmation_dialog file_browser prompt_dialog progress_dialog \
     animate thumbs_list \
     post_build

pre_build:
	@echo "Building test programs..."

post_build:
	@echo "Build done."

config:
	@echo "Compiling resources"
	@$(EXPORT_COMPILETIMEINFO_H) > compiletimeinfo.h

recycle:
	@echo "Compiling recycle"
	@$(CC) $(CFLAGS) `glib-config --cflags --libs` \
        recycle.c ../edvrecbin.o ../edvrecbinfio.o \
        ../string.o ../strexp.o ../disk.o ../fio.o \
        -o recycle

sendcmd:
	@echo "Compiling sendcmd"
	@$(CC) $(CFLAGS) `glib-config --cflags --libs` \
	sendcmd.c ../edvinterps.o ../edvcfg.o ../edvcfgfio.o \
	../prochandle.o ../string.o ../strexp.o ../disk.o \
	../fio.o \
        -o sendcmd

confirmation_dialog:
	@echo "Compiling confirmation_dialog"
	@$(CC) $(CFLAGS) `gtk-config --cflags --libs` \
        confirmation_dialog.c ../cdialog.o \
        ../guiutils.o ../string.o ../fio.o \
        -o confirmation_dialog

file_browser:
	@echo "Compiling file_browser"
	@$(CC) $(CFLAGS) `gtk-config --cflags --libs` \
        file_browser.c ../fb.o \
        ../cdialog.o ../guiutils.o ../fprompt.o ../pulist.o \
        ../string.o ../fio.o ../disk.o ../strexp.o \
        -o file_browser

prompt_dialog:
	@echo "Compiling prompt_dialog"
	@$(CC) $(CFLAGS) `gtk-config --cflags --libs` \
        prompt_dialog.c ../pdialog.o \
        ../cdialog.o ../guiutils.o ../string.o ../fio.o \
        -o prompt_dialog

progress_dialog:
	@echo "Compiling progress_dialog"
	@$(CC) $(CFLAGS) `gtk-config --cflags --libs` \
        progress_dialog.c ../progressdialog.o \
        ../guiutils.o ../string.o \
        -o progress_dialog

animate:
	@echo "Compiling animate"
	@$(CC) $(CFLAGS) `gtk-config --cflags --libs` \
        animate.c ../animicon.o ../guiutils.o ../string.o \
        -o animate

thumbs_list:
	@echo "Compiling thumbs_list"
	@$(CC) $(CFLAGS) `gtk-config --cflags --libs` \
        `imlib-config --cflags --libs` \
        thumbs_list.c ../tlist.o \
        ../guiutils.o ../guirgbimg.o ../statictip.o \
        ../string.o ../strexp.o ../disk.o ../fio.o \
        -o thumbs_list


# Install
#
install:
	@echo "These programs are not to be installed."


# Clean
#
clean:
	@echo "Cleaning test programs..."
	@echo "Deleting all intermediate files..."
	@$(RM) $(RMFLAGS) a.out core *.o compiletimeinfo.h \
        recycle sendcmd \
        confirmation_dialog file_browser prompt_dialog \
        progress_dialog animate thumbs_list
	@echo "Clean done."
