
# -----------------------------------------------------------
#  Copyright (c) Youssef Hmamouche - All Rights Reserved.
# 
#  This software is subject to the General Public License.
#  ----------------------------------------------------------
#
#
CC:=gcc
CP:=-cp
FLAGS:=-O2 -g -Wall -D_GNU_SOURCE
CORELIBS:=-lncurses -lmenu -lform $(EXTRA_LIB)
EXTRA_LIB:= `pkg-config --libs glib`
EXTRA_INC:= `pkg-config --cflags glib`
RM:=-rm
RMFLAGS:=-f
OBJECTFILES:=$(wildcard *.o)
STRIP:=strip
TAR:=tar
TARFLAGS:=-cvf
ECHO:=echo
ECHOFLAGS:=-e
RESET:=tset -Q -r
LKCPBIN:=lkcp
LKCPDIR:=/usr/local/bin

lkcp: lkcp_main.o proc_sys.o entry_lookup.o paged_sys.o help_map.o dbg.o acknowledge.o search_proc.o commit_script.o scr_err_hndl.o
	@$(ECHO) [+] Compiling \& linking lkcp...
	@$(CC) $(FLAGS) $(CORELIBS) $(EXTRA_LIB) -o lkcp lkcp_main.o proc_sys.o entry_lookup.o paged_sys.o help_map.o dbg.o acknowledge.o \
search_proc.o commit_script.o scr_err_hndl.o
	@$(ECHO) $(ECHOFLAGS) "\n"
	@$(ECHO) $(ECHOFLAGS) [+] Resetting your terminal...
	@$(RESET)
	@$(ECHO) $(ECHOFLAGS) [+] type make install to install LKCP on your system.
	@$(ECHO) $(ECHOFLAGS) "\n"

lkcp_main.o: lkcp_main.c lkcp.h acknowledge.h
	@$(ECHO) [+] Compiling lkcp_main.c...
	@$(CC) $(FLAGS) -c lkcp_main.c $(EXTRA_INC)

proc_sys.o: proc_sys.c lkcp.h
	@$(ECHO) [+] Compiling proc_sys.c...
	@$(CC) $(FLAGS) -c proc_sys.c

entry_lookup.o: entry_lookup.c entries.h
	@$(ECHO) [+] Compiling entry_lookup.c...
	@$(CC) $(FLAGS) -c entry_lookup.c $(EXTRA_INC)

paged_sys.o: paged_sys.c paged.h
	@$(ECHO) [+] Compiling paged_sys.c...
	@$(CC) $(FLAGS) -c paged_sys.c

help_map.o: help_map.c help.h
	@$(ECHO) [+] Compiling help_map.c...
	@$(CC) $(FLAGS) -c help_map.c

dbg.o: dbg.c dbg.h
	@$(ECHO) [+] Compiling dbg.c...
	@$(CC) $(FLAGS) -c dbg.c

acknowledge.o: acknowledge.c acknowledge.h
	@$(ECHO) [+] Compiling acknowledge.c...
	@$(CC) $(FLAGS) -c acknowledge.c

search_proc.o: search_proc.c search.h
	@$(ECHO) [+] Compiling search_proc.c...
	@$(CC) $(FLAGS) -c search_proc.c

commit_script.o: commit_script.c commit_script.h
	@$(ECHO) [+] Compiling commit_script.c...
	@$(CC) $(FLAGS) -c commit_script.c $(EXTRA_INC)

scr_err_hndl.o: scr_err_hndl.c scr_err_hndl.h
	@$(ECHO) [+] Compiling scr_err_hndl.c...
	@$(CC) $(FLAGS) -c scr_err_hndl.c

install:
	@$(ECHO) [+] Installing lkcp...
	@$(STRIP) lkcp
	@$(CP) lkcp $(LKCPDIR)
#	@$(ECHO) $(LKCPBIN) installed successfully to $(LKCPDIR)/$(LKCPBIN)

uninstall:
	@$(ECHO) [+] Uninstalling lkcp...
	@$(RM) $(RMFLAGS) $(LKCPDIR)/$(LKCPBIN)
	@$(ECHO) [+] Uninstall successfull.

clean:
	@$(ECHO) [+] Removing objects and binaries...
	@$(RM) $(RMFLAGS) $(OBJECTFILES) $(LKCPBIN)

debug-clean:
	@$(ECHO) [+] Removing splint* log files...
	@$(RM) $(RMFLAGS) ../debug/splint*
	@$(ECHO) [+] Removing valgrin* log files...
	@$(RM) $(RMFLAGS) ../debug/valgrin*
