diff options
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | src/makefile/macro.rs | 9 |
2 files changed, 7 insertions, 4 deletions
@@ -10,7 +10,7 @@ Not explicitly aiming for full support for [every GNU make feature](https://www. - signal handling not implemented - library handling not implemented - some POSIX-specified features are pending (search `TODO` for a list) -- builtin macro `MAKE` is defined as `makers` +- builtin macro `MAKE` is defined as the path to `makers` - specifying the `.POSIX` special target doesn't opt out of extensions (but you can install with `--no-default-features` to get only POSIX behavior) ## status diff --git a/src/makefile/macro.rs b/src/makefile/macro.rs index 831ec5e..0ab1b4b 100644 --- a/src/makefile/macro.rs +++ b/src/makefile/macro.rs @@ -193,20 +193,23 @@ fn builtins() -> Vec<(&'static str, TokenString)> { // Fuck it, might as well. macro_rules! handle { ($value:ident) => { - stringify!($value) + stringify!($value).parse().unwrap() }; ($value:literal) => { + $value.parse().unwrap() + }; + ($value:expr) => { $value }; } macro_rules! make { ($($name:ident=$value:tt)+) => {vec![$( - (stringify!($name), handle!($value).parse().unwrap()) + (stringify!($name), handle!($value)) ),+]}; } make![ - MAKE=makers + MAKE=(std::env::current_exe().map_or_else(|_| TokenString::text("makers"), |x| TokenString::text(x.to_string_lossy()))) AR=ar YACC=yacc YFLAGS="" |