#########################################################
# makefile to build table module, libtb2, table-utilities
#	KEK-Linac	n.kamikubota, june,1992
#			k.furukawa,   apr.1996 rewrite all makefiles
#			k.furukawa,   oct.1996 version 2 libtb2
# usage:
#  gnu make should be used
#  make dec
#  make hp
#  make dec DEBUG="-DDEBUG" COPT="-g"
#  make linux
#  make install
#  make clean
#  make realclean
#  make hp C=/users/furukawa LIBD=/users/furukawa/lib/HP-UX \
#   BIND=/users/furukawa/bin/HP-UX TARGET=test
#  make install C=/users/furukawa LIBD=/users/furukawa/lib/HP-UX \
#   BIND=/users/furukawa/bin/HP-UX
#
# Modifications:
# k.f sep.2.1999.  use ifndef C
# k.f aug.12.2002. add -dtbl_warn to tb2_read_debug.o
#########################################################
# @(#)tbllib2/Makefile v1.2.0 k.f,n.k jun.1992-aug.2002

# define common variables
ifndef C
C = /usr/users/control
endif
include $C/include/makevar.mk

# DEF	= -DTB2INTERNAL -DFXF -DDEBUG  # FXF version did not work
DEF	= -DTB2INTERNAL

# define equipement to make
EQ = tb2

PROGOBJ	= 
CHKOBJ  = tb2chk.o tb2_read_debug.o
KEYOBJ  = tb2key.o tb2_read_warn.o 
LISTOBJ	= tb2list.o
SERVOBJ	= _$(EQ).o
LIBOBJ	= $(EQ)_read.o $(EQ)_int.o $(EQ)_get.o $(EQ)_name.o $(EQ)_node.o \
	_$(EQ)_num.o $(EQ)_err.o $(EQ)_hash.o $(EQ)_misc.o $(EQ)_entry.o \
	$(DHTOBJ) strdup.o
# DHTOBJ	= dht.o dhtvalue.o \
# 	dhtbcmem.o dhtcmem.o dhtmem.o dhtsimple.o dhtstring.o fxf.o
DHTOBJ	= dht.o dhtvalue.o \
	dhtbcmem.o dhtcmem.o dhtmem.o dhtsimple.o dhtstring.o
RLIBOBJ	= _rtb2.o tb2_err.o client.o
TESTOBJ	= testhash.o testname.o testname2.o

PROGS	= $(EQ)chk $(EQ)key $(EQ)list
#SERVS	= r$(EQ)d
LIBS	= $(LIBF) $(RLIBF)
#HDRS	= 
LIB	+= $(LIBF)
RLIBF	= libr$(EQ).a
TESTS	= testhash testname testname2


# define rules for equipement
include $(INCD)/makeruleeq.mk

$(EQ)chk:	$(CHKOBJ) $(LIBF)
	$(CC) $(CFLAGS) -o $@ $(CHKOBJ) $(LIBF)

tb2_read_debug.o:	tb2_read.c $(HDRF)
	$(CC) $(CFLAGS) -DDEBUG1 -DDEBUG2 -DTBL_WARN=1 -c -o $@ tb2_read.c

$(EQ)key:	$(KEYOBJ) $(LIBF)
	$(CC) $(CFLAGS) -o $@ $(KEYOBJ) $(LIBF)

tb2_read_warn.o:	tb2_read.c $(HDRF)
	$(CC) $(CFLAGS) -DTBL_WARN=1 -c -o $@ tb2_read.c

tb2_int_warn.o:	tb2_int.c $(HDRF)
	$(CC) $(CFLAGS) -DTBL_WARN=1 -c -o $@ tb2_int.c

_tb2_num_warn.o:	_tb2_num.c $(HDRF)
	$(CC) $(CFLAGS) -DTBL_WARN=1 -c -o $@ _tb2_num.c

tb2list:	$(LISTOBJ) $(LIBF)
	$(CC) $(CFLAGS) -o $@ $(LISTOBJ) $(LIBF)

$(CHKOBJ) $(KEYOBJ) $(LISTOBJ) $(LIBOBJ) $(RLIBOBJ):	$(HDRF)

_tb2.o:	rtb2.h $(HDRF)

$(RLIBF):	$(RLIBOBJ)
	ar rv $@ $(RLIBOBJ)
	$(RANLIB) $@
	chmod g+w $@

clean::
	$(RM) $(CHKOBJ) $(KEYOBJ) $(LISTOBJ)
	$(RM) $(RLIBOBJ) $(TESTOBJ)

realclean::	clean
	$(RM) $(TESTS)

test:	testhash
	$(MAKE) testname testname2 DEF=-UTB2INTERNAL

testhash:	testhash.o $(LIBF)
	$(CC) $(CFLAGS) -o $@ $@.o $(LIB)

testname:	testname.o $(LIBF)
	$(CC) $(CFLAGS) -o $@ $@.o $(LIB)

testname2:	testname2.o $(LIBF)
	$(CC) $(CFLAGS) -o $@ $@.o $(LIB)


# define rules for multiple platforms
include $(INCD)/makemulti.mk

# end of makefile

