diff --git a/libgm2/configure b/libgm2/configure index 889c0926a15..8404b0e6e6d 100755 --- a/libgm2/configure +++ b/libgm2/configure @@ -634,6 +634,8 @@ ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS +TARGET_DARWIN_FALSE +TARGET_DARWIN_TRUE BUILD_LOGLIB_FALSE BUILD_LOGLIB_TRUE BUILD_CORLIB_FALSE @@ -12698,7 +12700,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12701 "configure" +#line 12703 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12804,7 +12806,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12807 "configure" +#line 12809 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -19508,7 +19510,7 @@ $as_echo "$as_me: libgm2 has finished checking target libc and libm contents." > # All known M2_HOST_OS values. This is the union of all host operating systems # supported by gm2. -M2_SUPPORTED_HOST_OS="aix freebsd hurd linux netbsd openbsd solaris windows" +M2_SUPPORTED_HOST_OS="aix freebsd hurd linux netbsd openbsd solaris windows darwin" M2_HOST_OS=unknown @@ -19523,6 +19525,19 @@ case ${host} in *-*-gnu*) M2_HOST_OS=hurd ;; esac +M2_TARGET_OS=unknown + +case ${target} in + *-*-darwin*) M2_TARGET_OS=darwin ;; + *-*-freebsd*) M2_TARGET_OS=freebsd ;; + *-*-linux*) M2_TARGET_OS=linux ;; + *-*-netbsd*) M2_TARGET_OS=netbsd ;; + *-*-openbsd*) M2_TARGET_OS=openbsd ;; + *-*-solaris2*) M2_TARGET_OS=solaris ;; + *-*-aix*) M2_TARGET_OS=aix ;; + *-*-gnu*) M2_TARGET_OS=hurd ;; +esac + # M2_HOST_OS=unknown if test x${M2_HOST_OS} = xunknown; then { $as_echo "$as_me:${as_lineno-$LINENO}: unsupported host, will build a minimal m2 library" >&5 @@ -19672,6 +19687,14 @@ else BUILD_LOGLIB_FALSE= fi + if test x$M2_TARGET_OS = xdarwin; then + TARGET_DARWIN_TRUE= + TARGET_DARWIN_FALSE='#' +else + TARGET_DARWIN_TRUE='#' + TARGET_DARWIN_FALSE= +fi + ac_config_files="$ac_config_files Makefile libm2min/Makefile libm2pim/Makefile libm2iso/Makefile libm2cor/Makefile libm2log/Makefile" @@ -19841,6 +19864,10 @@ if test -z "${BUILD_LOGLIB_TRUE}" && test -z "${BUILD_LOGLIB_FALSE}"; then as_fn_error $? "conditional \"BUILD_LOGLIB\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${TARGET_DARWIN_TRUE}" && test -z "${TARGET_DARWIN_FALSE}"; then + as_fn_error $? "conditional \"TARGET_DARWIN\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 diff --git a/libgm2/configure.ac b/libgm2/configure.ac index 8f069adb29e..0465b7c1caf 100644 --- a/libgm2/configure.ac +++ b/libgm2/configure.ac @@ -267,7 +267,7 @@ AC_MSG_NOTICE([libgm2 has finished checking target libc and libm contents.]) # All known M2_HOST_OS values. This is the union of all host operating systems # supported by gm2. -M2_SUPPORTED_HOST_OS="aix freebsd hurd linux netbsd openbsd solaris windows" +M2_SUPPORTED_HOST_OS="aix freebsd hurd linux netbsd openbsd solaris windows darwin" M2_HOST_OS=unknown @@ -282,6 +282,19 @@ case ${host} in *-*-gnu*) M2_HOST_OS=hurd ;; esac +M2_TARGET_OS=unknown + +case ${target} in + *-*-darwin*) M2_TARGET_OS=darwin ;; + *-*-freebsd*) M2_TARGET_OS=freebsd ;; + *-*-linux*) M2_TARGET_OS=linux ;; + *-*-netbsd*) M2_TARGET_OS=netbsd ;; + *-*-openbsd*) M2_TARGET_OS=openbsd ;; + *-*-solaris2*) M2_TARGET_OS=solaris ;; + *-*-aix*) M2_TARGET_OS=aix ;; + *-*-gnu*) M2_TARGET_OS=hurd ;; +esac + # M2_HOST_OS=unknown if test x${M2_HOST_OS} = xunknown; then AC_MSG_NOTICE([unsupported host, will build a minimal m2 library]) @@ -366,6 +379,7 @@ AM_CONDITIONAL([BUILD_PIMLIB], [test x$BUILD_PIMLIB = xtrue]) AM_CONDITIONAL([BUILD_ISOLIB], [test x$BUILD_ISOLIB = xtrue]) AM_CONDITIONAL([BUILD_CORLIB], [test x$BUILD_CORLIB = xtrue]) AM_CONDITIONAL([BUILD_LOGLIB], [test x$BUILD_LOGLIB = xtrue]) +AM_CONDITIONAL([TARGET_DARWIN], [test x$M2_TARGET_OS = xdarwin]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_FILES([Makefile libm2min/Makefile libm2pim/Makefile libm2iso/Makefile diff --git a/libgm2/libm2cor/Makefile.am b/libgm2/libm2cor/Makefile.am index 781955bffc8..076ac08cc30 100644 --- a/libgm2/libm2cor/Makefile.am +++ b/libgm2/libm2cor/Makefile.am @@ -114,7 +114,12 @@ libm2cordir = libm2cor libm2cor_la_DEPENDENCIES = SYSTEM.def $(addsuffix .lo, $(basename $(libm2cor_la_SOURCES))) libm2cor_la_CFLAGS = -I. -I.. -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -DBUILD_GM2_LIBS -I@srcdir@/../ -I@srcdir@/../libm2iso libm2cor_la_M2FLAGS = -I. -I$(GM2_SRC)/gm2-libs-coroutines -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -fm2-g -g -libm2cor_la_LINK = $(LINK) -version-info $(libtool_VERSION) +if TARGET_DARWIN +libm2cor_la_link_flags = -Wl,-undefined,dynamic_lookup +else +libm2cor_la_link_flags = +endif +libm2cor_la_LINK = $(LINK) -version-info $(libtool_VERSION) $(libm2cor_la_link_flags) BUILT_SOURCES = SYSTEM.def CLEANFILES = SYSTEM.def diff --git a/libgm2/libm2cor/Makefile.in b/libgm2/libm2cor/Makefile.in index 6d921cd329d..cef367e008f 100644 --- a/libgm2/libm2cor/Makefile.in +++ b/libgm2/libm2cor/Makefile.in @@ -463,7 +463,9 @@ FLAGS_TO_PASS = $(AM_MAKEFLAGS) @BUILD_CORLIB_TRUE@libm2cor_la_DEPENDENCIES = SYSTEM.def $(addsuffix .lo, $(basename $(libm2cor_la_SOURCES))) @BUILD_CORLIB_TRUE@libm2cor_la_CFLAGS = -I. -I.. -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -DBUILD_GM2_LIBS -I@srcdir@/../ -I@srcdir@/../libm2iso @BUILD_CORLIB_TRUE@libm2cor_la_M2FLAGS = -I. -I$(GM2_SRC)/gm2-libs-coroutines -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -fm2-g -g -@BUILD_CORLIB_TRUE@libm2cor_la_LINK = $(LINK) -version-info $(libtool_VERSION) +@BUILD_CORLIB_TRUE@@TARGET_DARWIN_FALSE@libm2cor_la_link_flags = +@BUILD_CORLIB_TRUE@@TARGET_DARWIN_TRUE@libm2cor_la_link_flags = -Wl,-undefined,dynamic_lookup +@BUILD_CORLIB_TRUE@libm2cor_la_LINK = $(LINK) -version-info $(libtool_VERSION) $(libm2cor_la_link_flags) @BUILD_CORLIB_TRUE@BUILT_SOURCES = SYSTEM.def @BUILD_CORLIB_TRUE@CLEANFILES = SYSTEM.def @BUILD_CORLIB_TRUE@M2LIBDIR = /m2/m2cor/ diff --git a/libgm2/libm2iso/Makefile.am b/libgm2/libm2iso/Makefile.am index dc547207e79..fc0e4f5bd1a 100644 --- a/libgm2/libm2iso/Makefile.am +++ b/libgm2/libm2iso/Makefile.am @@ -187,7 +187,12 @@ libm2isodir = libm2iso libm2iso_la_DEPENDENCIES = SYSTEM.def $(addsuffix .lo, $(basename $(libm2iso_la_SOURCES))) libm2iso_la_CFLAGS = $(C_INCLUDES) -I. -I.. -I$(GM2_SRC)/gm2-libs-iso -I$(GM2_SRC)/gm2-libs -DBUILD_GM2_LIBS -I@srcdir@/../ -I../../../gcc -I$(GCC_DIR) -I$(GCC_DIR)/../include -I../../libgcc -I$(GCC_DIR)/../libgcc -I$(MULTIBUILDTOP)../../gcc/include libm2iso_la_M2FLAGS = -I. -Ilibm2iso -I$(GM2_SRC)/gm2-libs-iso -I$(GM2_SRC)/gm2-libs -fiso -fextended-opaque -fm2-g -g -libm2iso_la_LINK = $(LINK) -version-info $(libtool_VERSION) +if TARGET_DARWIN +libm2iso_la_link_flags = -Wl,-undefined,dynamic_lookup +else +libm2iso_la_link_flags = +endif +libm2iso_la_LINK = $(LINK) -version-info $(libtool_VERSION) $(libm2iso_la_link_flags) CLEANFILES = SYSTEM.def BUILT_SOURCES = SYSTEM.def diff --git a/libgm2/libm2iso/Makefile.in b/libgm2/libm2iso/Makefile.in index 04aba0f032b..e628dd33631 100644 --- a/libgm2/libm2iso/Makefile.in +++ b/libgm2/libm2iso/Makefile.in @@ -563,7 +563,9 @@ FLAGS_TO_PASS = $(AM_MAKEFLAGS) @BUILD_ISOLIB_TRUE@libm2iso_la_DEPENDENCIES = SYSTEM.def $(addsuffix .lo, $(basename $(libm2iso_la_SOURCES))) @BUILD_ISOLIB_TRUE@libm2iso_la_CFLAGS = $(C_INCLUDES) -I. -I.. -I$(GM2_SRC)/gm2-libs-iso -I$(GM2_SRC)/gm2-libs -DBUILD_GM2_LIBS -I@srcdir@/../ -I../../../gcc -I$(GCC_DIR) -I$(GCC_DIR)/../include -I../../libgcc -I$(GCC_DIR)/../libgcc -I$(MULTIBUILDTOP)../../gcc/include @BUILD_ISOLIB_TRUE@libm2iso_la_M2FLAGS = -I. -Ilibm2iso -I$(GM2_SRC)/gm2-libs-iso -I$(GM2_SRC)/gm2-libs -fiso -fextended-opaque -fm2-g -g -@BUILD_ISOLIB_TRUE@libm2iso_la_LINK = $(LINK) -version-info $(libtool_VERSION) +@BUILD_ISOLIB_TRUE@@TARGET_DARWIN_FALSE@libm2iso_la_link_flags = +@BUILD_ISOLIB_TRUE@@TARGET_DARWIN_TRUE@libm2iso_la_link_flags = -Wl,-undefined,dynamic_lookup +@BUILD_ISOLIB_TRUE@libm2iso_la_LINK = $(LINK) -version-info $(libtool_VERSION) $(libm2iso_la_link_flags) @BUILD_ISOLIB_TRUE@CLEANFILES = SYSTEM.def @BUILD_ISOLIB_TRUE@BUILT_SOURCES = SYSTEM.def @BUILD_ISOLIB_TRUE@M2LIBDIR = /m2/m2iso/ diff --git a/libgm2/libm2log/Makefile.am b/libgm2/libm2log/Makefile.am index 728a179a5fd..f8261b9dc5a 100644 --- a/libgm2/libm2log/Makefile.am +++ b/libgm2/libm2log/Makefile.am @@ -132,7 +132,12 @@ libm2log_la_SOURCES = $(M2MODS) Break.c libm2log_la_DEPENDENCIES = ../libm2pim/SYSTEM.def $(addsuffix .lo, $(basename $(libm2log_la_SOURCES))) libm2log_la_CFLAGS = -I. -DBUILD_GM2_LIBS -I@srcdir@/../ libm2log_la_M2FLAGS = -I../libm2pim -I$(GM2_SRC)/gm2-libs-pim -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -libm2log_la_LINK = $(LINK) -version-info $(libtool_VERSION) +if TARGET_DARWIN +libm2log_la_link_flags = -Wl,-undefined,dynamic_lookup +else +libm2log_la_link_flags = +endif +libm2log_la_LINK = $(LINK) -version-info $(libtool_VERSION) $(libm2log_la_link_flags) BUILT_SOURCES = ../libm2pim/SYSTEM.def M2LIBDIR = /m2/m2log/ diff --git a/libgm2/libm2log/Makefile.in b/libgm2/libm2log/Makefile.in index be8a59d2a56..15e0a5fc2c6 100644 --- a/libgm2/libm2log/Makefile.in +++ b/libgm2/libm2log/Makefile.in @@ -471,7 +471,9 @@ FLAGS_TO_PASS = $(AM_MAKEFLAGS) @BUILD_LOGLIB_TRUE@libm2log_la_DEPENDENCIES = ../libm2pim/SYSTEM.def $(addsuffix .lo, $(basename $(libm2log_la_SOURCES))) @BUILD_LOGLIB_TRUE@libm2log_la_CFLAGS = -I. -DBUILD_GM2_LIBS -I@srcdir@/../ @BUILD_LOGLIB_TRUE@libm2log_la_M2FLAGS = -I../libm2pim -I$(GM2_SRC)/gm2-libs-pim -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -@BUILD_LOGLIB_TRUE@libm2log_la_LINK = $(LINK) -version-info $(libtool_VERSION) +@BUILD_LOGLIB_TRUE@@TARGET_DARWIN_FALSE@libm2log_la_link_flags = +@BUILD_LOGLIB_TRUE@@TARGET_DARWIN_TRUE@libm2log_la_link_flags = -Wl,-undefined,dynamic_lookup +@BUILD_LOGLIB_TRUE@libm2log_la_LINK = $(LINK) -version-info $(libtool_VERSION) $(libm2log_la_link_flags) @BUILD_LOGLIB_TRUE@BUILT_SOURCES = ../libm2pim/SYSTEM.def @BUILD_LOGLIB_TRUE@M2LIBDIR = /m2/m2log/ all: $(BUILT_SOURCES) diff --git a/libgm2/libm2min/Makefile.am b/libgm2/libm2min/Makefile.am index 667cca6f0aa..4d7726662e7 100644 --- a/libgm2/libm2min/Makefile.am +++ b/libgm2/libm2min/Makefile.am @@ -106,7 +106,12 @@ libm2min_la_DEPENDENCIES = SYSTEM.def $(addsuffix .lo, $(basename $(libm2min_la_ libm2min_la_CFLAGS = -I. -I$(GM2_SRC)/gm2-libs-min -I$(GM2_SRC)/gm2-libs libm2min_la_M2FLAGS = -I. -I$(GM2_SRC)/gm2-libs-min -I$(GM2_SRC)/gm2-libs -fno-exceptions \ -fno-m2-plugin -fno-scaffold-dynamic -fno-scaffold-main -libm2min_la_LINK = $(LINK) -version-info $(libtool_VERSION) +if TARGET_DARWIN +libm2min_la_link_flags = -Wl,-undefined,dynamic_lookup +else +libm2min_la_link_flags = +endif +libm2min_la_LINK = $(LINK) -version-info $(libtool_VERSION) $(libm2min_la_link_flags) BUILT_SOURCES = SYSTEM.def CLEANFILES = SYSTEM.def diff --git a/libgm2/libm2min/Makefile.in b/libgm2/libm2min/Makefile.in index 8210c2e2fa9..f8319959988 100644 --- a/libgm2/libm2min/Makefile.in +++ b/libgm2/libm2min/Makefile.in @@ -439,7 +439,9 @@ libm2min_la_CFLAGS = -I. -I$(GM2_SRC)/gm2-libs-min -I$(GM2_SRC)/gm2-libs libm2min_la_M2FLAGS = -I. -I$(GM2_SRC)/gm2-libs-min -I$(GM2_SRC)/gm2-libs -fno-exceptions \ -fno-m2-plugin -fno-scaffold-dynamic -fno-scaffold-main -libm2min_la_LINK = $(LINK) -version-info $(libtool_VERSION) +@TARGET_DARWIN_FALSE@libm2min_la_link_flags = +@TARGET_DARWIN_TRUE@libm2min_la_link_flags = -Wl,-undefined,dynamic_lookup +libm2min_la_LINK = $(LINK) -version-info $(libtool_VERSION) $(libm2min_la_link_flags) BUILT_SOURCES = SYSTEM.def CLEANFILES = SYSTEM.def M2LIBDIR = /m2/m2min/ diff --git a/libgm2/libm2pim/Makefile.am b/libgm2/libm2pim/Makefile.am index aa5904bb04e..98c9ca14579 100644 --- a/libgm2/libm2pim/Makefile.am +++ b/libgm2/libm2pim/Makefile.am @@ -33,7 +33,6 @@ slibdir = @slibdir@ toolexeclibdir=@toolexeclibdir@ toolexecdir=@toolexecdir@ -GM2_FOR_TARGET=@GM2_FOR_TARGET@ MULTIDIR := $(shell $(CC) $(CFLAGS) -print-multi-directory) MULTIOSDIR := $(shell $(CC) $(CFLAGS) -print-multi-os-directory) @@ -168,7 +167,12 @@ libm2pimdir = libm2pim libm2pim_la_DEPENDENCIES = SYSTEM.def $(addsuffix .lo, $(basename $(libm2pim_la_SOURCES))) libm2pim_la_CFLAGS = -I. -I.. -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -DBUILD_GM2_LIBS -I@srcdir@/../ -I@srcdir@/../libm2iso libm2pim_la_M2FLAGS = -I. -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -fm2-g -g -libm2pim_la_LINK = $(LINK) -version-info $(libtool_VERSION) +if TARGET_DARWIN +libm2pim_la_link_flags = -Wl,-undefined,dynamic_lookup +else +libm2pim_la_link_flags = +endif +libm2pim_la_LINK = $(LINK) -version-info $(libtool_VERSION) $(libm2pim_la_link_flags) BUILT_SOURCES = SYSTEM.def CLEANFILES = SYSTEM.def diff --git a/libgm2/libm2pim/Makefile.in b/libgm2/libm2pim/Makefile.in index ed14837c0a4..ab05ca9fb49 100644 --- a/libgm2/libm2pim/Makefile.in +++ b/libgm2/libm2pim/Makefile.in @@ -534,7 +534,9 @@ FLAGS_TO_PASS = $(AM_MAKEFLAGS) @BUILD_PIMLIB_TRUE@libm2pim_la_DEPENDENCIES = SYSTEM.def $(addsuffix .lo, $(basename $(libm2pim_la_SOURCES))) @BUILD_PIMLIB_TRUE@libm2pim_la_CFLAGS = -I. -I.. -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -DBUILD_GM2_LIBS -I@srcdir@/../ -I@srcdir@/../libm2iso @BUILD_PIMLIB_TRUE@libm2pim_la_M2FLAGS = -I. -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -fm2-g -g -@BUILD_PIMLIB_TRUE@libm2pim_la_LINK = $(LINK) -version-info $(libtool_VERSION) +@BUILD_PIMLIB_TRUE@@TARGET_DARWIN_FALSE@libm2pim_la_link_flags = +@BUILD_PIMLIB_TRUE@@TARGET_DARWIN_TRUE@libm2pim_la_link_flags = -Wl,-undefined,dynamic_lookup +@BUILD_PIMLIB_TRUE@libm2pim_la_LINK = $(LINK) -version-info $(libtool_VERSION) $(libm2pim_la_link_flags) @BUILD_PIMLIB_TRUE@BUILT_SOURCES = SYSTEM.def @BUILD_PIMLIB_TRUE@CLEANFILES = SYSTEM.def @BUILD_PIMLIB_TRUE@M2LIBDIR = /m2/m2pim/