From 3e6afeb2a1f0663d8041f7db34f7287c1248e214 Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Sat, 30 Oct 2010 21:18:05 +0200 Subject: [PATCH] libatomic-ops is configured, together with ECL --- src/Makefile.in | 7 ++++++- src/aclocal.m4 | 20 ++++++++++++++++++++ src/compile.lsp.in | 3 +++ src/configure | 18 ++++++++++++++++++ src/configure.in | 2 ++ 5 files changed, 49 insertions(+), 1 deletion(-) diff --git a/src/Makefile.in b/src/Makefile.in index 9300a0066..2817c1ae6 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -105,7 +105,7 @@ bin/ecl-config: bin/ecl-config.pre -e 's,~A,$(libdir),' bin/ecl-config.pre > bin/ecl-config -@LIBPREFIX@eclmin.@LIBEXT@: @LIBPREFIX@eclgmp.@LIBEXT@ @LIBPREFIX@eclgc.@LIBEXT@ lsp/config.lsp $(ECL_CMPDIR)/cmpdefs.lsp ecl/external.h $(top_srcdir)/c/*.d +@LIBPREFIX@eclmin.@LIBEXT@: @LIBPREFIX@eclgmp.@LIBEXT@ @LIBPREFIX@eclatomic.@LIBEXT@ @LIBPREFIX@eclgc.@LIBEXT@ lsp/config.lsp $(ECL_CMPDIR)/cmpdefs.lsp ecl/external.h $(top_srcdir)/c/*.d cd c; $(MAKE) @LIBPREFIX@eclgc.@LIBEXT@: test -d ecl/gc || mkdir ecl/gc @@ -115,6 +115,11 @@ bin/ecl-config: bin/ecl-config.pre cp -rf $(srcdir)/gc/include/private/*.h ecl/gc/private/ && \ mv @LIBPREFIX@gc.@LIBEXT@ @LIBPREFIX@eclgc.@LIBEXT@; \ fi +@LIBPREFIX@eclatomic.@LIBEXT@: + if (echo $(SUBDIRS) | grep atomic); then \ + cd atomic && $(MAKE) && $(MAKE) install && cd .. && rm -rf share && \ + mv @LIBPREFIX@atomic_ops.@LIBEXT@ @LIBPREFIX@eclatomic.@LIBEXT@; \ + fi @LIBPREFIX@eclgmp.@LIBEXT@: if (echo $(SUBDIRS) | grep gmp); then \ cd gmp && $(MAKE) install && \ diff --git a/src/aclocal.m4 b/src/aclocal.m4 index db6b64389..3c7dd826f 100644 --- a/src/aclocal.m4 +++ b/src/aclocal.m4 @@ -873,3 +873,23 @@ if test $ECL_WORKING_ENVIRON = yes ; then fi ]) +dnl ---------------------------------------------------------------------- +dnl Configure libatomic-ops +dnl +AC_DEFUN([ECL_LIBATOMIC_OPS],[ +if test "x$ecl_threads" != "xno"; then + if mkdir atomic; then + (destdir=`${PWDCMD}`; cd atomic; CC="${CC} ${PICFLAG}" \ + $srcdir/gc/libatomic*/configure --disable-shared --prefix=${destdir} \ + --infodir=${destdir}/doc --includedir=${destdir}/ecl --with-pic \ + --libdir=${destdir} --build=${build_alias} --host=${host_alias} \ + CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" CPPFLAGS="$CPPFLAGS" CC="${CC} \ + ${PICFLAG}") + SUBDIRS="${SUBDIRS} atomic" + CORE_LIBS="-leclatomic ${CORE_LIBS}" + if test "${enable_shared}" = "no"; then + LIBRARIES="${LIBRARIES} ${LIBPREFIX}eclatomic.${LIBEXT}" + fi + fi +fi +]) diff --git a/src/compile.lsp.in b/src/compile.lsp.in index 098f8a325..cc231b922 100755 --- a/src/compile.lsp.in +++ b/src/compile.lsp.in @@ -112,6 +112,9 @@ ;; We need these two to force dllwrap to export the symbols ;; in these libraries. Otherwise it will not be possible to ;; call functions from GMP or GC in code that embeds ECL. + #+thread + (when (probe-file "@LIBPREFIX@atomic_ops.@LIBEXT@") + (push "@LIBPREFIX@atomic_ops.@LIBEXT@" extra-args)) (when (probe-file "@LIBPREFIX@eclgc.@LIBEXT@") (push "@LIBPREFIX@eclgc.@LIBEXT@" extra-args)) (when (probe-file "@LIBPREFIX@eclgmp.@LIBEXT@") diff --git a/src/configure b/src/configure index 9440eecc6..f5a9490d3 100755 --- a/src/configure +++ b/src/configure @@ -15219,6 +15219,24 @@ $as_echo "$as_me: error: Not a valid argument for --enable-boehm $enable_boehm" { (exit 1); exit 1; }; };; esac + +if test "x$ecl_threads" != "xno"; then + if mkdir atomic; then + (destdir=`${PWDCMD}`; cd atomic; CC="${CC} ${PICFLAG}" \ + $srcdir/gc/libatomic*/configure --disable-shared --prefix=${destdir} \ + --infodir=${destdir}/doc --includedir=${destdir}/ecl --with-pic \ + --libdir=${destdir} --build=${build_alias} --host=${host_alias} \ + CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" CPPFLAGS="$CPPFLAGS" CC="${CC} \ + ${PICFLAG}") + SUBDIRS="${SUBDIRS} atomic" + CORE_LIBS="-leclatomic ${CORE_LIBS}" + if test "${enable_shared}" = "no"; then + LIBRARIES="${LIBRARIES} ${LIBPREFIX}eclatomic.${LIBEXT}" + fi + fi +fi + + ac_config_files="$ac_config_files bare.lsp lsp/load.lsp clos/load.lsp cmp/load.lsp new-cmp/load.lsp ../Makefile Makefile c/Makefile doc/Makefile doc/ecl.man doc/ecl-config.man ecl/configpre.h:h/config.h.in bin/ecl-config.pre:util/ecl-config lsp/config.pre:lsp/config.lsp.in compile.pre:compile.lsp.in cmp/cmpdefs.pre:cmp/cmpdefs.lsp" ac_config_headers="$ac_config_headers ecl/config.h:ecl/configpre.h" diff --git a/src/configure.in b/src/configure.in index dd6803675..843e39d24 100644 --- a/src/configure.in +++ b/src/configure.in @@ -892,6 +892,8 @@ case "${enable_boehm}" in AC_MSG_ERROR([Not a valid argument for --enable-boehm $enable_boehm]);; esac +ECL_LIBATOMIC_OPS + AC_CONFIG_FILES([ bare.lsp lsp/load.lsp clos/load.lsp cmp/load.lsp new-cmp/load.lsp ../Makefile Makefile c/Makefile doc/Makefile doc/ecl.man doc/ecl-config.man