X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=win%2Fmakefile;h=acf94dbb5ad09f8b532e59e9109479d15cae6934;hp=acf07e596a8bfc61f14e8ea879a5aeef7c00c827;hb=a54c709b3e2feff5762bfa7dfa8ee653b429d369;hpb=bc66c2a11aa31c16f46c49100e99dc9b7e940faf diff --git a/win/makefile b/win/makefile index acf07e5..acf94db 100644 --- a/win/makefile +++ b/win/makefile @@ -1,33 +1,48 @@ -# makefile.mak - makefile for MS NMAKE -# $Id: makefile,v 1.27 2001-10-24 12:24:43 adam Exp $ +# Copyright (C) 1994-2003, Index Data +# All rights reserved. +# $Id: makefile,v 1.55 2003-02-18 21:27:53 adam Exp $ # # Programmed by # HL: Heikki Levanto, Index Data # -# Log at the end of the file -# -# Missing -# - Move MS-C's whatnots into win direcotry -# - The TCL script produces C and H files in the same dir as the -# ASN files. H's are copied to INCL, C's are left there. -# They should be produced into OBJ... -# -# Envoronment problems -# - You need to have the proper path and environment for VC set -# up. There is a bat file VCVARS32.BAT that sets most of it up -# for you. You can find this somewhere near DevStudio\VC\BIN -# - RegSvr32 must also be along the path, often in WINDOWS\SYSTEM -# - TCL has to be available too, if compiling for NEW_Z3950 ########################################################### ############### Parameters ########################################################### -DEBUG=1 # 0 for release, 1 for debug +DEBUG=0 # 0 for release, 1 for debug + +# TCL +#TCL="C:\Tcl\bin\tclsh83.exe" +TCL="C:\Program Files\Tcl\bin\tclsh83.exe" +HAVE_TCL=1 + +# iconv charcter conversion utility +HAVE_ICONV=1 +ICONV_DIR = c:\iconv-1.8.win32 + +# libxml2 +HAVE_LIBXML2=1 +LIBXML2_DIR=c:\libxml2-2.5.3.win32 + +# WIN32 binaries libxml2 & iconv from here: +# http://www.zlatkovic.com/projects/libxml/binaries.html + +# bison +HAVE_BISON=1 +BISON=bison default: all -all: dirs yaz_date_h dll client ztest zoomsh +all: dirs generate dll client ztest zoomsh cqlprog iconv libxml2 + +NSIS="c:\program files\nsis\makensis-bz2.exe" + +nsis: all + $(NSIS) yaz.nsi + +nsishelp: + $(NSIS) generate: generated_files @@ -56,6 +71,8 @@ Z3950DIR=$(SRCDIR)\Z39.50 ILLDIR=$(SRCDIR)\ill CCLDIR=$(SRCDIR)\ccl ZOOMDIR=$(SRCDIR)\zoom +CQLDIR=$(SRCDIR)\cql + CLIENTDIR=$(SRCDIR)\CLIENT SERVERDIR=$(SRCDIR)\SERVER @@ -68,14 +85,12 @@ TMP=$(TMPDIR) ############### Targets - what to make ########################################################### - DLL=$(BINDIR)\Yaz.dll IMPLIB=$(LIBDIR)\Yaz.lib CLIENT=$(BINDIR)\yaz-client.exe ZOOMSH=$(BINDIR)\zoomsh.exe ZTEST=$(BINDIR)\yaz-ztest.exe -YAZ_DATE_H=$(INCLDIR)\yaz\yaz-date.h ZOOMTST1=$(BINDIR)\zoomtst1.exe ZOOMTST2=$(BINDIR)\zoomtst2.exe @@ -84,20 +99,57 @@ ZOOMTST4=$(BINDIR)\zoomtst4.exe ZOOMTST5=$(BINDIR)\zoomtst5.exe ZOOMTST6=$(BINDIR)\zoomtst6.exe ZOOMTST7=$(BINDIR)\zoomtst7.exe +ZOOMTST8=$(BINDIR)\zoomtst8.exe +CQL2PQF=$(BINDIR)\cql2pqf.exe +CQL2XCQL=$(BINDIR)\cql2xcql.exe # shortcut names defined here dll : $(DLL) client: $(CLIENT) ztest: $(ZTEST) + zoomsh: $(ZOOMSH) $(ZOOMTST1) $(ZOOMTST2) $(ZOOMTST3) \ - $(ZOOMTST4) $(ZOOMTST5) $(ZOOMTST6) $(ZOOMTST7) -yaz_date_h: $(YAZ_DATE_H) + $(ZOOMTST4) $(ZOOMTST5) $(ZOOMTST6) $(ZOOMTST7) $(ZOOMTST8) + +cqlprog: $(CQL2PQF) $(CQL2XCQL) ########################################################### ############### Compiler and linker options ########################################################### +!if $(HAVE_ICONV) +ICONV_DEF= \ + /D HAVE_ICONV_H=1 \ + /I"$(ICONV_DIR)\include" +ICONV_LIB= \ + $(ICONV_DIR)\lib\iconv.lib +iconv: $(BINDIR)\iconv.dll + +$(BINDIR)\iconv.dll: + copy $(ICONV_DIR)\lib\iconv.dll $(BINDIR) +!else +ICONV_DEF= \ + /D HAVE_ICONV_H=0 +ICONV_LIB= +iconv: + +!endif + +!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)\libxml2.dll: + copy $(LIBXML2_DIR)\lib\libxml2.dll $(BINDIR) +!else +LIBXML2_LIB= +LIBXML2_DEF=/D HAVE_XML2=0 +libxml2: + +!endif + ### C and CPP compiler (the same thing) # Note: $(CPP) has already been defined in the environment @@ -105,9 +157,11 @@ yaz_date_h: $(YAZ_DATE_H) COMMON_C_OPTIONS= \ /nologo /W3 /GX /FD /c \ - /D "YAZ_MODULE_ill=1" \ - /D "WIN32" /D "_WINDOWS" \ - /D "CCL2RPN=1" \ + $(ICONV_DEF) \ + $(LIBXML2_DEF) \ + /D "_WINDOWS" \ + /D "WIN32" \ + /D "HAVE_WCHAR_H=1" \ /FR"$(OBJDIR)\\" \ /Fo"$(OBJDIR)\\" \ /Fd"$(OBJDIR)\\" @@ -145,7 +199,8 @@ LINK=link.exe LINK_LIBS= kernel32.lib user32.lib gdi32.lib \ advapi32.lib uuid.lib \ - wsock32.lib advapi32.lib + wsock32.lib advapi32.lib \ + $(ICONV_LIB) $(LIBXML2_LIB) COMMON_LNK_OPTIONS= /nologo \ /subsystem:windows \ @@ -161,10 +216,9 @@ CLIENT_LINK_OPTIONS = /subsystem:console ZOOMSH_LINK_OPTIONS = /subsystem:console SERVER_LINK_OPTIONS = -lib ZTEST_LINK_OPTIONS = /subsystem:console +CQL2PQF_LINK_OPTIONS = /subsystem:console +CQL2XCQL_LINK_OPTIONS = /subsystem:console -# TCL -TCL="C:\Program Files\Tcl\bin\tclsh83.exe" -HAVE_TCL=1 COMMON_TCL_OPTIONS= ..\util\yaz-comp -I$(INCLDIR) -i yaz @@ -196,6 +250,7 @@ TCLOPT= $(COMMON_TCL_OPTIONS) YAZ_CLIENT_OBJS= \ $(OBJDIR)\client.obj \ + $(OBJDIR)\tabcomplete.obj \ $(OBJDIR)\admin.obj YAZ_ZOOMSH_OBJS = \ @@ -215,6 +270,13 @@ YAZ_ZOOMTST6_OBJS = \ $(OBJDIR)\zoomtst6.obj YAZ_ZOOMTST7_OBJS = \ $(OBJDIR)\zoomtst7.obj +YAZ_ZOOMTST8_OBJS = \ + $(OBJDIR)\zoomtst8.obj + +YAZ_CQL2PQF_OBJS = \ + $(OBJDIR)\cql2pqf.obj +YAZ_CQL2XCQL_OBJS = \ + $(OBJDIR)\cql2xcql.obj YAZ_SERVER_OBJS= \ "$(OBJDIR)\eventl.obj" \ @@ -225,6 +287,7 @@ YAZ_SERVER_OBJS= \ "$(OBJDIR)\tcpdchk.obj" ZTEST_OBJS= \ + "$(OBJDIR)\read-marc.obj" \ "$(OBJDIR)\read-grs.obj" \ "$(OBJDIR)\ztest.obj" @@ -282,7 +345,9 @@ YAZ_UTIL_OBJS= \ $(OBJDIR)\tpath.obj \ $(OBJDIR)\wrbuf.obj \ $(OBJDIR)\xmalloc.obj \ - $(OBJDIR)\matchstr.obj + $(OBJDIR)\matchstr.obj \ + $(OBJDIR)\siconv.obj \ + $(OBJDIR)\marc8.obj YAZ_ZUTIL_OBJS= \ $(OBJDIR)\diagbib1.obj \ @@ -292,28 +357,12 @@ YAZ_ZUTIL_OBJS= \ $(OBJDIR)\yaz-ccl.obj \ $(OBJDIR)\otherinfo.obj \ $(OBJDIR)\sortspec.obj \ - $(OBJDIR)\z3950oid.obj - - -YAZ_RET_OBJS= \ - $(OBJDIR)\d1_absyn.obj\ - $(OBJDIR)\d1_attset.obj\ - $(OBJDIR)\d1_doespec.obj\ - $(OBJDIR)\d1_espec.obj\ - $(OBJDIR)\d1_expout.obj\ - $(OBJDIR)\d1_grs.obj\ - $(OBJDIR)\d1_handle.obj\ - $(OBJDIR)\d1_map.obj\ - $(OBJDIR)\d1_marc.obj\ - $(OBJDIR)\d1_prtree.obj\ - $(OBJDIR)\d1_read.obj\ - $(OBJDIR)\d1_soif.obj\ - $(OBJDIR)\d1_sumout.obj\ - $(OBJDIR)\d1_sutrs.obj\ - $(OBJDIR)\d1_tagset.obj\ - $(OBJDIR)\d1_varset.obj\ - $(OBJDIR)\d1_write.obj\ - $(OBJDIR)\d1_if.obj + $(OBJDIR)\z3950oid.obj \ + $(OBJDIR)\charneg.obj \ + $(OBJDIR)\grs1disp.obj \ + $(OBJDIR)\zgdu.obj \ + $(OBJDIR)\soap.obj \ + $(OBJDIR)\srw.obj Z3950_OBJS= \ $(OBJDIR)\z-date.obj\ @@ -342,7 +391,9 @@ Z3950_OBJS= \ $(OBJDIR)\zes-psched.obj \ $(OBJDIR)\zes-pset.obj \ $(OBJDIR)\zes-update0.obj \ - $(OBJDIR)\prt-ext.obj + $(OBJDIR)\prt-ext.obj \ + $(OBJDIR)\z-charneg.obj \ + $(OBJDIR)\z-mterm2.obj ILL_OBJS= \ $(OBJDIR)\ill-get.obj\ @@ -353,20 +404,28 @@ YAZ_ZOOM_OBJS = \ $(OBJDIR)\zoom-c.obj \ $(OBJDIR)\zoom-opt.obj +YAZ_CQL_OBJS = \ + $(OBJDIR)\cql.obj \ + $(OBJDIR)\cqlstdio.obj \ + $(OBJDIR)\cqlstring.obj \ + $(OBJDIR)\cqltransform.obj \ + $(OBJDIR)\cqlutil.obj \ + $(OBJDIR)\xcqlutil.obj + COMMON_YAZ_OBJS= \ $(YAZ_UTIL_OBJS) \ $(YAZ_ODR_OBJS) \ $(YAZ_COMSTACK_OBJS) \ $(YAZ_ZUTIL_OBJS) \ $(YAZ_CCL_OBJS) \ - $(YAZ_RET_OBJS) \ $(YAZ_SERVER_OBJS) \ - $(YAZ_ZOOM_OBJS) + $(YAZ_ZOOM_OBJS) \ + $(YAZ_CQL_OBJS) YAZ_OBJS= \ - $(COMMON_YAZ_OBJS) \ $(Z3950_OBJS) \ - $(ILL_OBJS) + $(ILL_OBJS) \ + $(COMMON_YAZ_OBJS) DLL_OBJS= $(YAZ_OBJS) @@ -400,6 +459,14 @@ ESUPDATE_C_FILES = $(Z3950_C_DIR)\zes-update.c ESADMIN_H_FILES = $(INCLDIR)\yaz\zes-admin.h ESADMIN_C_FILES = $(Z3950_C_DIR)\zes-admin.c +# Files generated from esadmin.asn +CHARNEG_H_FILES = $(INCLDIR)\yaz\z-charneg.h +CHARNEG_C_FILES = $(Z3950_C_DIR)\z-charneg.c + +# Files generated from mterm2.asn +MTERM2_H_FILES = $(INCLDIR)\yaz\z-mterm2.h +MTERM2_C_FILES = $(Z3950_C_DIR)\z-mterm2.c + # Files created from z3950v3.asn Z3950V3_H_FILES= \ $(INCLDIR)\yaz\z-accdes1.h \ @@ -451,20 +518,26 @@ ESADMIN_FILES = $(ESADMIN_H_FILES) $(ESADMIN_C_FILES) Z3950V3_FILES= $(Z3950V3_C_FILES) $(Z3950V3_H_FILES) ILL_CORE_FILES= $(ILL_CORE_C_FILES) $(ILL_CORE_H_FILES) ITEM_REQ_FILES= $(ITEM_REQ_C_FILES) $(ITEM_REQ_H_FILES) +CHARNEG_FILES = $(CHARNEG_C_FILES) $(CHARNEG_H_FILES) +MTERM2_FILES = $(MTERM2_C_FILES) $(MTERM2_H_FILES) GENERATED_C_FILES= \ $(Z3950V3_C_FILES) \ $(ESUPDATE_C_FILES) \ $(UNIVRES_C_FILES) \ $(DATETIME_C_FILES) \ - $(ESADMIN_C_FILES) + $(ESADMIN_C_FILES) \ + $(CHARNEG_C_FILES) \ + $(MTERM2_C_FILES) GENERATED_H_FILES= \ $(Z3950V3_H_FILES) \ $(ESUPDATE_H_FILES) \ $(UNIVRES_H_FILES) \ $(DATETIME_H_FILES) \ - $(ESADMIN_H_FILES) + $(ESADMIN_H_FILES) \ + $(CHARNEG_H_FILES) \ + $(MTERM2_H_FILES) generated_files: \ $(GENERATED_H_FILES) \ @@ -524,15 +597,13 @@ generated_files: \ {$(ZOOMDIR)}.c{$(OBJDIR)}.obj: $(CPP) $(COPT) $< +{$(CQLDIR)}.c{$(OBJDIR)}.obj: + $(CPP) $(COPT) $< + ############### ASN-generated files !if $(HAVE_TCL) -$(YAZ_DATE_H): - @cd .. - $(TCL) util\cvs-date.tcl include\yaz\yaz-date.h - @cd win - $(Z3950V3_FILES): $(Z3950DIR)\z3950v3.asn @cd $(Z3950DIR) $(TCL) $(TCLOPT) -d z.tcl z3950v3.asn @@ -558,6 +629,16 @@ $(ESADMIN_FILES): $(Z3950DIR)\esadmin.asn $(TCL) $(TCLOPT) -d z.tcl esadmin.asn @cd $(WINDIR) +$(CHARNEG_FILES): $(Z3950DIR)\charneg-3.asn + @cd $(Z3950DIR) + $(TCL) $(TCLOPT) -d z.tcl charneg-3.asn + @cd $(WINDIR) + +$(MTERM2_FILES): $(Z3950DIR)\mterm2.asn + @cd $(Z3950DIR) + $(TCL) $(TCLOPT) -d z.tcl mterm2.asn + @cd $(WINDIR) + $(ILL_CORE_FILES): $(ILLDIR)\ill9702.asn @cd $(ILLDIR) $(TCL) $(TCLOPT) -d ill.tcl ill9702.asn @@ -568,8 +649,18 @@ $(ITEM_REQ_FILES): $(ILLDIR)\item-req.asn $(TCL) $(TCLOPT) -d ill.tcl item-req.asn @cd $(WINDIR) +$(UTILDIR)\marc8.c: $(UTILDIR)\charconv.sgm + @cd $(UTILDIR) + $(TCL) charconv.tcl -p marc8 -s 50 charconv.sgm marc8.c + !endif +!if $(HAVE_BISON) +$(CQLDIR)\cql.c: $(CQLDIR)\cql.y + @cd $(CQLDIR) + $(BISON) -y -p cql_ -o cql.c cql.y + +!endif ########################################################### ############### Resources @@ -728,6 +819,45 @@ $(ZOOMTST7) : "$(BINDIR)" $(YAZ_ZOOMTST7_OBJS) /out:$(ZOOMTST7) << +$(ZOOMTST8) : "$(BINDIR)" $(YAZ_ZOOMTST8_OBJS) + @echo Linking $(ZOOMTST8) + $(LINK) @<< + $(LNKOPT) + $(ZOOMSH_LINK_OPTIONS) + $(LINK_LIBS) + $(IMPLIB) + $(YAZ_ZOOMTST8_OBJS) + /pdb:"$(LIBDIR)\zoomtst8.pdb" + /map:"$(LIBDIR)\zoomtst8.map" + /out:$(ZOOMTST8) +<< + +$(CQL2PQF) : "$(BINDIR)" $(YAZ_CQL2PQF_OBJS) + @echo Linking $(CQL2PQF) + $(LINK) @<< + $(LNKOPT) + $(CQL2PQF_LINK_OPTIONS) + $(LINK_LIBS) + $(IMPLIB) + $(YAZ_CQL2PQF_OBJS) + /pdb:"$(LIBDIR)\cql2pqf.pdb" + /map:"$(LIBDIR)\cql2pqf.map" + /out:$(CQL2PQF) +<< + +$(CQL2XCQL) : "$(BINDIR)" $(YAZ_CQL2XCQL_OBJS) + @echo Linking $(CQL2XCQL) + $(LINK) @<< + $(LNKOPT) + $(CQL2XCQL_LINK_OPTIONS) + $(LINK_LIBS) + $(IMPLIB) + $(YAZ_CQL2XCQL_OBJS) + /pdb:"$(LIBDIR)\cql2xcql.pdb" + /map:"$(LIBDIR)\cql2xcql.map" + /out:$(CQL2XCQL) +<< + $(ZTEST) : "$(BINDIR)" $(ZTEST_OBJS) $(DLL) @echo Linking the ztest $(ZTEST) $(LINK) @<< @@ -743,7 +873,6 @@ $(ZTEST) : "$(BINDIR)" $(ZTEST_OBJS) $(DLL) /out:$(ZTEST) << - # note that this links a lib, so it uses completely different options. ########################################################### @@ -753,25 +882,21 @@ $(ZTEST) : "$(BINDIR)" $(ZTEST_OBJS) $(DLL) ############## clean clean: - del $(DLL) - del $(CLIENT) - del $(ZTEST) - del $(ZOOMSH) - del $(TMPDIR)\*. - - del $(LIBDIR)\*.MAP - - del $(LIBDIR)\*.LIB - del $(OBJDIR)\*.OBJ + -del $(BINDIR)\*.exe + -del $(BINDIR)\*.dll + -del $(TMPDIR)\*. + -del $(LIBDIR)\*.MAP + -del $(LIBDIR)\*.LIB + -del $(OBJDIR)\*.OBJ realclean: clean - del $(Z3950_C_DIR)\*.c - del $(Z3950_C_DIR)\*.h - del $(INCLDIR)\yaz\z-accdes1.h - del $(INCLDIR)\yaz\z-core.h - del $(DATETIME_H_FILES) - del $(UNIVRES_H_FILES) - del $(ESUPDATE_H_FILES) + -del $(CQLDIR)\cql.c + -del $(Z3950_C_DIR)\z*.c + -del $(INCLDIR)\yaz\z-accdes1.h + -del $(INCLDIR)\yaz\z-core.h + -del $(DATETIME_H_FILES) + -del $(UNIVRES_H_FILES) + -del $(ESUPDATE_H_FILES) # Because DOS del will only accept one file name to delete, # the _H_ files work only on sets that have just one file. @@ -781,7 +906,7 @@ realclean: clean dirs: $(OBJDIR) $(WINDIR) $(LIBDIR) $(BINDIR) $(TMPDIR) $(OBJDIR) $(WINDIR) $(LIBDIR) $(BINDIR) $(TMPDIR): - if not exist "$@/$(NUL)" mkdir "$@" + if not exist "$@/$(NUL)" mkdir "$@" ########################################################### @@ -803,7 +928,93 @@ $(ILL_OBJS): $(ILL_CORE_FILES) $(ITEM_REQ_FILES) ########################################################### # # $Log: makefile,v $ -# Revision 1.27 2001-10-24 12:24:43 adam +# Revision 1.55 2003-02-18 21:27:53 adam +# CQL w/bison on WIN32 +# +# Revision 1.54 2003/02/18 09:11:50 adam +# Prepare for external utilties: iconv, libxml2 on WIN32 +# +# Revision 1.53 2003/02/17 22:34:39 adam +# WIN32 updates +# +# Revision 1.52 2002/12/16 14:06:34 adam +# WIN32 updates for marc8.c +# +# Revision 1.51 2002/12/05 12:16:39 adam +# yaz_strerror. WIN32 updates for mterm2.asn +# +# Revision 1.50 2002/10/24 12:14:01 heikki +# Using a default path to find tcl +# +# Revision 1.49 2002/10/22 13:49:53 adam +# data1 gone +# +# Revision 1.48 2002/10/22 10:32:46 adam +# New source grs1disp.c +# +# Revision 1.47 2002/09/06 20:04:49 adam +# debug=0 +# +# Revision 1.46 2002/08/30 11:28:01 adam +# Remove EXPAT reader +# +# Revision 1.45 2002/08/27 22:33:30 adam +# siconv added +# +# Revision 1.44 2002/07/25 14:19:18 adam +# EXPAT support on WIN32 +# +# Revision 1.43 2002/07/25 13:45:30 adam +# iconv.dll +# +# Revision 1.42 2002/06/05 21:11:00 adam +# NSIS bz2 +# +# Revision 1.41 2002/06/04 08:29:53 adam +# ignore errors on del. +# +# Revision 1.40 2002/06/02 21:34:45 adam +# Remove --enable-module option +# +# Revision 1.39 2002/05/31 08:48:06 adam +# Changed SectionIns for NSIS v1.98 +# +# Revision 1.38 2002/05/18 09:52:37 oleg +# Added support of CharacterSetandLanguageNegotiation-3 +# modele (based on Z_PrivateCharacterSet_externallySpecified) at the client +# side. +# +# Revision 1.37 2002/05/17 12:48:30 adam +# Use __stdcall convention for ZOOM on WIN32 +# +# Revision 1.36 2002/03/18 21:33:48 adam +# MARC records embedded in C code for test server +# +# Revision 1.35 2002/03/16 10:26:57 adam +# Added NSIS rules (nmake nsis). +# +# Revision 1.34 2002/02/12 15:59:12 adam +# added z-charneg.obj +# +# Revision 1.33 2002/02/11 23:25:26 adam +# Rustam's patch +# +# Revision 1.32 2002/01/30 22:02:03 adam +# WIN32 updates for YAZ client. +# +# Revision 1.31 2001/12/30 22:21:11 adam +# Scan for ZOOM. +# +# Revision 1.30 2001/10/28 23:28:26 adam +# Enable CCL-to-RPN for YAZ client on WIN32. +# +# Revision 1.29 2001/10/25 12:46:07 adam +# codecs not built as they should. +# +# Revision 1.28 2001/10/25 10:45:08 adam +# Fixed make clean. +# +# Revision 1.27 2001/10/24 12:24:43 adam # WIN32 updates: ZOOM runs, nmem_init/nmem_exit called in DllMain. # # Revision 1.26 2001/09/27 12:09:18 adam