Personal tools
The Open Lighting Project has moved!

We've launched our new site at www.openlighting.org. This wiki will remain and be updated with more technical information.

Libartnet on Windows

From wiki.openlighting.org

Revision as of 06:40, 1 July 2009 by 66.92.11.32 (talk)
Jump to: navigation, search

Written by sl1200mk2 2009/07/01. (nicole-banana.com)

This HOWTO outlines a method for compiling libartnet on Windows using MinGW (libartnet-1.dll). The instructions here http://www.mingw.org/wiki/MSYS are helpful.

you'll need msys, mingw and autotools installed.

         o autoconf [1] 
         o automake [2]
         o libtool [3]
  • Unpack autoconf, automake and libtool to a directory of your choice.
  • Install them with the 3 with the following command:
../path/to/configure --prefix=/mingw && make && make install

As all the libraries will be installed in /mingw, PKG_CONFIG_PATH must be set.

Open the file /etc/profile (C:\msys\1.0\etc\profile) with your favorite editor (make sure it uses LF line endings) and add:

PKG_CONFIG_PATH="/mingw/lib/pkgconfig"

You might also want to set CFLAGS. Safe options for MinGW are:

CFLAGS="-pipe -O2 -mms-bitfields -march=i686"

just before

export HOME LOGNAME MSYSTEM HISTFILE

and modify that line by adding the variables:

export HOME LOGNAME MSYSTEM HISTFILE CFLAGS PKG_CONFIG_PATH

Now restart MSYS. You should now be able to use MSYS without problems.

(taken from http://www.mingw.org/wiki/msys)


This is the biggest part of the job.


Download Libartnet

Sources (via git) - this will download latest libartnet version

git clone http://www.nomis52.net/git/libartnet

CHECK

check that AC_LIBTOOL_WIN32_DLL macro is present in libartnet/configure.in


if not, add AC_LIBTOOL_WIN32_DLL macro before AC_PROG_LIBTOOL


         o AC_PROG_CC 
         o AC_PROG_INSTALL
         o AC_PROG_LN_S
         o AC_PROG_MAKE_SET
         o AC_LIBTOOL_WIN32_DLL
         o AC_PROG_LIBTOOL


i did this with Bloc-notes because the way the file is recorded is important. you don't want \cr\lf end of lines, you just want \lf. otherwise, you'll get errors like

' is already registered with AC_CONFIG_FILES. ../../lib/autoconf/status.m4:305: AC_CONFIG_FILES is expanded from... configure.in:76: the top level


edit libartnet/artnet/Makefile.am, and check if libartnet_la_LDFLAGS look like this

libartnet_la_LDFLAGS = -no-undefined -liphlpapi -lnetapi32 -lcap -lws2_32 -ldpnet -version-info 1:0:0

or

if USING_WIN32
libartnet_la_LDFLAGS += -no-undefined -liphlpapi -lnetapi32 -lcap -lws2_32 \
                       -ldpnet
endif


Build

now go to libartnet

$ cd libartnet

launch reconf script (autotools where installed in/c/MinGW, so i pass this prefix)

$ reconf --prefix=/c/MinGW/
configure.in:14: installing `./config.guess'
configure.in:14: installing `./config.sub'
configure.in:7: installing `./install-sh'
configure.in:15: required file `./ltmain.sh' not found
configure.in:7: installing `./missing'
artnet/Makefile.am: installing `./depcomp'

libtoolize everything to copy ./ltmain.sh

$ libtoolize --force --copy
libtoolize: putting auxiliary files in `.'.
libtoolize: copying file `./ltmain.sh'
libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.in and
libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.

(i didn't set AC_CONFIG_MACRO_DIR([m4]) neither ACLOCAL_AMFLAGS)

re-launch reconf script

$ reconf --prefix=/c/MinGW/

compile everything

$ ./configure --prefix=/c/MinGW/ && make && make install

AC_PROG_LIBTOOL macro and -no-undefined flag cause libartnet to build as DLL