X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=win%2Fmakefile;h=ba84e9c16ef343aeb1ece836c9c93b8ffe4998da;hp=cda5048bbd3de06851d879d603c0e45a05b089be;hb=eebab252c82eb9cc5977e73ad7dd0ad83bb8dbf6;hpb=07dca8aeae6bc30c59e71b30a9ad83da57c0440d diff --git a/win/makefile b/win/makefile index cda5048..ba84e9c 100644 --- a/win/makefile +++ b/win/makefile @@ -1,6 +1,6 @@ # Copyright (C) 1995-2007, Index Data ApS # All rights reserved. -# $Id: makefile,v 1.128 2007-01-24 11:50:19 adam Exp $ +# $Id: makefile,v 1.142 2008-01-14 22:58:46 adam Exp $ # # Programmed by # Heikki Levanto & Adam Dickmeiss @@ -8,6 +8,7 @@ # Parameters DEBUG=0 # 0 for release, 1 for debug +USE_MANIFEST = 0 # TCL TCL="C:\Tcl\bin\tclsh84.exe" @@ -18,13 +19,18 @@ HAVE_TCL=1 HAVE_ICONV=1 ICONV_DIR = c:\iconv-1.9.2.win32 +# icu charcter conversion utility +# get icu libraries from http://www.icu-project.org +HAVE_ICU=1 +ICU_DIR = c:\icu + # libxslt HAVE_LIBXSLT=1 -LIBXSLT_DIR=c:\libxslt-1.1.17.win32 +LIBXSLT_DIR=c:\libxslt-1.1.19.win32 # libxml2 HAVE_LIBXML2=1 -LIBXML2_DIR=c:\libxml2-2.6.26.win32 +LIBXML2_DIR=c:\libxml2-2.6.28.win32 # zlib compression (used by libxml2) ZLIB_DIR = c:\zlib-1.2.3.win32 @@ -38,7 +44,7 @@ BISON=bison default: all -all: dirs generate dll client ztest zoomsh utilprog testprog iconv libxml2 libxslt +all: dirs generate dll client ztest yazicu zoomsh utilprog testprog iconv icu libxml2 libxslt NSIS="c:\program files\nsis\makensis.exe" HHC="c:\program files\html help workshop\hhc.exe" @@ -88,14 +94,19 @@ TMP=$(TMPDIR) # Targets - what to make !if $(DEBUG) -DLL=$(BINDIR)\yazd.dll -YAZ_IMPLIB=$(LIBDIR)\yazd.lib +YAZ_DLL=$(BINDIR)\yaz3d.dll +YAZ_IMPLIB=$(LIBDIR)\yaz3d.lib +YAZ_ICU_DLL=$(BINDIR)\yaz_icu3d.dll +YAZ_ICU_IMPLIB=$(LIBDIR)\yaz_icu3d.lib !else -DLL=$(BINDIR)\yaz.dll -YAZ_IMPLIB=$(LIBDIR)\yaz.lib +YAZ_DLL=$(BINDIR)\yaz3.dll +YAZ_IMPLIB=$(LIBDIR)\yaz3.lib +YAZ_ICU_DLL=$(BINDIR)\yaz_icu3.dll +YAZ_ICU_IMPLIB=$(LIBDIR)\yaz_icu3.lib !endif CLIENT=$(BINDIR)\yaz-client.exe +YAZ_ICU=$(BINDIR)\yaz-icu.exe ZOOMSH=$(BINDIR)\zoomsh.exe ZTEST=$(BINDIR)\yaz-ztest.exe @@ -118,7 +129,7 @@ TSTLOG=$(BINDIR)\tstlog.exe TST_TIMING=$(BINDIR)\tst_timing.exe # shortcut names defined here -dll: dirs generate $(DLL) +dll: dirs generate $(YAZ_DLL) client: dirs generate $(CLIENT) ztest: dirs generate $(ZTEST) @@ -126,8 +137,7 @@ zoomsh: $(ZOOMSH) $(ZOOMTST1) $(ZOOMTST2) $(ZOOMTST3) \ $(ZOOMTST4) $(ZOOMTST5) $(ZOOMTST6) $(ZOOMTST7) $(ZOOMTST8) $(ZOOMTST9) \ $(ZOOMTST10) -utilprog: $(CQL2PQF) $(CQL2XCQL) $(YAZ_MARCDUMP) - +utilprog: $(CQL2PQF) $(CQL2XCQL) $(YAZ_MARCDUMP) testprog: $(TSTLOG) $(TST_TIMING) htmlhelp: $(DOCDIR)\htmlhelp.chm @@ -152,6 +162,35 @@ iconv: !endif +###TRYING ICU FLAGS HERE WORKS #### +## ADAM ARE THESE FLAGS OK and the DLL sufficient ## +##IT COMPILES AND SEEMS TO WORK + +!if $(HAVE_ICU) +ICU_DEF= \ + /D YAZ_HAVE_ICU=1 /D HAVE_ICU_H=1 \ + /I"$(ICU_DIR)\include" +ICU_LIB= \ + $(ICU_DIR)\lib\icudt.lib $(ICU_DIR)\lib\icuin.lib $(ICU_DIR)\lib\icuuc.lib +icu: $(BINDIR)\icudt38.dll $(BINDIR)\icuin38.dll $(BINDIR)\icuuc38.dll +yazicu: dirs generate $(YAZ_ICU) + +$(BINDIR)\icudt38.dll: + copy "$(ICU_DIR)\bin\icudt38.dll" $(BINDIR) +$(BINDIR)\icuin38.dll: + copy "$(ICU_DIR)\bin\icuin38.dll" $(BINDIR) +$(BINDIR)\icuuc38.dll: + copy "$(ICU_DIR)\bin\icuuc38.dll" $(BINDIR) +!else +ICU_DEF= \ + /D YAZ_HAVE_ICU=0 +ICU_LIB= +icu: +yazicu: +!endif + +### + !if $(HAVE_LIBXML2) LIBXML2_LIB="$(LIBXML2_DIR)\lib\libxml2.lib" LIBXML2_DEF=/D YAZ_HAVE_XML2=1 /I"$(LIBXML2_DIR)\include" @@ -195,6 +234,7 @@ libxslt: COMMON_C_OPTIONS= \ /nologo /W3 /EHsc /FD /c \ $(ICONV_DEF) \ + $(ICU_DEF) \ $(LIBXML2_DEF) \ $(LIBXSLT_DEF) \ /D "_CRT_SECURE_NO_DEPRECATE" \ @@ -235,9 +275,14 @@ RELEASE_C_OPTIONS= \ ### Linker options LINK=link.exe -LINK_LIBS= kernel32.lib user32.lib gdi32.lib \ - advapi32.lib uuid.lib wsock32.lib advapi32.lib \ - $(ICONV_LIB) $(LIBXML2_LIB) $(LIBXSLT_LIB) +!if $(USE_MANIFEST) +MT=mt.exe /nologo +!else +MT=echo +!endif + +LINK_LIBS= kernel32.lib wsock32.lib advapi32.lib \ + $(ICONV_LIB) $(LIBXML2_LIB) $(LIBXSLT_LIB) COMMON_LNK_OPTIONS= /nologo /subsystem:windows /machine:i386 /incremental:no @@ -253,15 +298,11 @@ COMMON_TCL_OPTIONS= ..\util\yaz-asncomp -I$(INCLDIR) -i yaz # Final opt variables !if $(DEBUG) COPT= $(COMMON_C_OPTIONS) $(DEBUG_C_OPTIONS) $(COMMON_C_INCLUDES) -MTLOPT= $(COMMON_MTL_OPTIONS) $(DEBUG_MTL_OPTIONS) -RCOPT= $(COMMON_RC_OPTIONS) $(DEBUG_RC_OPTIONS) LNKOPT= $(COMMON_LNK_OPTIONS) $(DEBUG_LNK_OPTIONS) $(LNK_LIBS) TCLOPT= $(COMMON_TCL_OPTIONS) !else COPT= $(COMMON_C_OPTIONS) $(RELEASE_C_OPTIONS) $(COMMON_C_INCLUDES) -MTLOPT= $(COMMON_MTL_OPTIONS) $(RELEASE_MTL_OPTIONS) -RCOPT= $(COMMON_RC_OPTIONS) $(RELEASE_RC_OPTIONS) LNKOPT= $(COMMON_LNK_OPTIONS) $(RELEASE_LNK_OPTIONS) $(LNK_LIBS) TCLOPT= $(COMMON_TCL_OPTIONS) !endif @@ -284,6 +325,8 @@ YAZ_CLIENT_OBJS= \ $(OBJDIR)\admin.obj \ $(OBJDIR)\fhistory.obj +YAZ_ICU_OBJS= $(OBJDIR)\yaz-icu.obj + ZTEST_OBJS= \ $(OBJDIR)\read-marc.obj \ $(OBJDIR)\read-grs.obj \ @@ -320,6 +363,7 @@ YAZ_CQL2XCQL_OBJS = \ YAZ_MARCDUMP_OBJS = \ $(OBJDIR)\marcdump.obj + TSTLOG_OBJS = \ $(OBJDIR)\tstlog.obj @@ -328,6 +372,7 @@ TST_TIMING_OBJS = \ MISC_OBJS= \ $(OBJDIR)\version.obj \ + $(OBJDIR)\oid_std.obj \ $(OBJDIR)\eventl.obj \ $(OBJDIR)\requestq.obj \ $(OBJDIR)\service.obj \ @@ -341,6 +386,7 @@ MISC_OBJS= \ $(OBJDIR)\cclqual.obj \ $(OBJDIR)\cclstr.obj \ $(OBJDIR)\ccltoken.obj \ + $(OBJDIR)\ccl_stop_words.obj \ $(OBJDIR)\comstack.obj \ $(OBJDIR)\tcpip.obj \ $(OBJDIR)\waislen.obj \ @@ -378,7 +424,8 @@ MISC_OBJS= \ $(OBJDIR)\marc_read_line.obj \ $(OBJDIR)\nmem.obj \ $(OBJDIR)\nmemsdup.obj \ - $(OBJDIR)\oid.obj \ + $(OBJDIR)\oid_db.obj \ + $(OBJDIR)\oid_util.obj \ $(OBJDIR)\options.obj \ $(OBJDIR)\readconf.obj \ $(OBJDIR)\tpath.obj \ @@ -386,6 +433,7 @@ MISC_OBJS= \ $(OBJDIR)\xmalloc.obj \ $(OBJDIR)\matchstr.obj \ $(OBJDIR)\siconv.obj \ + $(OBJDIR)\snprintf.obj \ $(OBJDIR)\marc8.obj \ $(OBJDIR)\marc8r.obj \ $(OBJDIR)\record_conv.obj \ @@ -403,7 +451,6 @@ MISC_OBJS= \ $(OBJDIR)\yaz-ccl.obj \ $(OBJDIR)\otherinfo.obj \ $(OBJDIR)\sortspec.obj \ - $(OBJDIR)\z3950oid.obj \ $(OBJDIR)\charneg.obj \ $(OBJDIR)\grs1disp.obj \ $(OBJDIR)\opacdisp.obj \ @@ -426,7 +473,12 @@ MISC_OBJS= \ $(OBJDIR)\xcqlutil.obj \ $(OBJDIR)\elementset.obj \ $(OBJDIR)\timing.obj \ - $(OBJDIR)\http.obj + $(OBJDIR)\query-charset.obj \ + $(OBJDIR)\tokenizer.obj \ + $(OBJDIR)\copy_types.obj \ + $(OBJDIR)\http.obj \ + $(OBJDIR)\match_glob.obj \ + $(OBJDIR)\poll.obj \ Z3950_OBJS= \ $(OBJDIR)\z-date.obj\ @@ -469,6 +521,9 @@ DLL_OBJS =\ $(MISC_OBJS) \ $(Z3950_OBJS) \ $(ILL_OBJS) \ + +ICU_DLL_OBJS =\ + $(OBJDIR)\icu_I18N.obj # Generated C and H files @@ -609,7 +664,7 @@ generated_files: \ # Various YAZ source directories {$(SRCDIR)}.c{$(OBJDIR)}.obj: - $(CPP) $(COPT) $< + $(CPP) $(COPT) /D"YAZ_DLL" $< {$(ZOOMDIR)}.c{$(OBJDIR)}.obj: $(CPP) $(COPT) $< @@ -682,6 +737,10 @@ $(SRCDIR)\marc8r.c: $(SRCDIR)\codetables.xml $(SRCDIR)\charconv.tcl @cd $(SRCDIR) $(TCL) charconv.tcl -r -p marc8r codetables.xml -o marc8r.c +$(SRCDIR)\oid_std.c: $(SRCDIR)\oid.csv $(SRCDIR)\charconv.tcl + @cd $(SRCDIR) + $(TCL) oidtoc.tcl $(SRCDIR) oid.csv oid_std.c oid_std.h + $(SRCDIR)\diagbib1.c: $(SRCDIR)\bib1.csv @cd $(SRCDIR) $(TCL) csvtobib1.tcl $(SRCDIR) @@ -720,70 +779,102 @@ RSOPT=/d_NDEBUG !endif $(YAZ_RES): $(YAZ_RC) - $(RSC) $(RSOPT) /fo"$(YAZ_RES)" $(YAZ_RC) + $(RSC) $(RSOPT) /I"../include" /fo"$(YAZ_RES)" $(YAZ_RC) # Linking -$(DLL) $(YAZ_IMPLIB): "$(BINDIR)" $(DLL_OBJS) $(YAZ_RES) +$(YAZ_DLL) $(YAZ_IMPLIB): "$(BINDIR)" $(DLL_OBJS) $(YAZ_RES) $(LINK_DLL) \ $(DLL_OBJS) \ $(YAZ_RES) \ - /out:$(DLL) \ + /out:$@ \ /implib:"$(YAZ_IMPLIB)" + $(MT) -manifest $@.manifest -outputresource:$@;2 + +$(YAZ_ICU_DLL) $(YAZ_ICU_IMPLIB): "$(BINDIR)" $(ICU_DLL_OBJS) $(YAZ_RES) + $(LINK_DLL) $(ICU_LIB) $(YAZ_IMPLIB)\ + $(ICU_DLL_OBJS) \ + /out:$@ \ + /implib:"$(YAZ_ICU_IMPLIB)" + $(MT) -manifest $@.manifest -outputresource:$@;2 + +$(CLIENT) : "$(BINDIR)" $(YAZ_CLIENT_OBJS) $(YAZ_DLL) + $(LINK_PROGRAM) $(YAZ_CLIENT_OBJS) /out:$@ + $(MT) -manifest $@.manifest -outputresource:$@;1 + +$(YAZ_ICU) : "$(BINDIR)" $(YAZ_ICU_OBJS) $(YAZ_ICU_DLL) + $(LINK_PROGRAM) $(ICU_LIB) $(YAZ_ICU_IMPLIB) $(YAZ_ICU_OBJS) /out:$@ + $(MT) -manifest $@.manifest -outputresource:$@;1 + -$(CLIENT) : "$(BINDIR)" $(YAZ_CLIENT_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_CLIENT_OBJS) /out:$(CLIENT) +$(ZOOMSH) : "$(BINDIR)" $(YAZ_ZOOMSH_OBJS) $(YAZ_DLL) + $(LINK_PROGRAM) $(YAZ_ZOOMSH_OBJS) /out:$@ + $(MT) -manifest $@.manifest -outputresource:$@;1 -$(ZOOMSH) : "$(BINDIR)" $(YAZ_ZOOMSH_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_ZOOMSH_OBJS) /out:$(ZOOMSH) +$(ZOOMTST1) : "$(BINDIR)" $(YAZ_ZOOMTST1_OBJS) $(YAZ_DLL) + $(LINK_PROGRAM) $(YAZ_ZOOMTST1_OBJS) /out:$@ + $(MT) -manifest $@.manifest -outputresource:$@;1 -$(ZOOMTST1) : "$(BINDIR)" $(YAZ_ZOOMTST1_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_ZOOMTST1_OBJS) /out:$(ZOOMTST1) +$(ZOOMTST2) : "$(BINDIR)" $(YAZ_ZOOMTST2_OBJS) $(YAZ_DLL) + $(LINK_PROGRAM) $(YAZ_ZOOMTST2_OBJS) /out:$@ + $(MT) -manifest $@.manifest -outputresource:$@;1 -$(ZOOMTST2) : "$(BINDIR)" $(YAZ_ZOOMTST2_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_ZOOMTST2_OBJS) /out:$(ZOOMTST2) +$(ZOOMTST3) : "$(BINDIR)" $(YAZ_ZOOMTST3_OBJS) $(YAZ_DLL) + $(LINK_PROGRAM) $(YAZ_ZOOMTST3_OBJS) /out:$@ + $(MT) -manifest $@.manifest -outputresource:$@;1 -$(ZOOMTST3) : "$(BINDIR)" $(YAZ_ZOOMTST3_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_ZOOMTST3_OBJS) /out:$(ZOOMTST3) +$(ZOOMTST4) : "$(BINDIR)" $(YAZ_ZOOMTST4_OBJS) $(YAZ_DLL) + $(LINK_PROGRAM) $(YAZ_ZOOMTST4_OBJS) /out:$@ + $(MT) -manifest $@.manifest -outputresource:$@;1 -$(ZOOMTST4) : "$(BINDIR)" $(YAZ_ZOOMTST4_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_ZOOMTST4_OBJS) /out:$(ZOOMTST4) +$(ZOOMTST5) : "$(BINDIR)" $(YAZ_ZOOMTST5_OBJS) $(YAZ_DLL) + $(LINK_PROGRAM) $(YAZ_ZOOMTST5_OBJS) /out:$@ + $(MT) -manifest $@.manifest -outputresource:$@;1 -$(ZOOMTST5) : "$(BINDIR)" $(YAZ_ZOOMTST5_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_ZOOMTST5_OBJS) /out:$(ZOOMTST5) +$(ZOOMTST6) : "$(BINDIR)" $(YAZ_ZOOMTST6_OBJS) $(YAZ_DLL) + $(LINK_PROGRAM) $(YAZ_ZOOMTST6_OBJS) /out:$@ + $(MT) -manifest $@.manifest -outputresource:$@;1 -$(ZOOMTST6) : "$(BINDIR)" $(YAZ_ZOOMTST6_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_ZOOMTST6_OBJS) /out:$(ZOOMTST6) +$(ZOOMTST7) : "$(BINDIR)" $(YAZ_ZOOMTST7_OBJS) $(YAZ_DLL) + $(LINK_PROGRAM) $(YAZ_ZOOMTST7_OBJS) /out:$@ + $(MT) -manifest $@.manifest -outputresource:$@;1 -$(ZOOMTST7) : "$(BINDIR)" $(YAZ_ZOOMTST7_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_ZOOMTST7_OBJS) /out:$(ZOOMTST7) +$(ZOOMTST8) : "$(BINDIR)" $(YAZ_ZOOMTST8_OBJS) $(YAZ_DLL) + $(LINK_PROGRAM) $(YAZ_ZOOMTST8_OBJS) /out:$@ + $(MT) -manifest $@.manifest -outputresource:$@;1 -$(ZOOMTST8) : "$(BINDIR)" $(YAZ_ZOOMTST8_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_ZOOMTST8_OBJS) /out:$(ZOOMTST8) +$(ZOOMTST9) : "$(BINDIR)" $(YAZ_ZOOMTST9_OBJS) $(YAZ_DLL) + $(LINK_PROGRAM) $(YAZ_ZOOMTST9_OBJS) /out:$@ + $(MT) -manifest $@.manifest -outputresource:$@;1 -$(ZOOMTST9) : "$(BINDIR)" $(YAZ_ZOOMTST9_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_ZOOMTST9_OBJS) /out:$(ZOOMTST9) +$(ZOOMTST10) : "$(BINDIR)" $(YAZ_ZOOMTST10_OBJS) $(YAZ_DLL) + $(LINK_PROGRAM) $(YAZ_ZOOMTST10_OBJS) /out:$@ + $(MT) -manifest $@.manifest -outputresource:$@;1 -$(ZOOMTST10) : "$(BINDIR)" $(YAZ_ZOOMTST10_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_ZOOMTST10_OBJS) /out:$(ZOOMTST10) +$(CQL2PQF) : "$(BINDIR)" $(YAZ_CQL2PQF_OBJS) $(YAZ_DLL) + $(LINK_PROGRAM) $(YAZ_CQL2PQF_OBJS) /out:$@ + $(MT) -manifest $@.manifest -outputresource:$@;1 -$(CQL2PQF) : "$(BINDIR)" $(YAZ_CQL2PQF_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_CQL2PQF_OBJS) /out:$(CQL2PQF) +$(CQL2XCQL) : "$(BINDIR)" $(YAZ_CQL2XCQL_OBJS) $(YAZ_DLL) + $(LINK_PROGRAM) $(YAZ_CQL2XCQL_OBJS) /out:$@ + $(MT) -manifest $@.manifest -outputresource:$@;1 -$(CQL2XCQL) : "$(BINDIR)" $(YAZ_CQL2XCQL_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_CQL2XCQL_OBJS) /out:$(CQL2XCQL) +$(ZTEST) : "$(BINDIR)" $(ZTEST_OBJS) $(YAZ_DLL) + $(LINK_PROGRAM) $(ZTEST_OBJS) /out:$@ + $(MT) -manifest $@.manifest -outputresource:$@;1 -$(ZTEST) : "$(BINDIR)" $(ZTEST_OBJS) $(DLL) - $(LINK_PROGRAM) $(ZTEST_OBJS) /out:$(ZTEST) +$(YAZ_MARCDUMP) : "$(BINDIR)" $(YAZ_MARCDUMP_OBJS) $(YAZ_DLL) + $(LINK_PROGRAM) $(YAZ_MARCDUMP_OBJS) /out:$@ + $(MT) -manifest $@.manifest -outputresource:$@;1 -$(YAZ_MARCDUMP) : "$(BINDIR)" $(YAZ_MARCDUMP_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_MARCDUMP_OBJS) /out:$(YAZ_MARCDUMP) -$(TSTLOG) : "$(BINDIR)" $(TSTLOG_OBJS) $(DLL) - $(LINK_PROGRAM) $(TSTLOG_OBJS) /out:$(TSTLOG) +$(TSTLOG) : "$(BINDIR)" $(TSTLOG_OBJS) $(YAZ_DLL) + $(LINK_PROGRAM) $(TSTLOG_OBJS) /out:$@ + $(MT) -manifest $@.manifest -outputresource:$@;1 -$(TST_TIMING) : "$(BINDIR)" $(TST_TIMING_OBJS) $(DLL) - $(LINK_PROGRAM) $(TST_TIMING_OBJS) /out:$(TST_TIMING) +$(TST_TIMING) : "$(BINDIR)" $(TST_TIMING_OBJS) $(YAZ_DLL) + $(LINK_PROGRAM) $(TST_TIMING_OBJS) /out:$@ + $(MT) -manifest $@.manifest -outputresource:$@;1 # Other rules