Experimental builds for Euphoria 4.2
- Posted by ghaberek (admin) Jan 18, 2024
- 1910 views
Good news, everyone! I just pushed one of the many things I've been toiling away on: a new Makefile called build.mak.
This is a "meta" makefile that to create a full release of Euphoria. I assume you're on x86-64 and using a recent distribution of Debian (11+) or Ubuntu (20.04+) or a derivative (e.g. Mint).
See the platforms list below for the required packages. Here's how it works:
- . Runs ./configure with the options for (cross-)compiling to the target platform.
- . Renames config.gnu file created by ./configure to include the platform name.
- . Runs make, specifying the CONFIG_FILE option to the file created in steps 1-2.
- . Collects the artifacts from the build directory into a temporary directory in /tmp.
- . Creates a tarball or zip file in the source directory with the files from step 4.
Here's an example to try on a fresh Debian or Ubuntu machine:
sudo apt install build-essential git binutils-mingw-w64-x86-64 gcc-mingw-w64-x86-64 git clone https://github.com/OpenEuphoria/euphoria cd euphoria/source make -f build.mak -j$(nproc) PLATFORM=windows-x64
Here are the supported platforms and their required packages:
Platform | Packages |
---|---|
linux-x64 | build-essential |
linux-arm | build-essential binutils-arm-linux-gnu gcc-arm-linux-gnu |
linux-x86 | build-essential binutils-i686-linux-gnu gcc-i686-linux-gnu |
windows-x64 | build-essential binutils-mingw-w64-x86-64 gcc-mingw-w64-x86-64 |
windows-x86 | build-essential binutils-mingw-w64-i686 gcc-mingw-w64-i686 |
I still have some things to work out with the GitHub actions (see euphoria.yml) but soon it will be able to complete a build and publish the artifacts directly to the Releases page!
-Greg