-# Copyright (C) 1994-2005, Index Data
+# Copyright (C) 1994-2006, Index Data ApS
# All rights reserved.
-# $Id: makefile,v 1.88 2005-01-11 12:13:18 adam Exp $
+# $Id: makefile,v 1.107 2006-05-07 17:43:42 adam Exp $
#
# Programmed by
-# HL: Heikki Levanto, Index Data
+# Heikki Levanto & Adam Dickmeiss
###########################################################
############### Parameters
HAVE_ICONV=1
ICONV_DIR = c:\iconv-1.9.1.win32
+# libxslt
+HAVE_LIBXSLT=1
+LIBXSLT_DIR=c:\libxslt-1.1.14.win32
+
# libxml2
HAVE_LIBXML2=1
-LIBXML2_DIR=c:\libxml2-2.6.9.win32
+LIBXML2_DIR=c:\libxml2-2.6.20.win32
# zlib compression (used by libxml2)
-ZLIB_DIR = c:\zlib-1.1.4.win32
+ZLIB_DIR = c:\zlib-1.2.3.win32
# get WIN32 binaries libxml2 & iconv & zlib from here:
-# http://www.zlatkovic.com/projects/libxml/binaries.html
+# 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 libxslt
NSIS="c:\program files\nsis\makensis.exe"
+HHC="c:\program files\html help workshop\hhc.exe"
dist:
nmake DEBUG=1 clean
nmake DEBUG=0 clean
+ nmake DEBUG=1
nmake DEBUG=0
$(NSIS) yaz.nsi
generate: generated_files
+
+
###########################################################
############### Directories
###########################################################
BINDIR=$(ROOTDIR)\bin # We produce exes and dlls there
WINDIR=$(ROOTDIR)\win # all these Win make things
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)
ZTESTDIR=$(ROOTDIR)\ZTEST
ZOOMDIR=$(ROOTDIR)\ZOOM
UTILDIR=$(ROOTDIR)\UTIL
+TESTDIR=$(ROOTDIR)\TEST
TMPDIR=$(ROOTDIR)\win\tmp
TMP=$(TMPDIR)
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: 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 $(BINDIR)\zlib.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)\zlib.dll:
- copy "$(ZLIB_DIR)\lib\zlib.dll" $(BINDIR)
+$(BINDIR)\zlib1.dll:
+ copy "$(ZLIB_DIR)\bin\zlib1.dll" $(BINDIR)
!else
LIBXML2_LIB=
!endif
+!if $(HAVE_LIBXSLT)
+LIBXSLT_LIB="$(LIBXSLT_DIR)\lib\libxslt.lib"
+LIBXSLT_DEF=/D HAVE_XSLT=1 /I"$(LIBXSLT_DIR)\include"
+libxslt: $(BINDIR)\libxslt.dll
+
+$(BINDIR)\libxslt.dll:
+ copy "$(LIBXSLT_DIR)\bin\libxslt.dll" $(BINDIR)
+
+!else
+LIBXSLT_LIB=
+LIBXSLT_DEF=/D HAVE_XSLT=0
+libxslt:
+!endif
+
### C and CPP compiler (the same thing)
# Note: $(CPP) has already been defined in the environment
# (if you set things up right!)
COMMON_C_OPTIONS= \
- /nologo /W3 /GX /FD /c \
+ /nologo /W3 /EHsc /FD /c \
$(ICONV_DEF) \
$(LIBXML2_DEF) \
+ $(LIBXSLT_DEF) \
+ /D "_CRT_SECURE_NO_DEPRECATE" \
/D "_WINDOWS" \
/D "WIN32" \
/FR"$(OBJDIR)\\" \
DEBUG_C_OPTIONS= \
/D "_DEBUG" \
- /MDd /Od /YX /Zi /Gm
+ /MDd /Od /Zi /Gm
RELEASE_C_OPTIONS= \
/D "NDEBUG" \
# /MDd = Runtime library: Multithread DLL (debug)
# /Od = Disable optimising (debug)
# /O2 = Optimize for speed
-# /YX = Automatic use of precomipled headers
# /Gm = Minimal rebuild (some cpp class stuff)
# /Zi = Program database for debuggers
# /ZI = Pgm database with special "edit&continue" stuff - not available in C5
LINK=link.exe
LINK_LIBS= kernel32.lib user32.lib gdi32.lib \
- advapi32.lib uuid.lib \
- wsock32.lib advapi32.lib \
- $(ICONV_LIB) $(LIBXML2_LIB)
+ advapi32.lib uuid.lib wsock32.lib advapi32.lib \
+ $(ICONV_LIB) $(LIBXML2_LIB) $(LIBXSLT_LIB)
COMMON_LNK_OPTIONS= /nologo \
/subsystem:windows \
$(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" \
$(OBJDIR)\xmalloc.obj \
$(OBJDIR)\matchstr.obj \
$(OBJDIR)\siconv.obj \
- $(OBJDIR)\marc8.obj
+ $(OBJDIR)\marc8.obj \
+ $(OBJDIR)\marc8r.obj \
+ $(OBJDIR)\record_conv.obj \
+ $(OBJDIR)\retrieval.obj \
+ $(OBJDIR)\libxml2_error.obj \
+ $(OBJDIR)\test.obj
YAZ_ZUTIL_OBJS= \
$(OBJDIR)\diagbib1.obj \
$(OBJDIR)\diagsrw.obj \
+ $(OBJDIR)\diag-entry.obj \
$(OBJDIR)\zget.obj \
$(OBJDIR)\logrpn.obj \
+ $(OBJDIR)\querytowrbuf.obj \
$(OBJDIR)\pquery.obj \
$(OBJDIR)\yaz-ccl.obj \
$(OBJDIR)\otherinfo.obj \
$(OBJDIR)\srwutil.obj \
$(OBJDIR)\zoom-c.obj \
$(OBJDIR)\zoom-opt.obj \
- $(OBJDIR)\initopt.obj
+ $(OBJDIR)\initopt.obj \
+ $(OBJDIR)\xmlquery.obj \
+ $(OBJDIR)\mime.obj
Z3950_OBJS= \
$(OBJDIR)\z-date.obj\
# yaz client
{$(CLIENTDIR)}.c{$(OBJDIR)}.obj:
- @$(CPP) $(COPT) $< /D"_CONSOLE"
+ $(CPP) $(COPT) $< /D"_CONSOLE"
# Ztest
{$(ZTESTDIR)}.c{$(OBJDIR)}.obj:
- @$(CPP) $(COPT) $< /D"_CONSOLE"
+ $(CPP) $(COPT) $< /D"_CONSOLE"
# Server
{$(SERVERDIR)}.c{$(OBJDIR)}.obj:
{$(UTILDIR)}.c{$(OBJDIR)}.obj:
$(CPP) $(COPT) $<
+{$(TESTDIR)}.c{$(OBJDIR)}.obj:
+ $(CPP) $(COPT) $<
+
############### ASN-generated files
!if $(HAVE_TCL)
@cd $(SRCDIR)
$(TCL) charconv.tcl -p marc8 codetables.xml -o marc8.c
+$(SRCDIR)\marc8r.c: $(SRCDIR)\codetables.xml $(SRCDIR)\charconv.tcl
+ @cd $(SRCDIR)
+ $(TCL) charconv.tcl -r -p marc8r codetables.xml -o marc8r.c
+
+$(SRCDIR)\diagbib1.c: $(SRCDIR)\bib1.csv
+ @cd $(SRCDIR)
+ $(TCL) csvtobib1.tcl
+
+$(SRCDIR)\diagsrw.c: $(SRCDIR)\srw.csv
+ @cd $(SRCDIR)
+ $(TCL) csvtosrw.tcl
+
!endif
!if $(HAVE_BISON)
/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.
###########################################################