diff --git a/Makefile.am b/Makefile.am index 65bbd2ce..60ba738e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -26,7 +26,7 @@ SUBDIRS = lasso \ ABS_BUILDDIR = $(shell pwd) -EXTRA_DIST = COPYING lasso.pc.in +EXTRA_DIST = COPYING lasso.pc.in lasso-src-config.in pkgconfig_DATA = lasso.pc pkgconfigdir = $(libdir)/pkgconfig diff --git a/configure.ac b/configure.ac index efbb5de7..d818281a 100644 --- a/configure.ac +++ b/configure.ac @@ -719,6 +719,8 @@ lasso.pc win32/Makefile win32/nsis/Makefile ]) +AC_CONFIG_FILES([lasso-src-config], [chmod +x lasso-src-config]) + languages_available=`echo $languages_available | sed -e "s/^ //" ` AC_MSG_RESULT( diff --git a/lasso-src-config.in b/lasso-src-config.in new file mode 100644 index 00000000..07da6c30 --- /dev/null +++ b/lasso-src-config.in @@ -0,0 +1,93 @@ +#!/bin/sh +# +# $Id$ +# +# Copyright (C) 2002-2004 David Beckett - http://purl.org/net/dajobe/ +# Institute for Learning and Research Technology - http://www.ilrt.bris.ac.uk/ +# University of Bristol - http://www.bristol.ac.uk/ +# +# This package is Free Software or Open Source available under the +# following licenses (these are alternatives): +# 1. GNU Lesser General Public License (LGPL) +# 2. GNU General Public License (GPL) +# 3. Mozilla Public License (MPL) +# +# See LICENSE.html or LICENSE.txt at the top of this package for the +# full license terms. +# +# +# + +usage() +{ + cat<&2 +fi + + +while test $# -gt 0; do + case "$1" in + -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + case $1 in + --version) + echo @VERSION@ + exit 0 + ;; + --cflags) + echo_cflags=yes + ;; + --libs) + echo_libs=yes + ;; + --usage) + usage 0 1>&2 + ;; + --run) + lpath=@abs_top_builddir@/lasso/.libs + if test -d .libs; then + lpath=".libs:$lpath" + fi + if test `uname` = Darwin; then + DYLD_LIBRARY_PATH=$lpath:$DYLD_LIBRARY_PATH + export DYLD_LIBRARY_PATH + else + LD_LIBRARY_PATH=$lpath:$LD_LIBRARY_PATH + export LD_LIBRARY_PATH + fi + shift + exec ${1+"$@"} + ;; + + *) + usage 1 1>&2 + ;; + esac + + shift +done + +if test "$echo_cflags" = "yes"; then + echo -I@abs_top_srcdir@/lasso +fi +if test "$echo_libs" = "yes"; then + echo -L@abs_top_builddir@/lasso/.libs @LASSO_CORE_LIBS@ @LASSO_LIBS@ +fi diff --git a/perl/Makefile.PL b/perl/Makefile.PL index 2135cf2e..2d5a21f8 100644 --- a/perl/Makefile.PL +++ b/perl/Makefile.PL @@ -4,11 +4,36 @@ use ExtUtils::MakeMaker; $CFLAGS=$ENV{CFLAGS} || ""; +my $objects="lasso_wrap.o "; + +if(-r '../lasso-src-config') { + my $lasso_libs=`../lasso-src-config --libs`; + chomp $lasso_libs; + $objects .= $lasso_libs; +} + +my $includes="-I$TOP_SRCDIR/lasso"; +my $version=$ENV{VERSION}; + +# I'm forced to do this since BASEEXT is defined in a non-overridable method. +push(@ExtUtils::MakeMaker::Overridable, "init_main"); + +sub MY::init_main { + my($self)=@_; + package MY; # so that "SUPER" works right + $self->SUPER::init_main(); + + # Stop perl linking with anything in the destination dir, it might + # be entirely the wrong library such as a previous version. + $self->{LDFLAGS} =~ s/-L\S+//; + $self->{LDDLFLAGS} =~ s/-L\S+//; +} + + WriteMakefile( NAME => 'lasso', # Name of package - VERSION => '0.5.9', - LIBS => ['-llasso'], # Name of custom libraries - OBJECT => 'lasso_wrap.o', # Object files + VERSION => $version, + OBJECT => "$objects", AUTHOR => 'Frederic Peters ', MAKEFILE => 'Makefile.perl', DEFINE => "-DHAVE_CONFIG_H $CFLAGS", diff --git a/perl/Makefile.am b/perl/Makefile.am index 6d463001..ae725870 100644 --- a/perl/Makefile.am +++ b/perl/Makefile.am @@ -18,7 +18,7 @@ lasso_wrap.c lasso.pm: $(top_srcdir)/swig/Lasso.i $(top_srcdir)/swig/Lasso-wsf.i $(SWIG) -v -perl5 -module lasso -o lasso_wrap.c $(top_srcdir)/swig/Lasso.i $(PERL_MAKEFILE): $(srcdir)/Makefile.PL lasso.pm - VERSION=$(VERSION) LASSO_CONFIG=@LASSO_CONFIG@ CFLAGS="$(AM_CPPFLAGS) $(SWIG_OPTS) $(CPPFLAGS) $(AM_STANDARD_CFLAGS)" $(PERL) $(srcdir)/Makefile.PL $(MAKE_PL_OPTS) + VERSION=$(VERSION) CFLAGS="$(AM_CPPFLAGS) $(SWIG_OPTS) $(CPPFLAGS) $(AM_STANDARD_CFLAGS)" $(PERL) $(srcdir)/Makefile.PL $(MAKE_PL_OPTS) -perl install-perl: $(PERL_MAKEFILE) @target=`echo $@ | sed -e 's/-perl//'`; \