# -------------------------------------------------------------------- #
#                          Leaf class library
#           Copyright (c) 1992-4 by T.Kudou. All rights reserved.
#
# makefile for leaf/src
# this makefile is for DOS GNU make
# -------------------------------------------------------------------- #
# $Header: /d/1/proj/egypt/1/leaf/src/RCS/makefile,v 1.13 1994/07/23 18:30:18 kudou Exp $

include dir.mk
include $(TOP)/config.mk
include $(TOP)/common.mk

# install dir
INSTLIBDIR=d:/leaf/lib
INSTINCDIR=d:/leaf/inc

# for MSC or Visual C++
ifeq ($(VC), yes)
RESPONSFILE=<leaf.vc
endif

# for BCC
ifeq ($(BCC), yes)
RESPONSFILE=@leaf.bc
endif

# for Symantec C++
ifeq ($(SC), yes)
RESPONSFILE=@leaf.sc
endif

SRCS =\
	mem.cc \
	misc.cc \
	ndlist.cc \
	nslist.cc \
	xalist.cc \
	xdlist.cc \
	xlist.cc \
	xslist.cc

OBJS =\
	mem.obj \
	misc.obj \
	ndlist.obj \
	nslist.obj \
	xalist.obj \
	xdlist.obj \
	xlist.obj \
	xslist.obj

HDRS = \
	config.h \
	generic.h \
	mdebug.h \
	mem.h \
	misc.h \
	ndlist.h \
	nlistm.h \
	nslist.h \
	typedef.h \
	xalist.h \
	xdlist.h \
	xlist.h \
	xlisti.h \
	xlistm.h \
	xslist.h

all: test

leaf.lib: $(OBJS)
	$(RM) $@
	$(AR) $(RESPONSFILE)

# library test
#TESTFLAG=-DTESTSIZE=100

# generic version test
nslist.exe: leaf.lib listtest.cc mdebug.obj
	$(CCEXE)$@ -DNSLIST $(TESTFLAG) $(CPPFLAG) listtest.cc mdebug.obj leaf.lib

ndlist.exe: leaf.lib listtest.cc mdebug.obj
	$(CCEXE)$@ -DNDLIST $(TESTFLAG) $(CPPFLAG) listtest.cc mdebug.obj leaf.lib

xslist.exe: leaf.lib listtest.cc mdebug.obj
	$(CCEXE)$@ -DXSLIST $(TESTFLAG) $(CPPFLAG) listtest.cc mdebug.obj leaf.lib

xdlist.exe: leaf.lib listtest.cc mdebug.obj
	$(CCEXE)$@ -DXDLIST $(TESTFLAG) $(CPPFLAG) listtest.cc mdebug.obj leaf.lib

xalist.exe: leaf.lib listtest.cc mdebug.obj
	$(CCEXE)$@ -DXALIST $(TESTFLAG) $(CPPFLAG) listtest.cc mdebug.obj leaf.lib

# template version test
nslistt.exe: leaf.lib listtest.cc mdebug.obj
	$(CCEXE)$@ -DNSLIST -DTEMPLATE_TEST $(TESTFLAG) $(CPPFLAG) listtest.cc mdebug.obj leaf.lib

ndlistt.exe: leaf.lib listtest.cc mdebug.obj
	$(CCEXE)$@ -DNDLIST -DTEMPLATE_TEST $(TESTFLAG) $(CPPFLAG) listtest.cc mdebug.obj leaf.lib

xslistt.exe: leaf.lib listtest.cc mdebug.obj
	$(CCEXE)$@ -DXSLIST -DTEMPLATE_TEST $(TESTFLAG) $(CPPFLAG) listtest.cc mdebug.obj leaf.lib

xdlistt.exe: leaf.lib listtest.cc mdebug.obj
	$(CCEXE)$@ -DXDLIST -DTEMPLATE_TEST $(TESTFLAG) $(CPPFLAG) listtest.cc mdebug.obj leaf.lib

xalistt.exe: leaf.lib listtest.cc mdebug.obj
	$(CCEXE)$@ -DXALIST -DTEMPLATE_TEST $(TESTFLAG) $(CPPFLAG) listtest.cc mdebug.obj leaf.lib

ifeq ($(VC), yes)
TESTS=  nslist.exe ndlist.exe xslist.exe xdlist.exe xalist.exe
else
TESTS=  nslist.exe ndlist.exe xslist.exe xdlist.exe xalist.exe \
	nslistt.exe ndlistt.exe xslistt.exe xdlistt.exe xalistt.exe
endif

ifeq ($(VC), yes)
test: $(TESTS)
	xslist >xslist.log
	xdlist >xdlist.log
	xalist >xalist.log
	nslist >nslist.log
	ndlist >ndlist.log
	diff xslist.log xdlist.log
	diff xslist.log xalist.log
	diff xslist.log nslist.log
	diff xslist.log ndlist.log
else
test: $(TESTS)
	xslist >xslist.log
	xdlist >xdlist.log
	xalist >xalist.log
	xslistt >xslistt.log
	xdlistt >xdlistt.log
	xalistt >xalistt.log
	nslist >nslist.log
	ndlist >ndlist.log
	nslistt >nslistt.log
	ndlistt >ndlistt.log
	diff xslist.log xdlist.log
	diff xslist.log xalist.log
	diff xslist.log xslistt.log
	diff xslist.log xdlistt.log
	diff xslist.log xalistt.log
	diff xslist.log nslist.log
	diff xslist.log ndlist.log
	diff xslist.log nslistt.log
	diff xslist.log ndlistt.log
endif

tags:
	etags *.cc *.h

clean:
	$(RM) leaf.lib
	$(RM) *.obj
	$(RM) *.log
	$(RM) *.map
	$(RM) *.lst
	$(RM) $(TESTS)
	$(RM) TAGS

install.dir:
	$(MKDIR) $(INSTLIBDIR)
	$(MKDIR) $(INSTINCDIR)

install: leaf.lib
	$(INSTALL) leaf.lib $(INSTLIBDIR)
	$(INSTALL) $(HDRS) $(INSTINCDIR)

# dependency
misc.obj: typedef.h config.h misc.h
mdebug.obj: typedef.h config.h mdebug.h
ndlist.obj: typedef.h nslist.h ndlist.h nlistm.h
nslist.obj: typedef.h nslist.h ndlist.h nlistm.h
xlist.obj: typedef.h xlist.h
xalist.obj: typedef.h xlist.h xlistm.h xlisti.h xalist.h
xslist.obj: typedef.h xlist.h xlistm.h xlisti.h xslist.h
xdlist.obj: typedef.h xlist.h xlistm.h xlisti.h xdlist.h

# end of makefile
