116 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| Desc: NUT libraries complementary information
 | |
| File: README
 | |
| Date: 23 Aug 2003
 | |
| Auth: Arnaud Quette <arnaud.quette@free.fr>
 | |
| 
 | |
| This file provides some complementary information
 | |
| about the creation process of NUT libraries, and
 | |
| the use of it.
 | |
| 
 | |
| 1) Introduction
 | |
| ---------------
 | |
| 
 | |
| This represents an evolution toward a fully standard NUT
 | |
| library usage for external programs, such as clients.
 | |
| 
 | |
| The aim is to provide facilities to incorporate NUT functions
 | |
| into external programs such as asapm-ups, wmnut, and others.
 | |
| But it is also used internally (upsc, ...)
 | |
| 
 | |
| NUT (install-lib or legacy install-misc) currently provides:
 | |
| - a library (static and/or dynamic, depending on what your platform supports), 
 | |
|   called libupsclient.a, libupsclient.so, etc. 
 | |
| - and header files (upsclient.h).
 | |
| - an helper script called libupsclient-config,
 | |
| - and a pkgconfig file, called libupsclient.pc, if it is supported
 | |
| 
 | |
| 2) pkgconfig support
 | |
| --------------------
 | |
| 
 | |
| pkgconfig enables a high level of integration with minimal effort.
 | |
| No more needs to manage hosts of possible NUT installation path in
 | |
| your configure script !
 | |
| 
 | |
| It is as simple to use as calling:
 | |
| 
 | |
| $> `pkg-config  --exists libupsclient --silence-errors` to see if NUT is usable
 | |
| $> `pkg-config --cflags libupsclient` to get CFLAGS
 | |
| $> `pkg-config --libs libupsclient` to get LD_FLAGS
 | |
| 
 | |
| A file called "libupsclient.pc" is provided in the present directory,
 | |
| and installed in the according directory to enable the above
 | |
| feature. The default installation directory ("/usr/lib/pkgconfig/")
 | |
| may be changed with "./configure --with-pkgconfig-dir=PATH".
 | |
| 
 | |
| 
 | |
| 3) libupsclient-config:
 | |
| -----------------------
 | |
| 
 | |
| Even if pkgconfig is supported/installed, an alternate
 | |
| helper script will be installed in the same directory
 | |
| as NUT client programs (BINDIR).
 | |
| 
 | |
| The usage is about the same as pkg-config:
 | |
| 
 | |
| $> `libupsclient-config --cflags` to get CFLAGS
 | |
| $> `libupsclient-config --libs` to get LD_FLAGS
 | |
| 
 | |
| 
 | |
| 4) Example of configure.in:
 | |
| ---------------------------
 | |
| 
 | |
| For using libupsclient in your program, simply copy/paste
 | |
| the below into your configure.in file. It will test for
 | |
| pkgconfig support for NUT, and fall back to
 | |
| libupsclient-config if not available. It will issue an
 | |
| error if none is found!
 | |
| 
 | |
| ...
 | |
| AC_MSG_CHECKING(for NUT client library (libupsclient))
 | |
| pkg-config --exists libupsclient --silence-errors
 | |
| if test $? -eq 0
 | |
| then
 | |
| 	AC_MSG_RESULT(found (using pkg-config))
 | |
| 	LDFLAGS="$LDFLAGS `pkg-config --libs libupsclient`"
 | |
| 	NUT_HEADER="`pkg-config --cflags libupsclient`"
 | |
| else
 | |
| 	libupsclient-config --version
 | |
| 	if test $? -eq 0
 | |
| 	then
 | |
| 		AC_MSG_RESULT(found (using libupsclient-config))
 | |
| 		LDFLAGS="$LDFLAGS `libupsclient-config --libs`"
 | |
| 		NUT_HEADER="`libupsclient-config --cflags`"
 | |
| 	else
 | |
| 		AC_MSG_ERROR("libupsclient not found")
 | |
| 	fi
 | |
| fi
 | |
| ...
 | |
| 
 | |
| 
 | |
| You can also use this if you are sure that pkg-config
 | |
| is installed:
 | |
| ...
 | |
| PKG_CHECK_MODULES(LIBUPSCLI, libupsclient >= 1.5.2)
 | |
| ...
 | |
| 
 | |
| 5) Future things:
 | |
| -----------------
 | |
| 
 | |
| - next libs to come may be libupsconfig, libupscmd, libupsrw, ...
 | |
| 
 | |
| 
 | |
| 6) Libtool information:
 | |
| -----------------------
 | |
| 
 | |
| NUT libraries are currently built using Libtool. This tool is
 | |
| integrated with automake, and can create static and dynamic libraries
 | |
| for a variety of platforms in a transparent way.
 | |
| 
 | |
| 7) References:
 | |
| --------------
 | |
| 
 | |
| - libtool: http://www.gnu.org/software/libtool/
 | |
| - David MacKenzie's Autobook (RedHat):
 | |
| http://sources.redhat.com/autobook/autobook/autobook.html
 | |
| - DebianLinux.Net: The GNU Build System
 | |
| http://debianlinux.net/~jama/howto/gnu_build_steps.html
 |