# Makefile for dbftp
CC=gcc
LOCALDIR=$(shell pwd)

# Supported architecture
ARCH=Linux
#ARCH=FreeBSD
#ARCH=Solaris

CCFLAGS= -g -O2 -D$(ARCH) -Wall -I$(LOCALDIR) -I$(LOCALDIR)/dbug -I$(LOCALDIR)/utils -L$(LOCALDIR)/libs
CCFLAGS_STATIC= $(CCFLAGS) --static
INSTALL=install

BIN_DIR=/usr/bin
MAN_DIR=/usr/share/man/man1

VERSION=0.1.17

USE_GETOPTS=1
USE_READLINE=1

# Debug library
#USE_DEBUG=1

LIBS= -ldbftp

ifeq ($(ARCH),Solaris)
LIBS += -lsocket -lnsl
USE_READLINE=
USE_GETOPTS=
endif

ifeq ($(ARCH),Linux)
# Added -lncurses for SuSE thanks to Carsten Blume
LIBS += -lncurses
endif

ifeq ($(ARCH),FreeBSD)
LIBS += -lncurses
USE_GETOPTS=
endif

ifdef USE_DEBUG
LIBS += -ldbug
else
CCFLAGS += -DDBUG_OFF
endif

ifdef USE_GETOPTS
CCFLAGS += -DUSE_GETOPTS
endif

ifdef USE_READLINE
CCFLAGS += -DUSE_READLINE
LIBS += -lreadline
endif

export CC
export CCFLAGS
export USE_DEBUG
export USE_GETOPTS
export USE_READLINE

PROGRAMS = dbtcp

SRCS= dbftp.c
OBJS= dbftp.o

LIB_SRCS= socket.c my_error.c protocol.c utils/my_string.c utils/my_array.c utils/my_bstring.c
LIB_OBJS= socket.o my_error.o protocol.o utils/my_string.o utils/my_array.o utils/my_bstring.o

all:	$(PROGRAMS)

libdbug.a:
	$(MAKE) -C dbug -e libdbug.a

libdbftp.a: $(LIB_OBJS)
	ar cr libs/libdbftp.a $(LIB_OBJS)
        
dbtcp: libdbftp.a $(OBJS)
	$(MAKE) -C dbug -e libdbug.a
	$(CC) $(CCFLAGS) -o dbtcp $(OBJS) $(LIBS)
	strip dbtcp

install: dbtcp
	$(INSTALL) -D -s dbtcp $(INSTDIR)$(BIN_DIR)
	gzip dbtcp.1 -c > dbtcp.1.gz
	$(INSTALL) dbtcp.1.gz $(INSTDIR)$(MAN_DIR)

clean:
	$(MAKE) -C dbug clean
	rm -f libs/lib*
	rm -f utils/*.o
	rm -f core
	rm -f *.o
	rm -f dbtcp
	rm -f sample_dbtcp
	rm -f *~
	rm -f trace.log

real-clean: clean
	$(MAKE) -C DBD-dbftp clean

backup: clean
	cd .. && tar zcvf dbtcp-$(VERSION)s.tar.gz dbtcp/.
	sync

.c.dep: 
	mkdep $*.c > $*.dep

.c.o: 	
	$(CC) $(CCFLAGS) -c -o $*.o $*.c
