#include <ext/pb_ds/priority_queue.hpp>
typedef __gnu_pbds::priority_queue<void, void, void> pq;])],
[CVC4_PB_DS_NAMESPACE=__gnu_pbds],
- [AC_MSG_ERROR([can't find required priority_queue in either __gnu_pbds or pb_ds namespace])])])
+ [AC_MSG_ERROR([cannot find required priority_queue in either __gnu_pbds or pb_ds namespace])])])
AC_LANG_POP([C++])
-AC_DEFINE_UNQUOTED(CVC4_PB_DS_NAMESPACE, ${CVC4_PB_DS_NAMESPACE}, [The namespace for pb_ds data structures.])
AC_MSG_RESULT([$CVC4_PB_DS_NAMESPACE])
+AC_DEFINE_UNQUOTED(CVC4_PB_DS_NAMESPACE, ${CVC4_PB_DS_NAMESPACE}, [The namespace for pb_ds data structures.])
+
+# for information: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36612
+AC_MSG_CHECKING([whether pb_ds has bug 36612])
+AC_LANG_PUSH([C++])
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+#define __throw_container_error inline __throw_container_error
+#define __throw_insert_error inline __throw_insert_error
+#define __throw_join_error inline __throw_join_error
+#define __throw_resize_error inline __throw_resize_error
+#include <ext/pb_ds/exception.hpp>
+])],
+ [CVC4_GCC_HAS_PB_DS_BUG=1; bugverb=is],
+ [CVC4_GCC_HAS_PB_DS_BUG=0; bugverb="is not"])
+AC_LANG_POP([C++])
+AC_MSG_RESULT([bug $bugverb present])
+AC_DEFINE_UNQUOTED(CVC4_GCC_HAS_PB_DS_BUG, ${CVC4_GCC_HAS_PB_DS_BUG}, [Whether libstdc++ has a certain bug; see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36612])
# Check for ANTLR runantlr script (defined in config/antlr.m4)
AC_PROG_ANTLR
fi
fi
+# on Mac OS X, Java doesn't like the .so module extension; it wants .dylib
+module=no eval CVC4_JAVA_MODULE_EXT="$shrext_cmds"
+if test -z "$CVC4_JAVA_MODULE_EXT"; then
+ CVC4_JAVA_MODULE_EXT=.so
+fi
+AC_SUBST([CVC4_JAVA_MODULE_EXT])
+
# Prepare configure output
if test "$enable_shared" = yes; then BUILDING_SHARED=1; else BUILDING_SHARED=0; fi
#include "util/statistics_registry.h"
//#include <boost/heap/d_ary_heap.hpp>
+
+#if CVC4_GCC_HAS_PB_DS_BUG
+ // Unfortunate bug in some older GCCs (e.g., v4.2):
+ // http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36612
+ // Requires some header-hacking to work around
+# define __throw_container_error inline __throw_container_error
+# define __throw_insert_error inline __throw_insert_error
+# define __throw_join_error inline __throw_join_error
+# define __throw_resize_error inline __throw_resize_error
+# include <ext/pb_ds/exception.hpp>
+# undef __throw_container_error
+# undef __throw_insert_error
+# undef __throw_join_error
+# undef __throw_resize_error
+#endif /* CVC4_GCC_HAS_PB_DS_BUG */
+
#include <ext/pb_ds/priority_queue.hpp>
#include <vector>
TESTS += CVC4JavaTest.class
endif
-CLASS_LOG_COMPILER = @srcdir@/run_java_test $(JAVA) -classpath .:@abs_top_builddir@/src/bindings/CVC4.jar -Djava.library.path=$(abs_top_builddir)/src/bindings/java/.libs:$(abs_top_builddir)/src/.libs
+# we set the DYLD_LIBRARY_PATH in addition to -Djava.library.path, seems
+# to be necessary on Mac
+CLASS_LOG_COMPILER = env DYLD_LIBRARY_PATH=$(abs_top_builddir)/src/bindings/java/.libs:$(abs_top_builddir)/src/.libs:$(abs_top_builddir)/src/parser/.libs @srcdir@/run_java_test $(JAVA) -classpath .:@abs_top_builddir@/src/bindings/CVC4.jar -Djava.library.path=$(abs_top_builddir)/src/bindings/java/.libs:$(abs_top_builddir)/src/.libs:$(abs_top_builddir)/src/parser/.libs
# Things that aren't tests but that tests rely on and need to
# go into the distribution