
# ------------------------------------ Initialization -----------------
CC      = gcc
AR      = ar
RM      = rm -rf
CP      = cp -r
LN      = ln -sf
MKDIR   = mkdir -p
#TERM    = -lcurses
TERM    = -lncurses
#TERM   = -ltermcap   # if you don't have ncurses
ifndef TOP
TOP = ../..
endif
ifndef BASTARD_VERSION
BASTARD_VERSION = 0.16
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 -ldl -lreadline -lbastard $(TERM)
LDFLAGS  = -L. -L$(LIBDIR) \
            -Wl,-rpath . -Wl,-rpath ./lib -Wl,-rpath $(INSTALL_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
	$(CC) $(CFLAGS) $(LDFLAGS) -o $(BINDIR)/$(PROGRAM) $(OBJS) $(LIBS) 
	@rm -f ./lib
	
	
# ----------------------------- Cleanup
clean: 
	@$(RM) $(BINDIR)/$(PROGRAM) $(OBJS) *~ *core
