Made a couple of changes in ICG source code to handle clang API differences. Encapsulated
differences in ifdefs. Added libclangSupport to ICG link line.
* major refactor of test_linux workflow
* oracle linux, almalinux, and debian 11 added to workflow
* #1243 ac_path_progs does not cache negative result like ac_path_prog. Strange. Fix bad python and python-config behavior
* add or statement in case behavior changes across autoconf versions
* all OSs now test both python 2 and python 3
* #1232 add lib paths to LDFLAGS in configure script #1236 ignore configure on github by adding linguist commands to .gitattributes
Closes#1232closes#1236
Co-authored-by: Fennell, Scott P 263712616 <scott.p.fennell@nasa.gov>
see #991, #992, and #993.
To support Ubuntu 20.04 we must support new versions of python and gtest. Python has changed the way it provided libraries using python-config, so adjustments had to be made. I've completely ditched the built in autoconf function for finding python, because it adds a bunch of extra flags we don't need for Trick.
Now when we look for python with configure, it will search for python in this order:
python${PYTHON_VERSION}
python
python3
For python-config, it will search in this order:
python<major_version.minor_version>-config
python<major_version>-config
python${PYTHON_VERSION}-config
python-config
python3-config
Instead of python-config --ldflags, we are using python-config --libs
This only gets the flags we need.
For python >= 3.8 we use
python-config --libs --embed
this way it will add -lpython to the flags
If we can't find python in the configure script then search for
python3. If python3 is found use python3-config to get the
include directories and libraries. Call python scripts using the
PYTHON environment variable.
Added a new configure arugument "--enable-32bit". If enabled,
TRICK_FORCE_32BIT is automatically set for building Trick and for
all sims built. Changed the ARCH and added -m32 in the configure
script if 32bit is enabled. This changes the configure script to
test for 32bit libraries.
Found if --without-x was specified, that automatically caused an
error condition in the configure script. Fixed that and only
tested for X windows headers and libs if X is included. Excluded
a couple of directories from compiling if X is not included.
Didn't seem to be a problem with java.
If we are on a Mac, use xcrun to find the standard include directories.
Some of the makefiles in data_products look for libxml2 which requires
them to get the same change as the configure script.
Other things I tried:
1. Pass the full path of the library directly to the linker.
Doesn't work for 32-bit builds because ICG needs the 64-bit version.
2. Use -static to have the linker statically link in the library.
Doesn't work because there is no 64-bit static library on default
installs.
Fixes#525