Releases: callmesalmon/FMake
Release list
NET/1.1
This is a an addition release, since i felt that the latest version had too few features
Additions
FMake NET/1.1 comes with the most features of any update, here is a list of them:
- Better installation
- Structured Makefile
- Added FMakefile
- New keywords for the FMakefile
- If, elseif and else statements
- Add a "require" keyword to require a specific version of FMake
- Added a "new project" option to build a new project
Requirements
- go
- make or docker
- m4
- git or gh
Installation
To install, firstly clone the repo:
# git
git clone https://github.com/ElisStaaf/FMake fmake
# gh
gh repo clone ElisStaaf/FMake fmakeThen, build an executable using either make or docker:
# make
sudo make install
# docker
docker build fmakeNET/1
This is a big release. That's why we switched to a whole new version numbering scheme.
New features
FMake NET/1 comes with many new features. The most major being; it's written in Go now! Here is a list of some changes:
- It has been rewritten in Go, a fast and concurrent language.
- Why? Well, I realized that python3 wasn't going to cut it, so i decided to switch languages.
- How? I spent 4 hours in the middle of the night, rewriting and debugging.
- Docker is now supported! A fresh new Dockerfile has been placed in the project!
- Added one more flag for the compiler, prints compiler version, for me:
FMake NET/1 x86_64 - Due to Go's extensive module system (and me being able access the FMake source directory because of it), you don't need to add FMake to your path! It goes straight to your
/usr/bin! - Changed format of README from MarkDown to reStructuredText.
- Split project up into multiple files, these being:
- fmake.go
- utils/utils.go
- Added a test enviroment
Requirements
- go
- make or docker
- m4
- git or gh
Installation
To install, firstly clone the repo:
# git
git clone https://github.com/ElisStaaf/FMake fmake
# gh
gh repo clone ElisStaaf/FMake fmakeThen, build an executable using either make or docker:
# make
sudo make install
# docker
docker build fmakev1.1.0
FMake is build software focused on working. Unlike other build software this one doesn't work half of the
time. It also (right now at least) doesn't include anything special. You can only... Build stuff, print
stuff and add if-statements.
Requirements
- python3
- m4
- git or gh
Install
To install, firstly, clone the git repo:
# git
git clone https://github.com/ElisStaaf/FMake ~/fmake
# gh
gh repo clone ElisStaaf/FMake ~/fmakeThen compile an executable:
makeThen you can unpack the executable,
and go on your merry way.
Introduction to the FMakefile
The FMakeFile is a layer of abstraction, so that you don't have to compile with M4, the FMake compiler
does that for you. Say you have a project with a file called main.rs, you can create an FMakefile
and write this into it:
rust-build main.rs mainI'm not going to go too far into the low level interface of M4, but this is how your code expands
in the M4 compiled file.
_rust_build(`main', `main.rs')
And that expands to this in shell language:
rustc -o main main.rsComments in FMake start with --:
-- This is a comment, and it is awesome!
rust-build main.rs mainThere are other compilers you can use in FMake, here's a showcase:
-- This is the rust compiler, the one I showed earlier:
rust-build main.rs main
-- This is the GCC compiler:
gcc-build main.c main
-- This is the G++ compiler:
g++-build main.cpp main
-- And this is the Go compiler:
go-build main.go mainYou can also invoke the compiler with many different flags, these are all of them (for now):
-h, --help: Show help message.
-S: Save all tmp files.
v1.0.0
FMake is build software focused on working. Unlike other build software this one doesn't work half of the
time. It also (right now at least) doesn't include anything special. You can only just... Build stuff.
Requirements
- python3
- pyinstaller
- m4
- git or gh
Install
To install, firstly, clone the git repo:
# git
git clone https://github.com/ElisStaaf/FMake ~/fmake
# gh
gh repo clone ElisStaaf/Fmake ~/fmakeThen compile an executable:
makeThe above compiling is done by pyinstaller, that's why you need it. Then you can unpack the executable,
and go on your merry way.
Introduction to the FMakefile
The FMakeFile is a layer of abstraction, so that you don't have to compile with M4, the FMake compiler
does that for you. Say you have a project with a file called main.rs, you can create an FMakefile
and write this into it:
rust-build main.rs main
I'm not going to go too far into the low level interface of M4, but this is how your code expands
in the M4 compiled file.
_rust_build(`main', `main.rs')
And that expands to this in shell language:
rustc -o main main.rsComments in FMake start with --:
-- This is a comment, and it is awesome!
rust-build main.rs main
There are other compilers you can use in FMake, here's a showcase:
-- This is the rust compiler, the one I showed earlier:
rust-build main.rs main
-- This is the GCC compiler:
gcc-build main.c main
-- This is the G++ compiler:
g++-build main.cpp main
-- And this is the Go compiler:
go-build main.go main
And that's it for now! Feel free to contribute to the project, help is much appreciated!
And with that, enjoy!