-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP: configure script #11645
WIP: configure script #11645
Conversation
Adds a pre-make configuration step, e.g., $ ./configure --prefix=/path/to/install $ make Also: * Removes MULTIARCH make variable; set --libdir instead. * Darwin: removes support for OS X 10.6 (Snow Leopard). * Darwin: removes macosx-version-min option; export MACOSX_DEPLOYMENT_TARGET instead.
This is a huge pet peeve of mine. Don't pretend to be autoconf. It never works very well (and I've seen it done poorly many times - Rust, git, Flint, BLIS, etc), what you inevitably end up with is autoconf but worse. This would be better-handled via cmake. ref #3118 (which this would partially address) and #8937 (comment) |
My feeling is that neither autoconf nor cmake work well for large, complex projects. We're better off just rolling our own. |
I feel exactly the opposite, rolling your own is a terrible idea especially if you're a large complex project (unless you have Google's resources, I guess). If you want autoconf, you should use autoconf. Full autotools would give good cross-compiling and out-of-tree builds. Cmake would give out-of-tree builds and first-class msvc support and standardized dependency handling. This gives us a few configure-time checks that compilers are present and working, and changes the syntax by which we provide configuration options. We have a hard enough time maintaining thousands of lines of confusing custom makefiles, let's not add to that with hundreds more lines of confusing custom bash. |
I could get behind this if it were optional to start with, and strictly a |
What features does your Is CMake able to check for dependencies automatically? I share @tkelman's concerns about having to maintain a big set of shell scripts that everybody is afraid to touch. Reinventing the wheel in such an horrible area of software development is not really appealing... |
I share the same apprehensions. I do think this is a good idea as a make.user generator. We probably should not call it configure, or else distro tools will barf thinking this is the full thing. |
There's a whole pile of
Have had exactly this experience. If you call it configure, you should really support out-of-tree builds and every possible flag that autoconf does, otherwise debhelper and spec file macros are going to have a hard time with it. |
This PR has gotten off to a bit of a rocky start, and that's partly my fault for being too laconic. This is a bash script to generate
It supports cross-compiling (i've tested it on cygwin). It can support out-of-tree builds. It can do anything our makefiles can do. As for some of the objections:
|
How? You can run The goals are good, but this is going to have to be optional at first otherwise there's no migration plan and we'll get a dozen issues and mailing list posts saying "make errored, could not find
Net, you're adding more in bash than you're deleting from |
Fair enough. Our builds are only semi out-of-tree.
Just add a new makefile target: $(JULIAHOME)/config.mk:
$(error please run configure)
Sure, but with new features. |
i like this. it seems to be exactly the missing piece for finishing the out-of-tree compile work, which is nearly finished, but pretty much requires a i agree with the comment that it shouldn't be named |
even with their resources, it's probably not going to be good... have you ever used Bazel? shudder |
Adds a gnu-like pre-make configuration step, e.g.,