Makex¶
Makex is a modern build and automation tool.
It makex stuff happen. 🙂
What Makex is used for¶
Compiling software/applications/firmware
Building file systems/trees/images/file archives
Building and deploying websites and web applications
Running things repeatably
Replacing most or all of the other build systems
Features 🍩¶
Task based
Familiar Syntax
File Hashing and Checksums
Dependency Graphs
Caching
Workspaces
Copy on Write
Documentation¶
Requirements¶
Python >= 3.9
Quick Start¶
Install:
pip install makex
Define a Makex file and name it
Makexfile
( ormakexfile
if you prefer):
task(
name="hello-world",
steps=[
write("hello-world.txt", "Hello World!"),
# or, you can use the shell, but it is not recommended:
# shell(f"echo 'Hello World!' > {self.path}/hello-world.txt"),
# you may also execute things:
# execute("echo", "Hello World!"),
# or just print things:
# print("Hello World!"),
# more actions can go here; such as copying, mirroring or archiving...
],
outputs=[
"hello-world.txt",
],
)
Run makex, specifying the task name:
makex run :hello-world
A file at
$PWD/_output_/hello-world/hello-world.txt
shall have the following contents:
Hello World!
Read the documentation to learn more.
Limitations¶
Mac support is not tested.
Windows is not tested or supported (yet).
Pronunciation 🗣¶
Makex is pronounced “makes”, ˈmeɪks, ˈmeɪkˈɛks (or just “make” 🙂)
Coming Soon¶
Dynamic Task/Resource Allocation
Task Tags/Labels
Regular Expressions
Intellij/VSCode integration
Note
This is an early release of Makex. Things may change. Those changes will be noted in the HISTORY file (especially major ones).
With that, Makex is being used extensively by us. We’ve created many tasks and Makex files, and we don’t want to create more work. 🫡
If you have any problems, feel free to contact us.