# Programs List:
#
PROGRAMS = confirmation_dialog configuration_window date_parse	\
           fixindent floating_prompt icon_picker popup_list_box	\
           progress_dialog prompt_dialog sar			\
           thumbs_list tool_bar


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


# Compiler Flags:
#
CFLAGS	= -Wall -g -O2


# C++ flags:
#
CPPFLAGS	= -D__cplusplus -Dc_plusplus


# Include Directories:
#
INC_DIRS	=


# Libraries & Library Directories:
#
LIBS		= -lm `glib-config --libs`
LIB_DIRS	=


# Compilers:
#
CC	= cc
CPP	= c++


# Programs:
#
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


# Source Files List:
#


# Compile Time Information Output:
#
EXPORT_COMPILETIMEINFO_H	= /bin/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:
#
OBJ_C	= $(SRC_C:.c=.o)
OBJ_CPP	= $(SRC_CPP:.cpp=.o)


all: pre_build config						\
     $(PROGRAMS)						\
     post_build

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

post_build:
	@echo "Build done."

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

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

configuration_window:
	@echo "Compiling $(@)"
	@$(CC) $(CFLAGS) `gtk-config --cflags --libs`		\
        configuration_window.c					\
        ../guiutils.o ../cfg.o ../cfg_fio.o ../cfg_win.o	\
        ../cfg_win_op.o						\
        ../pulist.o ../stacklist.o ../style_edit.o		\
        ../keymap_list.o ../menucfg_list.o ../fprompt.o		\
        ../cdialog.o ../progressdialog.o ../fb.o ../csd.o	\
        ../fsd.o ../string.o ../fio.o ../disk.o			\
        -o $(@)

date_parse:
	@echo "Compiling $(@)"
	@$(CC) $(CFLAGS) `glib-config --cflags --libs`		\
        date_parse.c ../libendeavour2-base/edv_date_parse.o ../string.o		\
        -o $(@)

fixindent:
	@echo "Compiling $(@)"
	@$(CC) $(CFLAGS) `glib-config --cflags --libs`		\
        fixindent.c ../string.o					\
        -o $(@)

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

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

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

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

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

sar:
	@echo "Compiling $(@)"
	@$(CC) -c sar.c
	@$(CPP) sar.o ../string.o -o $(@)

sendcmd:
	@echo "Compiling $(@)"
	@$(CC) $(CFLAGS) `glib-config --cflags --libs`		\
        sendcmd.c ../edv_interps.o ../edv_link.o ../edv_path.o	\
        ../edv_utils.o ../edv_directory.o ../cfg.o ../cfg_fio.o	\
        ../prochandle.o ../string.o ../disk.o ../fio.o		\
        -o $(@)

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

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


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


# Maintainance and Misc Rules:
#
clean:
	@echo "Cleaning test programs..."
	@echo "Deleting all intermediate files..."
	@$(RM) $(RMFLAGS) a.out core *.o compiletimeinfo.h	\
        $(PROGRAMS)
	@echo "Clean done."
