On Mon, 30 Sep 2024 08:01:04 -0500 (CDT) Bob Friesenhahn <bfrie...@simple.dallas.tx.us> wrote:
> A good thing about autoconf is that it almost always produces the > correct answer, and packages depending on autoconf+automake+libtool > are extremely consistent and predictable. I have found that projects > based on CMake are not nearly as consistent and predictable. That may be true, however over the years I mostly used NetBSD pkgsrc to build packages on Solaris and the experience has not always been positive, even with software which used GNU autotools. Not only because of the tools, but due to how the software was designed and implemented. Autotools do not automagically make the software portable and the usual approach of "if it works on Linux then it is good enough for us" did not help. These days there are a lot of different build tools and they all have issues in various areas and none of them are perfect. I think GNU autotools were designed at a time when Unix standards were still evolving and there was a lot of fragmentation. However now it is much simpler, POSIX is the dominant standard and there is a finite combination of OS versions, compilers and linkers. I avoid autotools and similar by following these rules: 1. Do not test for every single feature. Instead assume POSIX compatibility and work around specific portability issues. OS name and major/minor versions should be enough for this. 2. Use plain GNU make and create your own make files. There is no need for portable make files, because GNU make can be built on any POSIX OS with minimum effort. 3. Use make variables to pass specific compiler and linker options during build. Most platforms use either GCC or Clang, but some obsolete compilers can be easily added when needed. 4. The most important rule - do not release anything for any untested platforms, there is a good chance the software may not work properly. I don't have Solaris 8 or 9 to test, so they are not supported until somebody really needs it. It is our responsibility to make sure software works correctly. The end users should never suffer the indignity of broken builds, runtime bugs or crashes. ------------------------------------------ illumos: illumos-discuss Permalink: https://illumos.topicbox.com/groups/discuss/Te614dba5c9d949ba-M4afdc1b290b77c6fff49424a Delivery options: https://illumos.topicbox.com/groups/discuss/subscription