--- a/bootstrap.c +++ b/bootstrap.c @@ -11,7 +11,7 @@ #include "hstdinc.h" #include "hercules.h" #if defined(HDL_USE_LIBTOOL) -#include "ltdl.h" +#include #endif #if !defined( _MSVC_ ) --- a/configure.ac +++ b/configure.ac @@ -12,7 +12,7 @@ AC_REVISION($Revision$) # (the version of this configure.ac) AC_CONFIG_AUX_DIR(autoconf) # (directory containing auxillary build tools) AM_INIT_AUTOMAKE(hercules,3.13) # (the version of our software package) -AM_CONFIG_HEADER(config.h) # (the file the resulting configure script will produce) +AC_CONFIG_HEADERS(config.h) # (the file the resulting configure script will produce) AM_MAINTAINER_MODE() AC_CANONICAL_HOST() # (sets $host_cpu, $host_vendor, and $host_os) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) @@ -38,154 +38,8 @@ modexecdir='$(libdir)/$(PACKAGE)' AC_SUBST(modexecdir) - -# ----------------------------------------------------------------------------- -# -# AC_LIBTOOL_DLOPEN -# -# Enable checking for dlopen support. This macro should be used if the -# package makes use of the '-dlopen' and '-dlpreopen' flags, otherwise -# libtool will assume that the system does not support dlopening. The -# macro must be called before AC_PROG_LIBTOOL. -# -# ----------------------------------------------------------------------------- - -AC_LIBTOOL_DLOPEN() # (we need libtool's dlopen support) - - -# ----------------------------------------------------------------------------- -# -# AC_LIBTOOL_WIN32_DLL -# -# This macro should be used if the package has been ported to build -# clean dlls on win32 platforms. Usually this means that any library -# data items are exported with __declspec(dllexport) and imported with -# __declspec(dllimport). If this macro is not used, libtool will assume -# that the package libraries are not dll clean and will build only static -# libraries on win32 hosts. -# -# This macro must be called before AC_PROG_LIBTOOL, and provision must -# be made to pass '-no-undefined' to libtool in link mode from the package -# Makefile. Naturally, if you pass '-no-undefined', you must ensure that -# all the library symbols really are defined at link time! -# -# ----------------------------------------------------------------------------- - -AC_LIBTOOL_WIN32_DLL() # (we need Win32 support in libtool) - - -# ----------------------------------------------------------------------------- -# See: 'AC_PROG_LIBTOOL' below. -# ----------------------------------------------------------------------------- - -AC_DISABLE_STATIC() # (forces libtool to build shared - - # libraries instead of static ones) -# ----------------------------------------------------------------------------- -# AC_PROG_LIBTOOL -# -# Add support for the '--enable-shared' and '--disable-shared' -# configure flags. By default, this macro turns on shared libraries -# if they are available, and also enables static libraries if they -# don't conflict with the shared libraries. You can modify these -# defaults by calling either the AC_DISABLE_SHARED or AC_DISABLE_STATIC -# macros. -# -# Hercules REQUIRES shared libraries (i.e. DLLs), so we do indeed use -# the AC_DISABLE_STATIC macro above. -# -# ----------------------------------------------------------------------------- - -AC_PROG_LIBTOOL() # (we build libtool for ourselves) - - -# ----------------------------------------------------------------------------- -# -# AC_LIB_LTDL -# -# Even though libltdl is installed together with libtool, you may wish -# to include libltdl in the distribution of your package, for the convenience -# of users of your package that don't have libtool or libltdl installed. -# -# The most simplistic way to add libltdl to your package is to copy the -# source files, 'ltdl.c' and 'ltdl.h', to a source directory withing your -# package and to build and link them along with the rest of your sources. -# -# To do this, you must add a call to the 'AC_LIB_LTDL' macro to your package's -# 'configure.in' to perform the required configure time checks in order that -# 'ltdl.o' is built correctly. -# -# This method does have its problems though: if you try to link the package -# binaries with an installed libltdl, or a library which depends on libltdl, -# you may have problems with duplicate symbol definitions. -# -# In order to enable this flavor of libltdl, you should add the line -# 'AC_LIBLTDL_CONVENIENCE' to your `configure.in', before 'AC_PROG_LIBTOOL'. -# -# In order to select the installable version of libltdl, you should add a -# call of the macro 'AC_LIBLTDL_INSTALLABLE' to your 'configure.in' before -# 'AC_PROG_LIBTOOL'. This macro will check whether libltdl is already -# installed and, if not, request the libltdl embedded in your package to be -# built and installed. -# -# Whatever macro you use, it is up to you to ensure that your 'configure.in' -# will configure libltdl, using 'AC_CONFIG_SUBDIRS', and that your 'Makefile's -# will start sub-makes within libltdl's directory, using automake's SUBDIRS, -# for example. Both macros define the shell variables LIBLTDL, to the link flag -# that you should use to link with libltdl, and LTDLINCL, to the preprocessor -# flag that you should use to compile with programs that include 'ltdl.h'. It -# is up to you to use 'AC_SUBST' to ensure that this variable will be available -# in 'Makefile's, or add them to variables that are 'AC_SUBST'ed by default, -# such as LIBS and CPPFLAGS. -# -# So, when you want to link a program with libltdl, be it a convenience, -# installed or installable library, just compile with '$(LTDLINCL)' and link -# it with '$(LIBLTDL)', using libtool. -# -# You should probably also add 'AC_LIBTOOL_DLOPEN' to your 'configure.in' before -# 'AC_PROG_LIBTOOL', otherwise libtool will assume no dlopening mechanism is -# supported, and revert to dlpreopening, which is probably not what you want. -# -# The following example shows you how to embed the convenience libltdl -# in your package. In order to use the installable variant just replace -# 'AC_LIBLTDL_CONVENIENCE' with 'AC_LIBLTDL_INSTALLABLE'. We assume that libltdl -# was embedded using 'libtoolize --ltdl': -# -# configure.in: -# -# ... -# dnl Enable building of the convenience library -# dnl and set LIBLTDL accordingly -# AC_LIBLTDL_CONVENIENCE -# dnl Substitute LTDLINCL and LIBLTDL in the Makefiles -# AC_SUBST(LTDLINCL) -# AC_SUBST(LIBLTDL) -# dnl Check for dlopen support -# AC_LIBTOOL_DLOPEN -# dnl Configure libtool -# AC_PROG_LIBTOOL -# dnl Configure libltdl -# AC_CONFIG_SUBDIRS(libltdl) -# ... -# -# Makefile.am: -# -# ... -# SUBDIRS = libltdl -# -# INCLUDES = $(LTDLINCL) -# -# myprog_LDFLAGS = -export-dynamic -# # The quotes around -dlopen below fool automake <= 1.4 into accepting it -# myprog_LDADD = $(LIBLTDL) "-dlopen" self "-dlopen" foo1.la -# myprog_DEPENDENCIES = $(LIBLTDL) foo1.la -# ... -# -# ----------------------------------------------------------------------------- - -AC_LIB_LTDL() # (we need the ltdl libtool library) -AC_SUBST([LIBTOOL_DEPS]) # (see PROGRAMMING NOTE above) - +LT_PREREQ([2.2.6]) +LT_INIT([dlopen win32-dll disable-static]) # ----------------------------------------------------------------------------- # (See comments in the 'AC_CHECK_LIB' Libraries section further below) --- a/crypto/Makefile.am +++ b/crypto/Makefile.am @@ -23,7 +23,6 @@ if OPTION_DYNAMIC_LOAD DYNSRC = - LTDL = ../ltdl.c DYNMOD_LD_FLAGS = -module \ -no-undefined \ @@ -31,7 +30,7 @@ -export-dynamic \ -avoid-version - DYNMOD_LD_ADD = $(LDADD) + DYNMOD_LD_ADD = $(LDADD) -lltdl LIB_LD_FLAGS = -export-dynamic \ $(XSTATIC) \ @@ -39,7 +38,6 @@ -avoid-version else DYNSRC = $(dyndev_SRC) - LTDL = DYNMOD_LD_FLAGS = DYNMOD_LD_ADD = LIB_LD_FLAGS = $(XSTATIC) \ --- a/decNumber/Makefile.am +++ b/decNumber/Makefile.am @@ -37,13 +37,13 @@ endif if OPTION_DYNAMIC_LOAD - LTDL = ../ltdl.c + LIB_LD_ADD = -lltdl LIB_LD_FLAGS = -export-dynamic \ $(XSTATIC) \ -no-undefined \ -avoid-version else - LTDL = + LIB_LD_ADD = LIB_LD_FLAGS = $(XSTATIC) \ -no-undefined \ -avoid-version @@ -56,7 +56,7 @@ libdecNumber_la_SOURCES = $(decNumber_SRC) libdecNumber_la_LDFLAGS = $(LIB_LD_FLAGS) - libdecNumber_la_LIBADD = $(LDADD) + libdecNumber_la_LIBADD = $(LDADD) $(LIB_LD_ADD) noinst_HEADERS = decContext.h \ decDPD.h \ --- a/fillfnam.c +++ b/fillfnam.c @@ -5,6 +5,8 @@ #include "hercules.h" #include "fillfnam.h" +#include + /* On Solaris 2.9 (SunOS 5.9) and earlier, there is no scandir and alphasort function. In this case fillfnam does nothing and the tab command is effectively a no-operation */ --- a/herclin.c +++ b/herclin.c @@ -26,7 +26,7 @@ /* This must be included if HDL uses the */ /* libtool ltdl convenience library */ -#include "ltdl.h" +#include #endif --- a/Makefile.am +++ b/Makefile.am @@ -98,7 +98,7 @@ if OPTION_DYNAMIC_LOAD DYNSRC = - LTDL = ltdl.c + LIB_LD_ADD = -lltdl DYNMOD_LD_FLAGS = -module \ -no-undefined \ @@ -109,7 +109,8 @@ DYNMOD_LD_ADD = libherc.la \ libhercs.la \ libhercu.la \ - $(LDADD) + $(LDADD) \ + $(LIB_LD_ADD) LIB_LD_FLAGS = -export-dynamic \ $(XSTATIC) \ @@ -117,7 +118,6 @@ -avoid-version else DYNSRC = $(dyndev_SRC) - LTDL = DYNMOD_LD_FLAGS = DYNMOD_LD_ADD = LIB_LD_FLAGS = $(XSTATIC) \ @@ -295,12 +295,11 @@ memrchr.c \ parser.c \ pttrace.c \ - $(FTHREADS) \ - $(LTDL) + $(FTHREADS) libhercu_la_LDFLAGS = $(LIB_LD_FLAGS) - libhercu_la_LIBADD = $(LDADD) libhercs.la + libhercu_la_LIBADD = $(LDADD) libhercs.la $(LIB_LD_ADD) # # Core Hercules (shared) library @@ -372,8 +371,7 @@ memrchr.c \ $(dynamic_SRC) \ $(extra_SRC) \ - $(dyndev_SRC) \ - ltdl.c + $(dyndev_SRC) libherc_la_LDFLAGS = $(LIB_LD_FLAGS) @@ -383,7 +381,8 @@ libhercd.la \ decNumber/libdecNumber.la \ softfloat/libsoftfloat.la \ - $(LDADD) + $(LDADD) \ + $(LIB_LD_ADD) # # THIS is the hercules executable. @@ -440,7 +439,7 @@ hercules_SOURCES = bootstrap.c \ hdlmain.c - hercules_LDADD = libherc.la libhercs.la $(LDADD) + hercules_LDADD = libherc.la libhercs.la $(LDADD) $(LIB_LD_ADD) hercules_LDFLAGS = $(HLDFLAGS) @@ -656,7 +655,6 @@ hdl.h \ crypto.h \ sockdev.h \ - ltdl.h \ herc_getopt.h \ service.h \ chsc.h \ --- a/softfloat/Makefile.am +++ b/softfloat/Makefile.am @@ -22,13 +22,11 @@ endif if OPTION_DYNAMIC_LOAD - LTDL = ../ltdl.c LIB_LD_FLAGS = -export-dynamic \ $(XSTATIC) \ -no-undefined \ -avoid-version else - LTDL = LIB_LD_FLAGS = $(XSTATIC) \ -no-undefined \ -avoid-version --- a/autoconf/hercules.m4 +++ b/autoconf/hercules.m4 @@ -270,7 +270,7 @@ else - if test $(./libtool --features | fgrep "enable shared libraries" | wc -l) -ne 1; then + if test "$enable_shared" != "yes"; then # Libtool doesn't support shared libraries, # and thus our wrapper kludge is not needed. @@ -280,11 +280,11 @@ } DUPGETOPT2 - ./libtool --mode=compile ${CC-cc} conftest1.c -c -o conftest1.lo > /dev/null 2>&1 - ./libtool --mode=compile ${CC-cc} conftest2.c -c -o conftest2.lo > /dev/null 2>&1 + libtool --mode=compile ${CC-cc} conftest1.c -c -o conftest1.lo > /dev/null 2>&1 + libtool --mode=compile ${CC-cc} conftest2.c -c -o conftest2.lo > /dev/null 2>&1 - ./libtool --mode=link ${CC-cc} -shared -rpath /lib -no-undefined conftest1.lo -o libconftest1.la > /dev/null 2>&1 - ./libtool --mode=link ${CC-cc} -shared -rpath /lib -no-undefined conftest2.lo libconftest1.la -o libconftest2.la > /dev/null 2>&1 + libtool --mode=link ${CC-cc} -shared -rpath /lib -no-undefined conftest1.lo -o libconftest1.la > /dev/null 2>&1 + libtool --mode=link ${CC-cc} -shared -rpath /lib -no-undefined conftest2.lo libconftest1.la -o libconftest2.la > /dev/null 2>&1 if test $? = 0; then