# makefile for decNumber library for Lua
#
# Created September 3, 2006 by e
# This version of the Makefile has been used on WinXP with MinGW/MSYS
# Subversion is used for version control 
#   and generation of version info for headers and file names
# Be sure to "make install" before "make testall"

# change these to reflect your Lua installation
LUA= /usr/local
LUAINC= $(LUA)/include
LUALIB= $(LUA)/lib
LUABIN= $(LUA)/bin
LUALUA= $(LUA)/lua

TMP=./tmp
DISTDIR=./archive

# no need to change anything below here - HAH!
CFLAGS= $(INCS) $(DEFS) $(WARN) -O2 $(SHFLAGS)
#SHFLAGS= -fPIC
SHFLAGS=
WARN= -Wall #-ansi -pedantic -Wall
INCS= -I$(LUAINC) -IdecNumber
#LIBS= -L$(LUALIB) -llualib5 -llua5
LIBS= -L$(LUALIB) -llua51

MYNAME= decNumber
MYLIB= l$(MYNAME)
VER=$(shell svnversion -c . | sed 's/.*://')
TARFILE = $(DISTDIR)/$(MYLIB)-$(VER).tar.gz

OBJS= $(MYLIB).o decNumber/decNumber.o decNumber/decContext.o
#T= $(MYLIB).so
T= $(MYLIB).dll

TESTLIBS=test/lperformance.DLL

all: $T

$T:	$(OBJS)
	$(CC) $(SHFLAGS) -o $@ -shared $(OBJS) $(LIBS)

$(MYLIB).o: version.h

version.h: vcheck

vcheck:
	SubWCRev `pwd` version.in version.h

test: $T
	cd test; $(LUABIN)/lua.exe ldecNumberUnitTest.lua
	cd test; $(LUABIN)/lua.exe ldecNumberThreadsTest.lua
	cd test; $(LUABIN)/lua.exe ldecNumberTestDriver.lua

# testall will only work on Windows unless you remove/rewrite performance tests

testall: $T $(TESTLIBS) test
	cd test; $(LUABIN)/lua.exe ldecNumberPerf.lua

test/lperformance.DLL:	test/lperformance.o
	$(CC) $(SHFLAGS) -o $@ -shared test/lperformance.o $(LIBS)

install:
	cp $T $(LUABIN)

clean:
	rm -f $(OBJS) $T core core.* a.out

td:
	touch $(MYLIB)-$(VER).tar.gz

dist: vcheck
	echo 'Exporting...'
	mkdir -p $(TMP)
	mkdir -p $(DISTDIR)
	svn export -r HEAD . $(TMP)/$(MYLIB)-$(VER)
	cp -p version.h $(TMP)/$(MYLIB)-$(VER)
	cp -p doc/decNumber.pdf $(TMP)/$(MYLIB)-$(VER)/doc
	cp -p doc/ldecNumber.pdf $(TMP)/$(MYLIB)-$(VER)/doc
	cp -p doc/ldecNumber.xhtml $(TMP)/$(MYLIB)-$(VER)/doc
	echo 'Compressing...'
	tar -zcf $(TARFILE) -C $(TMP) $(MYLIB)-$(VER)
	rm -fr $(TMP)/$(MYLIB)-$(VER)
	echo 'Done.'

.PHONY: all vcheck test testall clean td dist install
