diff options
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 61 |
1 files changed, 41 insertions, 20 deletions
diff --git a/configure.in b/configure.in index b66c4fcd..354cfb4b 100644 --- a/configure.in +++ b/configure.in @@ -223,34 +223,49 @@ else fi AC_PATH_PROG(sedpath, sed) -if test "$want_perl" = yes; then +if test "$want_perl" = "yes"; then AC_PATH_PROG(perlpath, perl) AC_MSG_CHECKING(for Perl compile flags) PERL_CFLAGS=`$perlpath -MExtUtils::Embed -e ccopts 2>/dev/null` if test "x$PERL_CFLAGS" = "x"; then - AC_MSG_RESULT([not found, building without perl.]) + AC_MSG_RESULT([not found, building without Perl.]) want_perl=no else - PERL_LDFLAGS=`$perlpath -MExtUtils::Embed -e ldopts |$sedpath 's/-lgdbm //'` - PERL_LDFLAGS=`echo $PERL_LDFLAGS |$sedpath 's/-ldb //'` - PERL_LDFLAGS=`echo $PERL_LDFLAGS |$sedpath 's/-lndbm //'` - if test "$system" = "Linux"; then - PERL_LDFLAGS=`echo $PERL_LDFLAGS |$sedpath 's/-lnsl //'` - PERL_LDFLAGS=`echo $PERL_LDFLAGS |$sedpath 's/-lposix //'` + PERL_LDFLAGS="`$perlpath -MExtUtils::Embed -e ldopts` " + + dnl * dynaloader.a -> libperl_dynaloader.la + dynaloader=`echo $PERL_LDFLAGS | $sedpath 's/.* \([[^ ]]*\.a\).*/\1/'` + PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath 's/ [[^ ]]*\.a/ libperl_dynaloader.la/'` + + dnl * remove all database stuffs + PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath 's/-ldb //'` + PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath 's/-ldbm //'` + PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath 's/-lndbm //'` + PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath 's/-lgdbm //'` + dnl * nsl is already in ldflags + PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath 's/-lnsl //'` + + dnl * linux specific .. + if echo $host_os | grep -q linux; then + PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath 's/-lposix //'` fi - PERL_LDFLAGS=`echo $PERL_LDFLAGS |$sedpath 's/-lc //'` - AC_MSG_RESULT(ok) - AC_SUBST(PERL_CFLAGS) - AC_SUBST(PERL_LDFLAGS) - AC_SUBST(PERL_LIB_DIR) - AC_DEFINE(HAVE_PERL) - fi + dnl * libc is of course in list already + PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath 's/-lc //'` + dnl * must not be in LIBADD line + PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath 's/-rdynamic //'` + + if test "x$dynaloader" = "x"; then + AC_MSG_RESULT([error parsing ldopts, building without Perl.]) + want_perl=no + else + AC_MSG_RESULT(ok) - dnl ** building from objdir.. - if test ! -d plugins/perl/xs; then - mkdir -p plugins/perl/xs + AC_SUBST(PERL_CFLAGS) + AC_SUBST(PERL_LDFLAGS) + AC_SUBST(PERL_LIB_DIR) + fi fi fi @@ -312,7 +327,7 @@ for c in $CHAT_MODULES; do echo "void ${c}_core_init(void); void ${c}_core_deinit(void);" >> $file if test "x$module_inits" != "x"; then echo "$module_inits" | $sedpath -e 's/()/(void)/g' -e 's/ /void /g' >> $file - echo "$module_deinits" | $sedpath -e 's/[ ]*$//' -e 's/()/(void)/g' -e 's/ /void /g' -e 's/^/void /' >> $file + echo "$module_deinits" | $sedpath -e 's/ *$//' -e 's/()/(void)/g' -e 's/ /void /g' -e 's/^/void /' >> $file fi echo "void ${c}_init(void) { ${c}_core_init(); $module_inits }" >> $file echo "void ${c}_deinit(void) { $module_deinits ${c}_core_deinit(); }" >> $file @@ -322,7 +337,7 @@ for c in $CHAT_MODULES; do echo "/* this file is automatically generated by configure - don't change */" > $file if test "x$fe_module_inits" != "x"; then echo "$fe_module_inits" | $sedpath -e 's/()/(void)/g' -e 's/ /void /g' >> $file - echo "$fe_module_deinits" | $sedpath -e 's/[ ]*$//' -e 's/()/(void)/g' -e 's/ /void /g' -e 's/^/void /' >> $file + echo "$fe_module_deinits" | $sedpath -e 's/ *$//' -e 's/()/(void)/g' -e 's/ /void /g' -e 's/^/void /' >> $file fi echo "void fe_${c}_modules_init(void) { $fe_module_inits }" >> $file echo "void fe_${c}_modules_deinit(void) { $fe_module_deinits }" >> $file @@ -408,6 +423,12 @@ if test "x$want_perl" = "xyes"; then ln -sf $file `echo $file|sed "s?$whole_dir/??"` done fi + if test ! -d src/perl/.libs; then + mkdir -p src/perl/.libs + fi + if test ! -L src/perl/.libs/DynaLoader.a; then + ln -s $dynaloader src/perl/.libs/DynaLoader.a + fi fi echo |