Rework perl5 compiler and linker flags

This fixes perl on cygwin. Probably on other platforms too.
This commit is contained in:
William S Fulton 2013-05-03 19:39:11 +01:00
commit 5690323b8f
2 changed files with 37 additions and 10 deletions

View file

@ -24,7 +24,7 @@
TARGET =
CC = @CC@
CXX = @CXX@
CFLAGS = @PLATFLAGS@
CFLAGS = @BOOST_CPPFLAGS@ @PLATFLAGS@
prefix = @prefix@
exec_prefix= @exec_prefix@
SRCS =
@ -217,6 +217,9 @@ PERL5_INCLUDE= @PERL5EXT@
# Extra Perl specific dynamic linking options
PERL5_DLNK = @PERL5DYNAMICLINKING@
PERL5_CCFLAGS = @PERL5CCFLAGS@
PERL5_CCDLFLAGS = @PERL5CCDLFLAGS@
PERL5_CCCDLFLAGS = @PERL5CCCDLFLAGS@
PERL5_LDFLAGS = @PERL5LDFLAGS@
PERL = @PERL@
PERL5_LIB = -L$(PERL5_INCLUDE) -l@PERL5LIB@ @LIBS@ $(SYSLIBS)
PERL5_SCRIPT = $(RUNME).pl
@ -227,8 +230,8 @@ PERL5_SCRIPT = $(RUNME).pl
perl5: $(SRCS)
$(SWIG) -perl5 $(SWIGOPT) $(INTERFACEPATH)
$(CC) -c -Dbool=char $(CCSHARED) $(CFLAGS) $(SRCS) $(ISRCS) $(INCLUDES) $(PERL5_CCFLAGS) -I$(PERL5_INCLUDE)
$(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(PERL5_DLNK) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
$(CC) -c -Dbool=char $(CCSHARED) $(CFLAGS) $(SRCS) $(ISRCS) $(INCLUDES) $(PERL5_CCFLAGS) $(PERL5_CCCDLFLAGS) -I$(PERL5_INCLUDE)
$(LDSHARED) $(CFLAGS) $(PERL5_CCDLFLAGS) $(OBJS) $(IOBJS) $(PERL5_LDFLAGS) $(PERL5_DLNK) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
# ----------------------------------------------------------------
# Build a Perl5 dynamically loadable module (C++)
@ -236,8 +239,8 @@ perl5: $(SRCS)
perl5_cpp: $(SRCS)
$(SWIG) -perl5 -c++ $(SWIGOPT) $(INTERFACEPATH)
$(CXX) -c $(CCSHARED) $(CFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) $(PERL5_CCFLAGS) -I$(PERL5_INCLUDE)
$(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(PERL5_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
$(CXX) -c $(CCSHARED) $(CFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) $(PERL5_CCFLAGS) $(PERL5_CCCDLFLAGS) -I$(PERL5_INCLUDE)
$(CXXSHARED) $(CFLAGS) $(PERL5_CCDLFLAGS) $(OBJS) $(IOBJS) $(PERL5_LDFLAGS) $(PERL5_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
# ----------------------------------------------------------------
# Build a module from existing XS C source code. (ie. from xsubpp).

View file

@ -847,7 +847,7 @@ fi
AC_MSG_CHECKING(for Perl5 header files)
if test -n "$PERL"; then
PERL5DIR=`($PERL -e 'use Config; print $Config{archlib}, "\n";') 2>/dev/null`
if test "$PERL5DIR" != ""; then
if test -n "$PERL5DIR" ; then
dirs="$PERL5DIR $PERL5DIR/CORE"
PERL5EXT=none
for i in $dirs; do
@ -863,19 +863,40 @@ if test -n "$PERL"; then
fi
AC_MSG_CHECKING(for Perl5 library)
PERL5LIB=`($PERL -e 'use Config; $_=$Config{libperl}; s/^lib//; s/$Config{_a}$//; print $_, "\n"') 2>/dev/null`
if test "$PERL5LIB" = "" ; then
PERL5LIB=`($PERL -e 'use Config; $_=$Config{libperl}; s/^lib//; s/$Config{_a}$//; s/\.$Config{so}.*//; print $_, "\n"') 2>/dev/null`
if test -z "$PERL5LIB" ; then
AC_MSG_RESULT(not found)
else
AC_MSG_RESULT($PERL5LIB)
fi
AC_MSG_CHECKING(for Perl5 compiler options)
AC_MSG_CHECKING(for Perl5 ccflags)
PERL5CCFLAGS=`($PERL -e 'use Config; print $Config{ccflags}, "\n"' | sed "s/-Wdeclaration-after-statement//" | sed "s/-I/$ISYSTEM/") 2>/dev/null`
if test "$PERL5CCFLAGS" = "" ; then
if test -z "$PERL5CCFLAGS" ; then
AC_MSG_RESULT(not found)
else
AC_MSG_RESULT($PERL5CCFLAGS)
fi
AC_MSG_CHECKING(for Perl5 ccdlflags)
PERL5CCDLFLAGS=`($PERL -e 'use Config; print $Config{ccdlflags}, "\n"') 2>/dev/null`
if test -z "$PERL5CCDLFLAGS" ; then
AC_MSG_RESULT(not found)
else
AC_MSG_RESULT($PERL5CCDLFLAGS)
fi
AC_MSG_CHECKING(for Perl5 cccdlflags)
PERL5CCCDLFLAGS=`($PERL -e 'use Config; print $Config{cccdlflags}, "\n"') 2>/dev/null`
if test -z "$PERL5CCCDLFLAGS" ; then
AC_MSG_RESULT(not found)
else
AC_MSG_RESULT($PERL5CCCDLFLAGS)
fi
AC_MSG_CHECKING(for Perl5 ldflags)
PERL5LDFLAGS=`($PERL -e 'use Config; print $Config{ldflags}, "\n"') 2>/dev/null`
if test -z "$PERL5LDFLAGS" ; then
AC_MSG_RESULT(not found)
else
AC_MSG_RESULT($PERL5LDFLAGS)
fi
else
AC_MSG_RESULT(unable to determine perl5 configuration)
PERL5EXT=$PERL5DIR
@ -896,6 +917,9 @@ AC_SUBST(PERL5EXT)
AC_SUBST(PERL5DYNAMICLINKING)
AC_SUBST(PERL5LIB)
AC_SUBST(PERL5CCFLAGS)
AC_SUBST(PERL5CCDLFLAGS)
AC_SUBST(PERL5CCCDLFLAGS)
AC_SUBST(PERL5LDFLAGS)
#----------------------------------------------------------------
# Look for Octave