Blame README.windows

Packit db01ca
========================================================================
Packit db01ca
This package provides windows version of
Packit db01ca
- Base HPI library (libopenhpi.dll)
Packit db01ca
- OpenHPI utils library (libopenhpiutils.dll)
Packit db01ca
- OpenHPI marshal library (libopenhpimarshal.dll)
Packit db01ca
- OpenHPI transport library (libopenhpitransport.dll)
Packit db01ca
- OpenHPI clients:
Packit db01ca
-- hpialarms.exe
Packit db01ca
-- hpidomain.exe
Packit db01ca
-- hpiel.exe
Packit db01ca
-- hpievents.exe
Packit db01ca
-- hpifan.exe
Packit db01ca
-- hpigensimdata.exe
Packit db01ca
-- hpiinv.exe
Packit db01ca
-- hpionIBMblade.exe
Packit db01ca
-- hpipower.exe
Packit db01ca
-- hpireset.exe
Packit db01ca
-- hpisensor.exe
Packit db01ca
-- hpisettime.exe
Packit db01ca
-- hpithres.exe
Packit db01ca
-- hpitop.exe
Packit db01ca
-- hpitree.exe
Packit db01ca
-- hpiwdt.exe
Packit db01ca
-- hpixml.exe
Packit db01ca
-- ohdomainlist.exe
Packit db01ca
-- ohhandler.exe
Packit db01ca
-- ohparam.exe
Packit db01ca
- OpenHPI daemon as a console Windows application (openhpid.exe)
Packit db01ca
-- Slave plug-in (libslave.dll)
Packit db01ca
-- Test Agent plug-in (libtest_agent.dll)
Packit db01ca
Packit db01ca
The package also provides necessary glib2 libraries:
Packit db01ca
- libglib-2.0-0.dll
Packit db01ca
- libgthread-2.0-0.dll
Packit db01ca
- libgmodule-2.0-0.dll
Packit db01ca
Packit db01ca
NB: glib2 libraries were obtained in binary form from 
Packit db01ca
http://www.gtk.org/download-windows.html and were included 
Packit db01ca
without any change.
Packit db01ca
NB: glib2 is distributed under LGPL2 license.
Packit db01ca
Packit db01ca
The package can include additional auxiliary libraries.
Packit db01ca
Packit db01ca
========================================================================
Packit db01ca
Dependencies:
Packit db01ca
Packit db01ca
The only dependence (save for mingw compiler) is glib2.
Packit db01ca
Windows version can be obtained at http://www.gtk.org/download-windows.html
Packit db01ca
Packit db01ca
========================================================================
Packit db01ca
Current windows build system supports only mingw compiler.
Packit db01ca
http://www.mingw.org/
Packit db01ca
However the built libraries can be use as ordinary windows DLL
Packit db01ca
in projects with any compiler.
Packit db01ca
Packit db01ca
========================================================================
Packit db01ca
Build instructions:
Packit db01ca
Packit db01ca
- Get mingw (cross or native).
Packit db01ca
- Get archive with glib2 for windows and unpack it somewhere.
Packit db01ca
- Enter OpenHPI source tree root directory.
Packit db01ca
- Modify Makefile.mingw32.def:
Packit db01ca
-- ARCH in order to point architecture for produced binaries
Packit db01ca
-- TOOLCHAIN_PATH in order that CC, CXX, AS and RC point to correct files.
Packit db01ca
-- GLIB_DIR: in order that GLIB_INCLUDES and GLIB_LIBS
Packit db01ca
   point to valid directories with glib headers and libraries.
