GNU make 4.2

Online Status

I got GNU make 4.2 compiling under SAS/C.

I've done some initial testing with my usual projects and it seems to work nicely.

https://github.com/dmcoles/gnu_make_amiga/releases/tag/4.2-05032024

The latest version I've seen around before is 3.82 which is quite some years older.
Sadly they made some major restructuring in 4.3 and 4.4 which have made it
much more difficult to build those versions on SAS/C.

I haven't extensively tested it - so i'm not releasing it to the aminet yet but it seems to
work ok with my own projects. Please do feel free to feed back.

Online Status

Just browsing through the git repo for gnu make and I notice that all Amiga support was removed from the code just after the 4.4.1 release about a year ago. So even if we manage to get the new build system in 4.3 working then we can at best get updates 4.3, 4.4 and 4.4.1 and then we would not be able to get any further updates without reinstating all of the removed code

Online Status

I considered rewriting EBuild with my new filter features on the framework for EEC but who would use a custom make replacement? It reeks of not-invented-here syndrome but what choices do we have? Meson requires Python 3.7, Ninja build is needed only for its intelligent thread-pools and requires a higher level construct like CMake or Build Ninja for common use, Jam is only used by Haiku and Perforce, what other build systems are there?

Online Status

i've also now managed to get 4.4.1 building on SAS/C

Which you can download here:

https://github.com/dmcoles/gnu_make_amiga/releases/tag/4.41-06032024

Online Status

Hi Darren,
I'm using your 4.4.1 make build for my projects but I get weird things when trying to pass variables to sub-makefiles.
* variables created in the main makefile are not passed to the sub-makefile, even when exported,
* using -E to pass a variable definition to the sub-makefile seemed to work but all of a sudden, it didn't anymore,
* environment variables created for testing are not read correctly, I mean it's listed but it has no value.

For testing I use this simple makefile instruction:
$(foreach v, $(.VARIABLES), $(info $(v) = $($(v))))

Then I set a variable in a shell, eg. setenv TST OS3
and I try to read it in make variables
make | grep TST

Can you please give it a try to see if it's reproducible ?

My System version is 3.2.3, Amiga 500 with Firebird accelerator.

TIA,
Olrick.

Online Status

Hi,
I did some tests, trying UAE to get rid of hardware doubt, trying previous versions to check environment variables management and finally reverted to make 4.2.1 which seems to be OK up to this point.

Online Status

can you provide detailed instructions / files to recreate this and i will take alook