FreeBSD has packaged GENie in the Ports tree since 2019. Recently I was looking at this package to use a dependency for MAME. I noticed that in MAME,$(ARCH) is removed from a number of files, include src/hosts/scripts.c, GENie is bundled with MAME. This is so the MAME build succeeds, otherwise it fails on locating $(ARCH). So using GENie from Ports as a drop-in-replacement is not straight forward. In the MAME package, removing $(ARCH) ends up removing almost all dynamically constructed buildoptions and linkoptions, and build relies on a correctly populated make environment, I would rather have GENie correctly produce the GNU makefiles too.
I do not know what $(ARCH) is meant to be, and how it should be populated on FreeBSD. There are no Ports in the tree that currently depend on GENie, so I am unable to determine how all this fits together.
I am wondering, because GENie is in the Ports, and it gets built by the build clusters for package distribution, would it not be better to generate src/hosts/scripts.c per architecture? I am suspecting this might help in debugging too.
How do I regenerate src/hosts/scripts.c? I do not understand the run premake4 embed, where do I get premake4? I suspect you are not referring to https://github.com/premake/premake-4.x. So am I to run GENie to generate new scripts? Is it possible to produce the bytecode for the host platform during package building instead of embedding script in C code? How would I do that?
Hello,
FreeBSD has packaged GENie in the Ports tree since 2019. Recently I was looking at this package to use a dependency for MAME. I noticed that in MAME,
$(ARCH)
is removed from a number of files,include src/hosts/scripts.c
, GENie is bundled with MAME. This is so the MAME build succeeds, otherwise it fails on locating$(ARCH)
. So using GENie from Ports as a drop-in-replacement is not straight forward. In the MAME package, removing$(ARCH)
ends up removing almost all dynamically constructedbuildoptions
andlinkoptions
, and build relies on a correctly populated make environment, I would rather have GENie correctly produce the GNUmakefiles
too.I do not know what
$(ARCH)
is meant to be, and how it should be populated on FreeBSD. There are no Ports in the tree that currently depend on GENie, so I am unable to determine how all this fits together.I am wondering, because GENie is in the Ports, and it gets built by the build clusters for package distribution, would it not be better to generate
src/hosts/scripts.c
per architecture? I am suspecting this might help in debugging too.How do I regenerate
src/hosts/scripts.c
? I do not understand the run premake4 embed, where do I get premake4? I suspect you are not referring to https://github.com/premake/premake-4.x. So am I to run GENie to generate new scripts? Is it possible to produce the bytecode for the host platform during package building instead of embedding script in C code? How would I do that?Thanks.