[syslog-ng] Crosscompile Syslog-ng
Kenneth Kassing
kassing at patton.com
Fri Jan 27 23:18:03 CET 2006
I am crosscompileing syslog-ng to to a powerpc, and had to make a few
changes to make it compile properly. If anyone is interested I have
included these two patch files here.
First I updated configure.in to allow you to specify a path to libfl.a
(it should also work with libl.a, but I have not tested this). The
configure tests already included does not find the lex libraries for me
(I do not have them installed. Instead I am just building flex as
compile time dependency.)
Second, the configure script was explicitly running configure and make
from the script. I did not like configure calling make, and it was not
using any of my configure arguements for libol. As a result libol was
built for my build machine instead of the target device.
The syslog-ng configure script will now now call configure for libol
(with all the supplied options), and will not run make. When make is
run from the syslog-ng directory it will also run make for libol.
-Ken
-------------- next part --------------
--- Makefile.am.org 2006-01-24 17:18:51.000000000 -0500
+++ Makefile.am 2006-01-24 22:26:21.000000000 -0500
@@ -1,4 +1,4 @@
-SUBDIRS = src doc contrib
+SUBDIRS = $(LIBOL_DIR) src doc contrib
EXTRA_DIST = PORTS syslog-ng.spec syslog-ng.spec.in syslog-ng.spec.bb syslog-ng.spec.bb.in README.spoof dist.conf dist.conf.in
-------------- next part --------------
--- configure.in.org 2006-01-24 11:56:15.000000000 -0500
+++ configure.in 2006-01-25 11:19:34.000000000 -0500
@@ -56,6 +56,11 @@ AC_ARG_WITH(libnet,
[ --with-libnet=path use path to libnet-config script],
,
[with_libnet=""])
+
+AC_ARG_WITH(lex,
+ AC_HELP_STRING([--with-lexlib=path],[use an uninstalled copy of lex]),
+ [with_lex=`cd $with_lex; pwd`],
+ [with_lex=""])
AC_ARG_ENABLE(sun-streams,
[ --enable-sun-streams enable Sun STREAMS support even if not detected])
@@ -85,8 +90,8 @@ sysconfdir="${sysconfdir}/syslog-ng"
AM_SANITY_CHECK
dnl Checks for programs.
-AC_PROG_CC
-AM_PROG_CC_STDC
+#AC_PROG_CC
+#AM_PROG_CC_STDC
AC_PROG_YACC
AM_PROG_LEX
AC_PROG_MAKE_SET
@@ -355,15 +360,33 @@ else
AC_MSG_RESULT([no clues, linking everything dynamically, please send appropriate ld arguments to syslog-ng at lists.balabit.hu])
fi
-AC_MSG_CHECKING(libol version >= $LIBOL_REQ_MAJOR.$LIBOL_REQ_MINOR.$LIBOL_REQ_PATCH)
+if test "$with_lex" != ""; then
+ AC_MSG_CHECKING(for uninstalled version of lex in $with_lex)
+ if test -f "$with_lex/libfl.a"; then
+ LEXLIB="$with_lex/libfl.a"
+ AC_MSG_RESULT($LEXLIB)
+ elif test -f "$with_lex/libl.a"; then
+ LEXLIB="$with_lex/libl.a"
+ AC_MSG_RESULT($LEXLIB)
+ else
+ AC_ERROR(no)
+ fi
+fi
+
+AC_MSG_CHECKING(for libol)
if test "$with_libol" = ""; then
if test ! -x "`which libol-config`" ; then
bundled_libol_dir="`find $srcdir/libol-* -maxdepth 0 -type d 2>/dev/null`"
if test -n "$bundled_libol_dir"; then
- test -d $bundled_libol_dir || mkdir $bundled_libol_dir
- (cd $bundled_libol_dir; ./configure && make)
+ test -d $bundled_libol_dir || mkdir $bundled_libol_dir
with_libol=$bundled_libol_dir
+ AC_MSG_RESULT(Configuration required)
+
+ # Remove the single quotes from the configure args, and pass them to
+ # configure for libol
+ ac_configure_str=`echo $ac_configure_args | sed -e "s/'//g"`
+ (cd $bundled_libol_dir; ./configure $ac_configure_str)
else
AC_ERROR(Bundled libol not found)
fi
@@ -372,9 +395,12 @@ if test "$with_libol" = ""; then
LIBOL_CFLAGS=`libol-config --cflags`
LIBOL_LIBS=`libol-config --static-libs`
MAKE_CLASS="make_class"
+ AC_MSG_RESULT(ok)
fi
fi
+AC_MSG_CHECKING(libol version >= $LIBOL_REQ_MAJOR.$LIBOL_REQ_MINOR.$LIBOL_REQ_PATCH)
+
if test "$with_libol" != ""; then
if test ! -x $with_libol/libol-config; then
AC_ERROR(libol-config not found in the specified location)
@@ -386,7 +412,6 @@ if test "$with_libol" != ""; then
MAKE_CLASS="$with_libol/utils/make_class"
fi
-
LIBOL_VERSION=[`echo $LIBOL_VERSION | cut -d '+' -f 1`]
LIBOL_MAJOR=[`echo $LIBOL_VERSION | cut -d '.' -f 1`]
LIBOL_MINOR=[`echo $LIBOL_VERSION | cut -d '.' -f 2`]
More information about the syslog-ng
mailing list