X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=doc%2Finstallation.xml;h=ae46e146824f632037edba627fee775e3ea1043e;hb=2984a4a74dbbe7aaf4f07788ae4785041cf6004a;hp=834358b66c8d7eaecf27114fda581b521c6280c2;hpb=bd7e251dac1b07c54884d26295f66b90cfb23131;p=yaz-moved-to-github.git diff --git a/doc/installation.xml b/doc/installation.xml index 834358b..ae46e14 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 not create + static libraries (.a). + By default, static libraries are created - + equivalent to --enable-static. + + @@ -148,7 +168,7 @@ lib/libyazthread.la - When threading is supported/enabled by configure this GNU libtool + When threading is supported/enabled by configure this Libtool library is created. It includes functions that allows &yaz; to use threads. @@ -164,7 +184,7 @@ yaz-config - A Bourne-shell script, generate by configure, that + A Bourne-shell script, generated by configure, that specifies how external applications should compile - and link with &yaz;. @@ -180,22 +200,22 @@ A simple shell implemented on top of the ZOOM functions. The shell is a command line application that allows you to enter - simple commands perform to perform ZOOM operations. + simple commands to perform ZOOM operations. zoom/zoomtst1, zoom/zoomtst2, .. - Several small applications that demonstrates the use of ZOOM. + Several small applications that demonstrates the ZOOM API. - If you wish to install &yaz; in system directories such as + If you wish to install &yaz; in system directories /usr/local/bin, - /usr/local/lib you can type: + /usr/local/lib .. etc, you can type: @@ -210,7 +230,7 @@ - If you wish to perform an un-installation of &yaz; use: + If you wish to perform an un-installation of &yaz;, use: @@ -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 command line + 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 variable consists of a C compiler directive 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. + + + For applications using the threaded version of &yaz;, + 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 variable 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 their WIN32 applications work with &yaz;. The good news is that + you don't have to. You can use the integrated environement of + Visual Studio if desired for your own application. + + + 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. + + + +