-# Copyright (C) 1994-2003, Index Data
+# Copyright (C) 1994-2005, Index Data ApS
# All rights reserved.
-# $Id: makefile,v 1.67 2003-12-20 00:51:20 adam Exp $
+# $Id: makefile,v 1.94 2005-04-22 14:51:11 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.19.win32
+
+# zlib compression (used by libxml2)
+ZLIB_DIR = c:\zlib-1.2.2.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
all: dirs generate dll client ztest zoomsh utilprog iconv libxml2
-NSIS="c:\program files\nsis\makensis-bz2.exe"
+NSIS="c:\program files\nsis\makensis.exe"
-nsis: all
+dist:
+ nmake DEBUG=1 clean
+ nmake DEBUG=0 clean
+ nmake DEBUG=0
+ $(NSIS) yaz.nsi
+
+nsis:
$(NSIS) yaz.nsi
nsishelp:
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
+# where we store intermediate files
+!if $(DEBUG)
+OBJDIR=$(WINDIR)\dobj
+!else
+OBJDIR=$(WINDIR)\obj
+!endif
+
CLIENTDIR=$(ROOTDIR)\CLIENT
ZTESTDIR=$(ROOTDIR)\ZTEST
ZOOMDIR=$(ROOTDIR)\ZOOM
############### 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
YAZ_MARCDUMP=$(BINDIR)\yaz-marcdump.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)
!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)\\"
DEBUG_LNK_OPTIONS= /debug
-RELEASE_LNK_OPTIONS= /pdb:none
+RELEASE_LNK_OPTIONS=
DLL_LINK_OPTIONS= /dll
CLIENT_LINK_OPTIONS = /subsystem:console
YAZ_ZUTIL_OBJS= \
$(OBJDIR)\diagbib1.obj \
+ $(OBJDIR)\diagsrw.obj \
+ $(OBJDIR)\diag-entry.obj \
$(OBJDIR)\zget.obj \
$(OBJDIR)\logrpn.obj \
$(OBJDIR)\pquery.obj \
$(OBJDIR)\srw.obj \
$(OBJDIR)\srwutil.obj \
$(OBJDIR)\zoom-c.obj \
- $(OBJDIR)\zoom-opt.obj
+ $(OBJDIR)\zoom-opt.obj \
+ $(OBJDIR)\initopt.obj
Z3950_OBJS= \
$(OBJDIR)\z-date.obj\
$(TCL) $(TCLOPT) -d ill.tcl item-req.asn
@cd $(WINDIR)
-$(SRCDIR)\marc8.c: $(SRCDIR)\charconv.sgm
+$(SRCDIR)\marc8.c: $(SRCDIR)\codetables.xml $(SRCDIR)\charconv.tcl
+ @cd $(SRCDIR)
+ $(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) charconv.tcl -p marc8 -s 50 charconv.sgm -o marc8.c
+ $(TCL) csvtosrw.tcl
!endif
$(DLL_OBJS)
$(YAZ_RES)
/out:$(DLL)
- /implib:"$(LIBDIR)\yaz.lib"
- /pdb:"$(LIBDIR)\yaz.pdb"
+ /implib:"$(IMPLIB)"
/map:"$(LIBDIR)\yaz.map"
<<
$(LINK_LIBS)
$(IMPLIB)
$(YAZ_CLIENT_OBJS)
- /pdb:"$(LIBDIR)\yaz-client.pdb"
/map:"$(LIBDIR)\yaz-client.map"
/out:$(CLIENT)
<<
$(LINK_LIBS)
$(IMPLIB)
$(YAZ_ZOOMSH_OBJS)
- /pdb:"$(LIBDIR)\zoomsh.pdb"
/map:"$(LIBDIR)\zoomsh.map"
/out:$(ZOOMSH)
<<
$(LINK_LIBS)
$(IMPLIB)
$(YAZ_ZOOMTST1_OBJS)
- /pdb:"$(LIBDIR)\zoomtst1.pdb"
/map:"$(LIBDIR)\zoomtst1.map"
/out:$(ZOOMTST1)
<<
$(LINK_LIBS)
$(IMPLIB)
$(YAZ_ZOOMTST2_OBJS)
- /pdb:"$(LIBDIR)\zoomtst2.pdb"
/map:"$(LIBDIR)\zoomtst2.map"
/out:$(ZOOMTST2)
<<
$(LINK_LIBS)
$(IMPLIB)
$(YAZ_ZOOMTST3_OBJS)
- /pdb:"$(LIBDIR)\zoomtst3.pdb"
/map:"$(LIBDIR)\zoomtst3.map"
/out:$(ZOOMTST3)
<<
$(LINK_LIBS)
$(IMPLIB)
$(YAZ_ZOOMTST4_OBJS)
- /pdb:"$(LIBDIR)\zoomtst4.pdb"
/map:"$(LIBDIR)\zoomtst4.map"
/out:$(ZOOMTST4)
<<
$(LINK_LIBS)
$(IMPLIB)
$(YAZ_ZOOMTST5_OBJS)
- /pdb:"$(LIBDIR)\zoomtst5.pdb"
/map:"$(LIBDIR)\zoomtst5.map"
/out:$(ZOOMTST5)
<<
$(LINK_LIBS)
$(IMPLIB)
$(YAZ_ZOOMTST6_OBJS)
- /pdb:"$(LIBDIR)\zoomtst6.pdb"
/map:"$(LIBDIR)\zoomtst6.map"
/out:$(ZOOMTST6)
<<
$(LINK_LIBS)
$(IMPLIB)
$(YAZ_ZOOMTST7_OBJS)
- /pdb:"$(LIBDIR)\zoomtst7.pdb"
/map:"$(LIBDIR)\zoomtst7.map"
/out:$(ZOOMTST7)
<<
$(LINK_LIBS)
$(IMPLIB)
$(YAZ_ZOOMTST8_OBJS)
- /pdb:"$(LIBDIR)\zoomtst8.pdb"
/map:"$(LIBDIR)\zoomtst8.map"
/out:$(ZOOMTST8)
<<
$(LINK_LIBS)
$(IMPLIB)
$(YAZ_CQL2PQF_OBJS)
- /pdb:"$(LIBDIR)\cql2pqf.pdb"
/map:"$(LIBDIR)\cql2pqf.map"
/out:$(CQL2PQF)
<<
$(LINK_LIBS)
$(IMPLIB)
$(YAZ_CQL2XCQL_OBJS)
- /pdb:"$(LIBDIR)\cql2xcql.pdb"
/map:"$(LIBDIR)\cql2xcql.map"
/out:$(CQL2XCQL)
<<
$(IMPLIB)
$(ZTEST_OBJS)
/implib:"$(LIBDIR)\yaz-ztest.lib"
- /pdb:"$(LIBDIR)\yaz-ztest.pdb"
/map:"$(LIBDIR)\yaz-ztest.map"
/out:$(ZTEST)
<<
shell32.lib
$(IMPLIB)
$(YAZ_MARCDUMP_OBJS)
- /pdb:"$(LIBDIR)\yaz-marcdump.pdb"
/map:"$(LIBDIR)\yaz-marcdump.map"
/out:$(YAZ_MARCDUMP)
<<
clean:
-del $(BINDIR)\*.exe
-del $(BINDIR)\*.dll
+ -del $(BINDIR)\*.pdb
-del $(TMPDIR)\*.
-del $(LIBDIR)\*.MAP
-del $(LIBDIR)\*.LIB