-
-
Notifications
You must be signed in to change notification settings - Fork 82
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
Autotools: migrate to Meson #89
Comments
Intersting thing is the ConfigFvwmDefaults also has IMAGEPATH statement for default configs which is actually already $[FVWM_USERDIR]. You can also pass to configure --with-imagepath=PATH switch. configure's IMAGEPATH information starts around L5645. configure.ac IMAGEPATH logic starts around L185. |
Would CMake be a good idea for FVWM3? |
Possibly. I'm more familiar with autotools -- but if you had a good reason for us to consider CMake, I'd happily listen. Would you be willing to help with that? |
I don't have a better reason, other than it's more recent. I can help with this, but unfortunately, I'm not really familiar with autotools... |
Hi @ThomasAdam . I was inspired by your Release Version Script, and created a project specifically for using
|
Hey @pete4abw Oh that's cool! Thanks for letting me know! Would you consider sending a PR to fvwm3, switching out the current implementation for yours? |
I'll take a look, @ThomasAdam. I'll clone it and see what I can contribute. You reference a lot of variables that are hard coded and I'll have to understand their use. I think we can easily set up gitdesc.sh to return each of those. The goal is not to have to hardcode in configure.ac. But thank you for turning me on to this approach. I was having a dickens of a time with I'll let you know. |
As an aide-memoir and for anyone else following this... The wider-context changes can be found on the If anyone wants to pick up the work on |
A first step at #402 . Briefly, RELDATELONG = 23 December 2020 This is only a first step. More work needs to be done. Developer Documentation should be updated as well. |
Hi all, So I'm revisiting this after the latest autotools update now throwing up a tonne of warnings. Although Therefore, this effort will now be focused around switching to CMake. Anyone who has experience with this and wishes to help, please get in touch. |
Meson is the only viable alternative at this point. I've started something (see: #691) -- but this will have to be after 1.0.5 now. |
Will pick this up someday -- but unlikely to be any time soon. Closing this for now. |
I've been taking a crack at doing this with cmake, and I've made quite a bit of progress, but now I'm onto making the config.h generation work. There is a lot of macros in there, so I checked the code for uses of the macros and a bunch of them were unused. Many of these were macros indicating if a function or header was present. This file contains all of them that weren't used. Are these functions and headers required, so they need to be checked for and have the build fail without them or is it fine to not worry about them? |
Hi @polarbub That's interesting -- thanks for taking another look. To be honest, if I were to migrate away from autotools, I would prefer meson -- on balance, that tends to be the next hop from autotools. Projects such as xorg have been doing this incrementally for some time. |
With meson, you would still need to still need to make a config.h. Do you know which of those functions and headers are required for building the project? |
Hi @polarbub They'll mostly all be required. From looking though, here's the ones I know we need:
I've checked the others in the list, and we're not using those headers. |
Thanks! I will switch to meson. It looks pretty close to the syntax of cmake so it shouldn't be too hard |
Excellent, thank you, @polarbub -- if you can pull this off, that would be a huge feat indeed! It's been on my list for ages now... One thing -- I presume you're not doing a "direct" translation from autotools -> meson -- there's a lot of very old/historical tests in the autotools buildsystem in fvwm3 which we most certainly won't need in meson. |
What I'm doing is copying the list of source files from the .am files and then add dependencies until it compiles. I've tried to look at acinclude.m4 and Makefile.am, but they were a bit too confusing. The two files are an old automake file and a new cmake one (it needs to be converted to meson) |
I think that a closed issue isn't a great place to talk about this. Should I make another issue or is there a better place? |
Nope. I've reopened this. |
What platforms are does fvwm build on? There are references to HP-UX, Solaris, Minix, VMS, and macOS just to name a few. Can I just delete these? |
Not quite. The following platforms are the ones which are known to work: MacOS Minix and VMS haven't been supported for years. Look at the git history, for instance. |
There are a few headers, libraries, and functions that are checked to be present by the old build system and are just used in the code. Is it okay to not check those and just let the build fail if the system doesn't have them? |
Hey @polarbub Generate a PR for what you have so far, and I'll take a look for you. 🙂 |
I really haven't done that much. The headers, libraries, and functions that are checked and required to exist in the build system and are used in the code without checking the |
Looking here it says that checking for compliant string.h is obsolete and shouldn't have to be done. Can I get rid of these checks? |
@ThomasAdam have you had a chance to look at that? |
Hi @polarbub I have now had chance to take a look. Having seen the start you made (thanks for that!), I've come up with a slight alternative. Have a look at the So far, I'm just providing a Feel free to continue where I've left things if you're still interested. A few things to consider:
I'm not saying the |
|
FVWM's build system is old, and
configure.ac
has a lot of legacy/dead code which is no longer required.Added to which, some of the m4 macros in use could probably be replaced with newer constructs in autotools since the time they were written some years ago.
It would be nice to audit this.
For example:
imagepath
can be set here, but is configurable via runtime, so should be removed. It's already set viafvwm/fvwm3.c
...The text was updated successfully, but these errors were encountered: