# This file is part of Pazpar2.
-# Copyright (C) 2006-2008 Index Data
+# Copyright (C) 2006-2011 Index Data
DEBUG=0 # 0 for release, 1 for debug
-USE_MANIFEST = 0 # Can be enabled Visual Studio 2005
+USE_MANIFEST = 1 # Can be enabled Visual Studio 2005/2008
PACKAGE_NAME=pazpar2
-PACKAGE_VERSION=1.0.7
+PACKAGE_VERSION=1.5.5
# YAZ
YAZ_DIR=..\..\yaz
# Libxml2 + libxslt + associates
ZLIB_DIR=\zlib-1.2.3.win32
ICONV_DIR=\iconv-1.9.2.win32
-LIBXML2_DIR=\libxml2-2.6.28.win32
-LIBXSLT_DIR=\libxslt-1.1.19.win32
+LIBXML2_DIR=\libxml2-2.7.6.win32
+LIBXSLT_DIR=\libxslt-1.1.26.win32
+
+# ICU
+HAVE_ICU=1
+ICU_DIR=c:\icu
default: all
all: dirs yaz libxslt pazpar2
-NSIS="c:\program files\nsis\makensis-bz2.exe"
+NSIS="c:\program files\nsis\makensis.exe"
+
+dist: pazpar2.nsi
+ nmake DEBUG=1 clean
+ nmake DEBUG=0 clean
+ nmake DEBUG=0
+ $(NSIS) pazpar2.nsi
nsis: all
- $(NSIS) yazpp.nsi
+ $(NSIS) pazpar2.nsi
nsishelp:
$(NSIS)
SRCDIR=$(ROOTDIR)\src # for the case we move them under src
!if $(DEBUG)
-OBJDIR=$(WINDIR)\dobj # debug objects
-YAZD=yaz3d
+OBJDIR=$(WINDIR)\dobj
!else
-OBJDIR=$(WINDIR)\obj # non-debug objects
-YAZD=yaz3
+OBJDIR=$(WINDIR)\obj
!endif
TMPDIR=$(ROOTDIR)\win\tmp
TMP=$(TMPDIR)
-# Targets - what to make
-
PAZPAR2_EXE=$(BINDIR)\pazpar2.exe
pazpar2: $(PAZPAR2_EXE)
-# YAZ includes & libs
-YAZ_LIB="$(YAZ_DIR)\lib\$(YAZD).lib"
-YAZ_DEF=/DYAZ_HAVE_XML2=2 /DYAZ_HAVE_XSLT=1 /I"$(YAZ_DIR)\include"
-yaz: $(BINDIR)\$(YAZD).dll
+YAZBINDIR=$(YAZ_DIR)\bin
+!if $(DEBUG)
+YAZ_LIB="$(YAZ_DIR)\lib\yaz4d.lib" "$(YAZ_DIR)\lib\yaz_cond4d.lib"
+!if $(HAVE_ICU)
+YAZ_LIB=$(YAZ_LIB) "$(YAZ_DIR)\lib\yaz_icu4d.lib"
+!endif
+YAZ_DLL_SOURCE="$(YAZBINDIR)\yaz4d.dll"
+YAZ_DLL_TARGET="$(BINDIR)\yaz4d.dll"
+!else
+YAZ_LIB="$(YAZ_DIR)\lib\yaz4.lib" "$(YAZ_DIR)\lib\yaz_cond4.lib"
+!if $(HAVE_ICU)
+YAZ_LIB=$(YAZ_LIB) "$(YAZ_DIR)\lib\yaz_icu4.lib"
+!endif
+YAZ_DLL_SOURCE="$(YAZBINDIR)\yaz4.dll"
+YAZ_DLL_TARGET="$(BINDIR)\yaz4.dll"
+!endif
-$(BINDIR)\$(YAZD).dll: "$(YAZ_DIR)\bin\$(YAZD).dll"
- copy "$(YAZ_DIR)\bin\$(YAZD).dll" $(BINDIR)
+YAZ_DEF=/DYAZ_HAVE_XML2=2 /DYAZ_HAVE_XSLT=1 /I"$(YAZ_DIR)\include"
# Copy libxslt and associates to our bin directory
libxslt: $(BINDIR)\libxslt.dll
"$(LIBXML2_DIR)\lib\libxml2.lib" \
"$(LIBXSLT_DIR)\lib\libxslt.lib"
+!if $(HAVE_ICU)
+ICU_DEF=/DYAZ_HAVE_ICU=1 /I"$(ICU_DIR)\include"
+ICU_LIB= $(ICU_DIR)\lib\icudt.lib \
+ $(ICU_DIR)\lib\icuin.lib \
+ $(ICU_DIR)\lib\icuuc.lib
+!else
+ICU_DEF=/DYAZ_HAVE_ICU=0
+ICU_LIB=
+!endif
+
COMMON_C_OPTIONS= \
/nologo /W3 /EHsc /FD /c \
/D "_CRT_SECURE_NO_DEPRECATE" \
/D "PACKAGE_NAME=\"$(PACKAGE_NAME)\"" \
/D "VERSION=\"$(PACKAGE_VERSION)\"" \
$(YAZ_DEF) \
+ $(ICU_DEF) \
$(LIBXSLT_DEF) \
/D "_WINDOWS" \
/D "WIN32" \
### Linker options
LINK=link.exe
-LINK_LIBS= kernel32.lib user32.lib gdi32.lib advapi32.lib uuid.lib \
- wsock32.lib advapi32.lib \
- $(YAZ_LIB) $(LIBXSLT_LIB)
+LINK_LIBS= kernel32.lib ws2_32.lib advapi32.lib \
+ $(YAZ_LIB) $(ICU_LIB) $(LIBXSLT_LIB)
COMMON_LNK_OPTIONS= /nologo /subsystem:windows /machine:i386 /incremental:no
"$(OBJDIR)\http.obj" \
"$(OBJDIR)\eventl.obj" \
"$(OBJDIR)\http_command.obj" \
- "$(OBJDIR)\icu_I18N.obj" \
- "$(OBJDIR)\logic.obj" \
+ "$(OBJDIR)\session.obj" \
"$(OBJDIR)\record.obj" \
"$(OBJDIR)\reclists.obj" \
"$(OBJDIR)\relevance.obj" \
"$(OBJDIR)\termlists.obj" \
"$(OBJDIR)\normalize7bit.obj" \
- "$(OBJDIR)\util.obj" \
"$(OBJDIR)\zeerex.obj" \
"$(OBJDIR)\database.obj" \
"$(OBJDIR)\settings.obj" \
"$(OBJDIR)\getaddrinfo.obj" \
"$(OBJDIR)\charsets.obj" \
"$(OBJDIR)\client.obj" \
- "$(OBJDIR)\dirent.obj" \
+ "$(OBJDIR)\jenkins_hash.obj" \
+ "$(OBJDIR)\marcmap.obj" \
+ "$(OBJDIR)\marchash.obj" \
+ "$(OBJDIR)\normalize_record.obj" \
+ "$(OBJDIR)\normalize_cache.obj" \
+ "$(OBJDIR)\ppmutex.obj" \
+ "$(OBJDIR)\incref.obj" \
+ "$(OBJDIR)\sel_thread.obj" \
"$(OBJDIR)\connection.obj"
{$(SRCDIR)}.c{$(OBJDIR)}.obj:
$(CPP) $(COPT) $<
-### The RC compiler (resource files)
-RSC=rc.exe
-COMMON_RC_OPTIONS= /l 0x406 /i"$(ROOTDIR)"
-DEBUG_RC_OPTIONS=/d "_DEBUG"
-RELEASE_RC_OPTIONS=/d "NDEBUG"
-
-!if $(DEBUG)
-RSOPT=/d_DEBUG
-!else
-RSOPT=/d_NDEBUG
-!endif
!if $(USE_MANIFEST)
MT=mt.exe /nologo
$(OBJDIR) $(WINDIR) $(BINDIR) $(TMPDIR):
if not exist "$@/$(NUL)" mkdir "$@"
+yaz: $(YAZ_DLL_TARGET)
+
+$(YAZ_DLL_TARGET) : $(YAZ_DLL_SOURCE)
+# copy "$(YAZBINDIR)\*.dll.manifest" $(BINDIR)
+ copy "$(YAZBINDIR)\*.dll" $(BINDIR)
+