From 79e745223e808aef83c885d94a7a2e58ee8e4ba0 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Thu, 8 Nov 2001 12:36:15 +0000 Subject: [PATCH] More installation info. --- doc/installation.xml | 143 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 133 insertions(+), 10 deletions(-) diff --git a/doc/installation.xml b/doc/installation.xml index 834358b..2394ed3 100644 --- a/doc/installation.xml +++ b/doc/installation.xml @@ -1,4 +1,4 @@ - + Compilation and Installation Introduction @@ -99,7 +99,7 @@ - To customize &yaz; the configure script also accepts a set of options. + To customize &yaz;, the configure script also accepts a set of options. The most important are: @@ -115,7 +115,7 @@ TCP wrapper library. It allows you to allow/deny clients depending on IP number. The TCP wrapper library is - commonly used in Linux/BSD distributions. + often used in Linux/BSD distributions. --enable-threads @@ -124,6 +124,26 @@ compilation. + --with-openssl + &yaz; will be linked with the OpenSSL libraries and + an SSL COMSTACK will be provided. Note that SSL support is still + exterimental. + + + --enable-shared + The make process will create shared + libraries (also known as shared objects .so). + By default, no shared libraries are created - + equivalent to --disable-shared. + + + --disable-shared + The make process will be not create + static libraries (.a). + By default, static libraries are created - + equivalent to --enable-static. + + @@ -186,7 +206,7 @@ zoom/zoomtst1, zoom/zoomtst2, .. - Several small applications that demonstrates the use of ZOOM. + Several small applications that demonstrates the ZOOM API. @@ -223,7 +243,78 @@ remove directories created by make install, e.g. /usr/local/include/yaz. - + + How to make apps using YAZ on UNIX + + This section describes how to compile - and link your own + applications using the &yaz; toolkit. + If you're used to Makefiles this shouldn't be hard. As for + other libraries you have used before, you have to set a proper include + path for your C/C++ compiler and specify the location of + &yaz; libraries. You can do it by hand, but generally we suggest + you use the yaz-config that is generated + by configure. This is especially + important if you're using the threaded version of &yaz; which + require you to pass more options to your linker/compiler. + + + The yaz-config script accepts the options + that makes the yaz-config script print + options that you should use in your make process. + The most important ones are: + --cflags, --libs + which prints C compiler flags, and linker flags respectively. + + + A small and complete Makefile for a C + application consisting of one source file + myprog.c may look like this: + + YAZCONFIG=/usr/local/bin/yaz-config + CFLAGS=`$(YAZCONFIG) --cflags` + LIBS=`$(YAZCONFIG) --libs` + myprog: myprog.o + $(CC) $(CFLAGS) -o myprog myprog.o $(LIBS) + + + + The CFLAGS string will consists of an option that will set the + include path to the parent directory + of yaz. That is, if &yaz; header files were + installed in /usr/local/include/yaz, + then include path is set to /usr/local/include. + Therefore, in your applications you should use + + #include <yaz/proto.h> + + and not + + #include <proto.h> + + + + For Libtool users, the yaz-config script provides + a different variant of option --libs, called + --lalibs that returns the name of the + Libtool acrhive(s) for &yaz; rather than the ordinary ones. + + + Applications that wish to use the threaded version of &yaz; + should specify threads after the + other options. When threads is given + more flags and linker flags will be printed by + yaz-config. If our previous example was + using threads, you'd have to modify the lines that set + CFLAGS and LIBS as + follows: + + CFLAGS=`$(YAZCONFIG) --cflags threads` + LIBS=`$(YAZCONFIG) --libs threads` + + There is no need specify POSIX thread libraries in your Makefile. + The LIBS includes that as well. + + WIN32 @@ -260,7 +351,7 @@ - When satisfied with the settings in the makefile type + When satisfied with the settings in the makefile, type nmake @@ -305,7 +396,7 @@ Z39.50 multi-threaded test/example server. It's a WIN32 console application. - + bin/zoomsh.exe Simple console application implemented on top of the @@ -313,16 +404,48 @@ The application is a command line shell that allows you to enter simple commands perform to perform ZOOM operations. - + bin/zoomtst1.exe, bin/zoomtst2.exe, .. - Several small applications that demonstrates the use of ZOOM. + Several small applications that demonstrates the ZOOM API. - + + How to make apps using YAZ on WIN32 + + This section will go though the process of linking your WIN32 + applications with &yaz;. + + + Some people are confused by the fact that we use the nmake + tool to build &yaz;. They think they have to do that too - in order + to make WIN32 applications using &yaz;. The good news is that + you don't have to. You can use the integrated environement of + Visual Studio if desired. + + + When setting up a project or Makefile you have to set the following: + + include path + Set it to the include directory of &yaz;. + + import library yaz.lib + + You must link with this library. It's located in the + sub directory lib of &yaz;. + + dynamic link library yaz.dll + + This DLL must be in your execution path when you invoke + your application. Specifically, you should distribute this + DLL with your application. + + + + -- 1.7.10.4