
# ------------------------------------ Initialization -----------------
ifndef CC
CC      = gcc
endif
ifndef AR
AR      = ar
endif
ifndef MAKE
MAKE    = make
endif
ifndef RM
RM      = rm -rf
endif
ifndef CP
CP      = cp -r
endif
ifndef LN
LN      = ln -sf
endif
ifndef MKDIR
MKDIR   = mkdir -p
endif
ifndef TERM
#TERM    = -lcurses
TERM    = -lncurses
endif
ifndef LIBDL
LIBDL   = -ldl
endif
#TERM   = -ltermcap   # if you don't have ncurses
ifndef TOP
TOP = ../..
endif
ifndef BASTARD_VERSION
BASTARD_VERSION = 0.17
endif
ifndef PROGRAM
PROGRAM = bastard
endif
ifndef INSTALL_LIB
INSTALL_LIB=/usr/local/lib
endif

BINDIR   = $(TOP)/bin
LIBDIR   = $(TOP)/lib
INCDIR   = $(TOP)/include
SHAREDIR = $(TOP)/share

# ------------------------------------ Stuff in the ./src directory --
DEFINES  = -I$(INCDIR) -I$(INCDIR)/script -I$(INCDIR)/api -I/usr/local/include \
           -DREADLINE_LIBRARY
CFLAGS   = -ggdb -rdynamic $(DEFINES) -DBASTARD_VERSION=$(BASTARD_VERSION)
LIBS     = -lm $(LIBDL) -lreadline -lbastard $(TERM)
LDFLAGS  = -L. -L$(LIBDIR) \
            -Wl,-rpath . -Wl,-rpath $(LIBDIR) -Wl,-rpath $(INSTALL_LIB) \
	    -Wl,-rpath ./lib


SRCS    =       			\
       bastard.c     		\
       cli_cmd.c      		\
       cli_db.c      		\
       parser.c    
OBJS    =       			\
       bastard.o     		\
       cli_cmd.o      		\
       cli_db.o      		\
       parser.o    


# ------------------------------------ Actual Makefile Rulesets ------
all:            $(BINDIR)/$(PROGRAM)


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


# ================================ The Bastard =====================
$(BINDIR)/$(PROGRAM):  $(OBJS)
	@$(LN) $(TOP)/lib ./lib
	@[ -d $(INSTALL_LIB) ]  || $(MKDIR) $(INSTALL_LIB)
	$(CC) $(CFLAGS) $(LDFLAGS) -o $(BINDIR)/$(PROGRAM) $(OBJS) $(LIBS) 
	@rm -f ./lib
	
	
# ----------------------------- Cleanup
clean: 
	@$(RM) $(BINDIR)/$(PROGRAM) $(OBJS) *~ *core
