-# Copyright (C) 1994-2004, Index Data
+# Copyright (C) 1994-2005, Index Data ApS
# All rights reserved.
-# $Id: makefile,v 1.74 2004-03-17 18:47:42 adam Exp $
+# $Id: makefile,v 1.97 2005-11-29 20:40:33 adam Exp $
#
# Programmed by
-# HL: Heikki Levanto, Index Data
-#
+# Heikki Levanto & Adam Dickmeiss
###########################################################
############### Parameters
# iconv charcter conversion utility
HAVE_ICONV=1
-ICONV_DIR = c:\iconv-1.8.win32
+ICONV_DIR = c:\iconv-1.9.1.win32
# libxml2
HAVE_LIBXML2=1
-LIBXML2_DIR=c:\libxml2-2.5.10.win32
+LIBXML2_DIR=c:\libxml2-2.6.20.win32
+
+# zlib compression (used by libxml2)
+ZLIB_DIR = c:\zlib-1.2.3.win32
-# WIN32 binaries libxml2 & iconv from here:
-# http://www.zlatkovic.com/projects/libxml/binaries.html
+# get WIN32 binaries libxml2 & iconv & zlib from here:
+# http://www.zlatkovic.com/libxml.en.html
# bison
HAVE_BISON=1
default: all
-all: dirs generate dll client ztest zoomsh utilprog iconv libxml2
+all: dirs generate dll client ztest zoomsh utilprog testprog iconv libxml2
+
+NSIS="c:\program files\nsis\makensis.exe"
+HHC="c:\program files\html help workshop\hhc.exe"
-NSIS="c:\program files\nsis\makensis-bz2.exe"
+dist:
+ nmake DEBUG=1 clean
+ nmake DEBUG=0 clean
+ nmake DEBUG=0
+ $(NSIS) yaz.nsi
-nsis: all
+nsis:
$(NSIS) yaz.nsi
nsishelp:
generate: generated_files
+
+
###########################################################
############### Directories
###########################################################
LIBDIR=$(ROOTDIR)\lib # We produce .lib, .exp etc there
BINDIR=$(ROOTDIR)\bin # We produce exes and dlls there
WINDIR=$(ROOTDIR)\win # all these Win make things
-OBJDIR=$(WINDIR)\obj # where we store intermediate files
SRCDIR=$(ROOTDIR)\src # for the case we move them under src
+DOCDIR=$(ROOTDIR)\doc # where the doc is
+
+# where we store intermediate files
+!if $(DEBUG)
+OBJDIR=$(WINDIR)\dobj
+!else
+OBJDIR=$(WINDIR)\obj
+!endif
CLIENTDIR=$(ROOTDIR)\CLIENT
ZTESTDIR=$(ROOTDIR)\ZTEST
ZOOMDIR=$(ROOTDIR)\ZOOM
UTILDIR=$(ROOTDIR)\UTIL
+TESTDIR=$(ROOTDIR)\TEST
TMPDIR=$(ROOTDIR)\win\tmp
TMP=$(TMPDIR)
############### Targets - what to make
###########################################################
+!if $(DEBUG)
+DLL=$(BINDIR)\yazd.dll
+IMPLIB=$(LIBDIR)\yazd.lib
+!else
DLL=$(BINDIR)\yaz.dll
IMPLIB=$(LIBDIR)\yaz.lib
+!endif
CLIENT=$(BINDIR)\yaz-client.exe
ZOOMSH=$(BINDIR)\zoomsh.exe
ZOOMTST6=$(BINDIR)\zoomtst6.exe
ZOOMTST7=$(BINDIR)\zoomtst7.exe
ZOOMTST8=$(BINDIR)\zoomtst8.exe
+ZOOMTST9=$(BINDIR)\zoomtst9.exe
CQL2PQF=$(BINDIR)\cql2pqf.exe
CQL2XCQL=$(BINDIR)\cql2xcql.exe
YAZ_MARCDUMP=$(BINDIR)\yaz-marcdump.exe
+TSTLOG=$(BINDIR)\tstlog.exe
+
# shortcut names defined here
-dll : $(DLL)
-client: $(CLIENT)
-ztest: $(ZTEST)
+dll: dirs generate $(DLL)
+client: dirs generate $(CLIENT)
+ztest: dirs generate $(ZTEST)
zoomsh: $(ZOOMSH) $(ZOOMTST1) $(ZOOMTST2) $(ZOOMTST3) \
- $(ZOOMTST4) $(ZOOMTST5) $(ZOOMTST6) $(ZOOMTST7) $(ZOOMTST8)
+ $(ZOOMTST4) $(ZOOMTST5) $(ZOOMTST6) $(ZOOMTST7) $(ZOOMTST8) $(ZOOMTST9)
utilprog: $(CQL2PQF) $(CQL2XCQL) $(YAZ_MARCDUMP)
+testprog: $(TSTLOG)
+
+htmlhelp: $(DOCDIR)\htmlhelp.chm
+
###########################################################
############### Compiler and linker options
###########################################################
iconv: $(BINDIR)\iconv.dll
$(BINDIR)\iconv.dll:
- copy "$(ICONV_DIR)\lib\iconv.dll" $(BINDIR)
+ copy "$(ICONV_DIR)\bin\iconv.dll" $(BINDIR)
!else
ICONV_DEF= \
/D HAVE_ICONV_H=0
!if $(HAVE_LIBXML2)
LIBXML2_LIB="$(LIBXML2_DIR)\lib\libxml2.lib"
LIBXML2_DEF=/D HAVE_XML2=1 /I"$(LIBXML2_DIR)\include"
-libxml2: $(BINDIR)\libxml2.dll
+libxml2: $(BINDIR)\libxml2.dll $(BINDIR)\zlib1.dll
$(BINDIR)\libxml2.dll:
- copy "$(LIBXML2_DIR)\lib\libxml2.dll" $(BINDIR)
+ copy "$(LIBXML2_DIR)\bin\libxml2.dll" $(BINDIR)
+
+$(BINDIR)\zlib1.dll:
+ copy "$(ZLIB_DIR)\bin\zlib1.dll" $(BINDIR)
+
!else
LIBXML2_LIB=
LIBXML2_DEF=/D HAVE_XML2=0
$(LIBXML2_DEF) \
/D "_WINDOWS" \
/D "WIN32" \
- /D "HAVE_WCHAR_H=1" \
/FR"$(OBJDIR)\\" \
/Fo"$(OBJDIR)\\" \
/Fd"$(OBJDIR)\\"
$(OBJDIR)\zoomtst7.obj
YAZ_ZOOMTST8_OBJS = \
$(OBJDIR)\zoomtst8.obj
+YAZ_ZOOMTST9_OBJS = \
+ $(OBJDIR)\zoomtst9.obj
YAZ_CQL2PQF_OBJS = \
$(OBJDIR)\cql2pqf.obj
YAZ_MARCDUMP_OBJS = \
$(OBJDIR)\marcdump.obj
+TSTLOG_OBJS = \
+ $(OBJDIR)\tstlog.obj
+
YAZ_SERVER_OBJS= \
"$(OBJDIR)\eventl.obj" \
"$(OBJDIR)\requestq.obj" \
YAZ_ZUTIL_OBJS= \
$(OBJDIR)\diagbib1.obj \
+ $(OBJDIR)\diagsrw.obj \
+ $(OBJDIR)\diag-entry.obj \
$(OBJDIR)\zget.obj \
$(OBJDIR)\logrpn.obj \
$(OBJDIR)\pquery.obj \
{$(UTILDIR)}.c{$(OBJDIR)}.obj:
$(CPP) $(COPT) $<
+{$(TESTDIR)}.c{$(OBJDIR)}.obj:
+ $(CPP) $(COPT) $<
+
############### ASN-generated files
!if $(HAVE_TCL)
$(TCL) $(TCLOPT) -d ill.tcl item-req.asn
@cd $(WINDIR)
-$(SRCDIR)\marc8.c: $(SRCDIR)\charconv.sgm $(SRCDIR)\codetables.xml $(SRCDIR)\charconv.tcl
+$(SRCDIR)\marc8.c: $(SRCDIR)\codetables.xml $(SRCDIR)\charconv.tcl
@cd $(SRCDIR)
- $(TCL) charconv.tcl -O 1 -p marc8 charconv.sgm codetables.xml -o marc8.c
+ $(TCL) charconv.tcl -p marc8 codetables.xml -o marc8.c
+
+$(SRCDIR)\diagbib1.c: $(SRCDIR)\bib1.csv
+ @cd $(SRCDIR)
+ $(TCL) csvtobib1.tcl
+
+$(SRCDIR)\diagsrw.c: $(SRCDIR)\srw.csv
+ @cd $(SRCDIR)
+ $(TCL) csvtosrw.tcl
!endif
$(DLL_OBJS)
$(YAZ_RES)
/out:$(DLL)
- /implib:"$(LIBDIR)\yaz.lib"
+ /implib:"$(IMPLIB)"
/map:"$(LIBDIR)\yaz.map"
<<
/out:$(ZOOMTST8)
<<
+
+$(ZOOMTST9) : "$(BINDIR)" $(YAZ_ZOOMTST9_OBJS)
+ @echo Linking $(ZOOMTST9)
+ $(LINK) @<<
+ $(LNKOPT)
+ $(CLIENT_LINK_OPTIONS)
+ $(LINK_LIBS)
+ $(IMPLIB)
+ $(YAZ_ZOOMTST9_OBJS)
+ /map:"$(LIBDIR)\zoomtst9.map"
+ /out:$(ZOOMTST9)
+<<
+
$(CQL2PQF) : "$(BINDIR)" $(YAZ_CQL2PQF_OBJS)
@echo Linking $(CQL2PQF)
$(LINK) @<<
<<
+$(TSTLOG) : "$(BINDIR)" $(TSTLOG_OBJS)
+ @echo Linking $(TSTLOG)
+ $(LINK) @<<
+ $(LNKOPT)
+ $(CLIENT_LINK_OPTIONS)
+ $(LINK_LIBS)
+ $(IMPLIB)
+ $(TSTLOG_OBJS)
+ /map:"$(LIBDIR)\tstlog.map"
+ /out:$(TSTLOG)
+<<
+
+$(DOCDIR)\htmlhelp.chm: $(DOCDIR)\htmlhelp.hhp
+ @cd $(DOCDIR)
+ -$(HHC) htmlhelp.hhp
+ @cd $(WINDIR)
+
# note that this links a lib, so it uses completely different options.
###########################################################
clean:
-del $(BINDIR)\*.exe
-del $(BINDIR)\*.dll
+ -del $(BINDIR)\*.pdb
-del $(TMPDIR)\*.
-del $(LIBDIR)\*.MAP
-del $(LIBDIR)\*.LIB