2024-11-07 09:22:30 +01:00
2023-10-03 15:01:24 +02:00
2023-10-03 15:01:38 +02:00
2024-11-07 09:22:30 +01:00

Shake

SHell mAKE

NOTE: shake has been depricated by bake. @COMPILECMD has been replaced by @BAKE. The bake repository tracks the most up to date versions of all implementations.

Bake mirrors:

Usage: ./shake <input_file>
	./skake runs the value of @COMPILECMD.
	The value of @COMPILECMD is read from <input_file> in is whatever comes after '@COMPILECMD ' until the end of the line.
	Inside the value of @COMPILECMD all mentions of '$@' are replaced with <input_file>.
	The point of this script is ease to compialation of singe source file (toy) programs.

Rationale

I make many example/test files, many require linking and trying to remember which libraries are dependencies and copying the right command from the source file gets old, fast.

Example

$ cat test/hw.c
// @COMPILECMD gcc $@ -o hw.out
#include <stdio.h>

void main(){
		puts("Hello world");
}
$ ./shake test/hw.c
$ ./hw.out
Hello world
Description
No description provided
Readme 39 KiB
Languages
Shell 91%
C 9%