Modify LDFLAGS to support shared libraries for Win (#1280)
authorAndres Noetzli <andres.noetzli@gmail.com>
Fri, 27 Oct 2017 21:01:35 +0000 (14:01 -0700)
committerAndrew Reynolds <andrew.j.reynolds@gmail.com>
Fri, 27 Oct 2017 21:01:35 +0000 (16:01 -0500)
commit36bf9f8bcb2a1a3aea1f90eb4d13aed3bbf6da8f
tree35ba59e8ec1d505f00a5fc7c6c2c119e48abc0d4
parent0891ff3d00975ee9697855dcb2b6cbb232ec5523
Modify LDFLAGS to support shared libraries for Win  (#1280)

* Use uintptr_t for pointer casts in Swig files

CVC4's Swig interface files were casting pointers to longs in multiple
instances. The problem with that is that on certain platforms *cough*
Windows/MinGW *cough* long is only 32-bit even when compiling a 64-bit
executable (they use the LLP64 data model). This made the compilation of
language bindings fail with MinGW. This commit changes the types to
uintptr_t defined in Swig's stdint.i.

* Modify LDFLAGS to support shared libraries for Win

This commit adds "-no-undefined" to the LDFLAGS of CVC4's library, which
is required for building DLLs (shared libraries on Windows). It also
adds "--export-all-symbols" to the linker flags of the parser to ensure
that there are no unresolved symbols when linking against it (see
comment in the Makefile.am for details).

* Fix for non-Windows builds

* add no-undefined to libcvc4compatjni
configure.ac
src/Makefile.am
src/bindings/Makefile.am
src/bindings/compat/java/Makefile.am
src/compat/Makefile.am
src/parser/Makefile.am