From 61c0c42465b6886f6aff3c5cf6a94404b03a1fbd Mon Sep 17 00:00:00 2001 From: Sebastian Hammer Date: Mon, 10 Apr 1995 10:22:06 +0000 Subject: [PATCH] Added README. Mods to top-level mkf. --- Makefile | 12 ++++++--- README | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+), 3 deletions(-) create mode 100644 README diff --git a/Makefile b/Makefile index 1f32f04..dfc8cb4 100644 --- a/Makefile +++ b/Makefile @@ -1,13 +1,19 @@ # Copyright (C) 1994, Index Data I/S # All rights reserved. # Sebastian Hammer, Adam Dickmeiss -# $Id: Makefile,v 1.5 1995-03-30 14:02:36 quinn Exp $ +# $Id: Makefile,v 1.6 1995-04-10 10:22:06 quinn Exp $ + +# Define -DUSE_XTIMOSI to enable the xtimosi functionality. Remeber to +# also modify the makefiles under yazlib/ and server/ (according the +# comments found there). Uncomment RFC1006. + +#DEFS=-DUSE_XTIMOSI +#RFC1006=rfc1006 #CC= SHELL=/bin/sh MAKE=make -SUBDIR=util odr asn rfc1006 yazlib server makelib -DEFS=-DUSE_XTIMOSI +SUBDIR=util odr asn $(RFC1006) ccl yazlib server makelib all: for i in $(SUBDIR); do cd $$i; if $(MAKE) CFLAGS="$(CFLAGS) $(DEFS)"; then cd ..; else exit 1; fi; done diff --git a/README b/README new file mode 100644 index 0000000..3baa3f9 --- /dev/null +++ b/README @@ -0,0 +1,88 @@ +Compilation and installation + +The primary output of the source here is the libyaz.a library, which +contain support functions for implementing the server or client role +of Z39.50/SR. Currently, the library is placed in a directory 'lib' +which is one level *above* the distribution directory (yaz). This was +initially done because the library is often used along with several +other packages, and it was useful to gather the different libraries in +a common place. If you don't like it, changing the 'LIBDIR' macro in +the toplevel makefile should be sufficient. Obscurely, the header +files are located in the include-directory *under* the yaz/ directory. + +The toplevel makefile also contains directions on how to enable Peter +Furniss' XTIMOSI package. The package can be downloaded from +ftp://pluto.ulcc.ac.uk/ulcc/thinosi/... (or something close to that). +If you place the xtimosi directory on the same level as the yaz +directory, and simply follow the directions in the toplevel YAZ +makefile, the libmosi.a library from xtimosi should link in with no +problems. The xtimosi library is needed to support a full OSI stack, +but is *not* required to talk to American-style Z39.50 implementations +over TCP/IP. Don't worry about compiling the test applications in the +xtimosi package. Just do a "make libmosi.a", and do whatever is +required to make the compilation complete on your local ystem. + +Two test-programs of interest are generated when you type 'make' at +the top level. server/ztest and yazlib/cli. Ztest is a dummy database +server which returns canned responses to all queries. It's good for +verifying that the protocol works ok, and ztest.c shows a minimalistic +implementation of the 'backend' interface. + +Cli is a linemode Z39.50 client. It supports a fair amount of the +functionality of Z39.50v2/SR, but some things you need to enable by +recompilation. Its primary purpose is to excersise the package, and +verify that the protocol works OK. It can be started by typing + +cli tcp:: + +at the UNIX prompt, to connect to a Z39.50 server, or + +cli osi:['/']: + +to connect to an OSI SR target (this requires XTIMOSI). To connect to +the DANBIB test target, you might use: + +cli osi:0103/find2.denet.dk:4500 + +CLI supports CCL-queries, with the mapping between qualifiers and +attribute values specified in the file default.bib in the working +directory. + +The directories: + +util - Various little utility functions. Logging, memory debugging, + primitive ISO2709 presentation for the client, etc. + +odr - Open Data Representation. This module implements the BER + encoding rules. Documentation is found in the files odr.man + and odr.txt. + +asn - This module implements the Z39.50/SR protocol. The best way + to find out how it works is to look in the sample + client/server code in server/seshigh.c or yazlib/tst.c. + +yazlib - This module primarily implements the transport transparency + stack (COMSTACK). The comstack implements a generic interface + for exchanging BER-encoded records over a network. It supports + the American mode of exchanging the records straight over + TCP/IP, and Peter Furniss' XTIMOSI package over RFC1006. Look + for documentation in the file comstack.man. + +server - This is the implementation of the server frontend. It + It provides event-handling and server managament functions, + and calls the backend primitives (best documentation of these + is in the file include/backend.h). + +rfc1006 - Xtimosi requires an implementation of the OSI transport + with an XTI-based API. Some systems (HP and DEC, notably) + provide this. For others, we provide an implementation of the + RFC1006 protocol (which is what ISODE-based implementations + typically use). This module is not neeeded if you don't use + xtimosi. + +makelib - This is a simple utility that gathers the libraries from the + previous modules into libyaz.a. + +include - The various header files. + +../lib - The libraries. Primarily libyaz.a. -- 1.7.10.4