Fix the configure script and makefile to work on Window/Linux#110
Fix the configure script and makefile to work on Window/Linux#110playmer wants to merge 48 commits into
Conversation
Not done of course, the connections between the extlib and onscripter stuff in the makefile doesn't work right yet, needs a look-see. So CI will likely fail. Linux will need a checkup after WIndows is up to scratch.
…it, now fixed the script.
|
sorry for taking so long to look at this... I will be honest, it's quite large and overwhelming to review it. |
|
Yeah unfortunately it's not trivial to do this in phases. The external libs needed a fundamental overhaul on how they were being built and depended on. Doing some mix and one dep at a time was probably doable, but wouildn't have actually fixed anything until most of them had been done. I could've likely separated out the work with regards to where intermediates and installations go, but it would've made things much more difficult to structure. As it is, there's still work that can be done here to simplify things in the configure script and generated makefile, but that would've required even more changes. I tried to keep it relatively simple if more verbose than I'd like. There's also probably a discussion to be had on if dependencies should be built/installed as part of the configure script rather than during the make invokation, I decided to continue doing it during make, as otherwise you can run afoul of system deps changing out from under the libraries we built, and I didn't want to risk it. At the very least, the extlibs deps are all structured very similarly, the only interesting differences being if they need to be autoconf'd, reconf'd, or just built. I spent some time looking into how trivial it'd be to unify how these are done to make the diff less annoying to look at, but it just seemed like it'd make things more difficult to understand. |
This resolves the issues causing the configure script and generated makefiles from working on Windows, as well as some general enhancements and cleanups of the build and extlibs. There's a few general issues that caused the failures:
.gitattributes, we're up to whatever the settings on the users install gives them.As part of this I had to rewrite dep handling in
Makefile.extlibs. While I was in there, I set things up such that nearly every built/installed file gets put into a top levelbuildfolder. Without doing this the repo is populated with detritus from previous, potentially failed builds, some ignored, some not, as mentioned above. We also don't build from the extlib directory anymore, we copy the dependencies out into the build folder first, since we can't easily change everything they mess with otherwise. This greatly simplifies cleaning in the makefile, so that was adjusted.Additional Changes:
Lingering Issues: