aboutsummaryrefslogtreecommitdiff
path: root/src/makefile/macro.rs
diff options
context:
space:
mode:
authorMelody Horn <melody@boringcactus.com>2021-04-04 11:56:42 -0600
committerMelody Horn <melody@boringcactus.com>2021-04-04 11:56:42 -0600
commitc9cc973f6ea1184b962bc11420f4cd9d9a194c6e (patch)
tree7ad9ce4b3e40bfc4b047d849e05b45204392fdbd /src/makefile/macro.rs
parent8b4e33220d3ca9a929e485388b73630883394fe6 (diff)
downloadmakers-c9cc973f6ea1184b962bc11420f4cd9d9a194c6e.tar.gz
makers-c9cc973f6ea1184b962bc11420f4cd9d9a194c6e.zip
point MAKE builtin macro at full path, not just name
Diffstat (limited to 'src/makefile/macro.rs')
-rw-r--r--src/makefile/macro.rs9
1 files changed, 6 insertions, 3 deletions
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=""