Packit db01ca
- Run "make -f Makefile.mingw32".
Packit db01ca
- Run "make -f Makefile.mingw32 out".
Packit db01ca
- The openhpi-${VERSION}-win32-${ARCH} sub-directory will contain all produced stuff.
Packit db01ca
- For gcc4-based compiler (i.e. mingw-w64.sourceforge.net ) you need to copy more libs:
Packit db01ca
-- libgcc_s_*.dll
Packit db01ca
-- libstdc++-*.dll
Packit db01ca
- Optional step - strip produced exe and dll files.
Packit db01ca
Packit db01ca
========================================================================
Packit db01ca
Client Usage instructions:
Packit db01ca
Packit db01ca
There are two ways:
Packit db01ca
Packit db01ca
Way 1) prepare openhpiclient.conf and set env. var. OPENHPICLIENT_CONF
Packit db01ca
to its path
Packit db01ca
Packit db01ca
Way 2) set env. var. OPENHPI_DAEMON_HOST to OpenHPI daemon address.
Packit db01ca
Packit db01ca
========================================================================
Packit db01ca
Library Usage instructions:
Packit db01ca
Packit db01ca
Header file SaHpi.h contains declarations on provided HPI functions.
Packit db01ca
Header file oHpi.h contains declarations on provided OpenHPI extension functions.
Packit db01ca
Make sure to use the oHpi.h and SaHpi.h files from  openhpi-3.3.0-win32-x86 or 
Packit db01ca
openhpi-3.3.0-win32-amd64 directory, not the ones from trunk/include directory.
Packit db01ca
The functions are in libopenhpi.dll.
Packit db01ca
Packit db01ca
Define "SAHPI_API" macro as "__declspec(dllimport)".
Packit db01ca
Packit db01ca
For mingw compiler it can be just linked.
Packit db01ca
Packit db01ca
For MSVC:
Packit db01ca
- There is def file libopenhpi.def
Packit db01ca
- With lib tool you can create import library
Packit db01ca
- Command example "lib /machine:i386 /def:libopenhpi.def"
Packit db01ca
- Point produced import library in Project settings
Packit db01ca
Packit db01ca
For application running and distribution::
Packit db01ca
- copy necessary libraries to your application dir.
Packit db01ca
Packit db01ca
And see Client Usage instructions about configuring OpenHPI daemon address
Packit db01ca
to connect.
Packit db01ca
Packit db01ca
========================================================================
Packit db01ca
Library Known Issues:
Packit db01ca
Packit db01ca
===================================================
Packit db01ca
Seems mingw has its own copy of environment variables.
Packit db01ca
So the code:
Packit db01ca
Packit db01ca
    _putenv("OPENHPI_DAEMON_HOST=...");
Packit db01ca
    rv = saHpiSessionOpen(...)
Packit db01ca
Packit db01ca
does not work in MSVC as expected.
Packit db01ca
But setting any variable before running executable works!
Packit db01ca
Packit db01ca
===================================================
Packit db01ca
Seems client applications do not close sockets.
Packit db01ca
The sockets remain in TIME_WAIT state.
Packit db01ca
It can exhaust system resources.
Packit db01ca
Packit db01ca
========================================================================
Packit db01ca
Daemon Usage instructions:
Packit db01ca
Packit db01ca
Only Slave plug-in and Test agent plug-in are now ported under Windows.
Packit db01ca
Packit db01ca
- prepare openhpi.conf
Packit db01ca
- openhpid.exe -v -c "path to openhpi.conf"
Packit db01ca
Packit db01ca
As an optional step you can do 
Packit db01ca
- set OPENHPI_UID_MAP="path to uid map file"
Packit db01ca
before running openhpid.exe.
Packit db01ca
The uid map file will be used for persistent
Packit db01ca
resource id <-> entity path mapping.
Packit db01ca
Packit db01ca
NB: -v is optional flag for verbose messages.
Packit db01ca
Packit db01ca
========================================================================
Packit db01ca
Troubleshouting:
Packit db01ca
Packit db01ca
Mailing list: openhpi-devel@lists.sourceforge.net
Packit db01ca
Packit db01ca
or
Packit db01ca
Packit db01ca
IRC channel #openhpi on FreeNode.
Packit db01ca