Hi Everyone, The GNUmakefile has become more complex over time, especially since we improved support for other platforms like ARM32 and ARM64. However, the makefile has gaps and its hard to close them using GNU make's facilitates. For example, its difficult to determine ARM's -march and -mtune options. We do it in cryptest.sh, but avoid it completely in GNUmakefile (see PLATFORM_CXXFLAGS in cryptest.sh).
I've been thinking about a default GNUmakefile that mostly "just works" for most platforms. It will provide standard recipes and targets, and running it will look similar to "g++ -DNDEBUG -g2 -O2 -fPIC -march=native -pipe -c cryptlib.cpp...". For a more advanced makefile tuned for the platform with compiler bug workarounds, I was thinking we could provide a configure.py. configure.py would do the heavy lifting that's currently happening in the GNUmakefile. configure.py would overwrite config.h and GNUmakefile, and then users would do the same thing they have always done. I want to avoid other general purpose build systems, like Autoconf and Cmake. They don't exactly meet requirements and they are hard to work with at times. They also require their own set of workarounds as we move among platforms. For example, Cmake on CentOS 5 can't provide the same makefile as Cmake on Ubuntu 12. And Ubuntu 12 makefiles are different from Ubuntu 16 makefiles. Based on my experiences with cryptest.sh, I think we should avoid shell scripting because it requires Bash and a handful of Unix & Linux utilities. The behavior of the tools on BSDs & Unix & Linux & Solaris vary, so its not much different than trying to get Cmake to act the same way everywhere. I don't want to use PERL because I don't know it well enough. I've found also building PERL on different platforms due to system requirements produces different behaviors, so I want to avoid it because its the Cmake problem again. I also have not acquired a taste for PERL (i really dislike the leaning toothpicks, and trying to figure out when I need to single quote or double quote). I think Python would be a good choice because Python offers standard behavior on the platforms we attempt to support. Its available for Windows, Unixes and Linuxes. I've also have some experience with cross-platform support because another library I am familiar with provides a configure.py. My questions are: 1. Is there opposition to a simplified GNUmakefile that mostly works everywhere? 2. Is there opposition to a configure.py that writes a specialized config.h and GNUmakefile? Jeff -- -- You received this message because you are subscribed to the "Crypto++ Users" Google Group. To unsubscribe, send an email to cryptopp-users-unsubscr...@googlegroups.com. More information about Crypto++ and this group is available at http://www.cryptopp.com. --- You received this message because you are subscribed to the Google Groups "Crypto++ Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to cryptopp-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.