diff options
author | rmh <rmh@FreeBSD.org> | 2012-01-20 18:55:56 +0000 |
---|---|---|
committer | rmh <rmh@FreeBSD.org> | 2012-01-20 18:55:56 +0000 |
commit | 6aecdb4cd57cadd8365b973c0a3d819d09f66da4 (patch) | |
tree | d8d2260c2fab35332a38876eb0be83ab9a4fc657 /usr.bin | |
parent | b1f7eef0fbd73e973decd4e9576090ee97dcaa61 (diff) | |
download | FreeBSD-src-6aecdb4cd57cadd8365b973c0a3d819d09f66da4.zip FreeBSD-src-6aecdb4cd57cadd8365b973c0a3d819d09f66da4.tar.gz |
Map foreign architecture names to FreeBSD naming convention.
Approved by: kib (mentor)
Diffstat (limited to 'usr.bin')
-rw-r--r-- | usr.bin/make/main.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/usr.bin/make/main.c b/usr.bin/make/main.c index fe5ae58..8079cc9 100644 --- a/usr.bin/make/main.c +++ b/usr.bin/make/main.c @@ -146,6 +146,14 @@ uint32_t warn_nocmd; /* command line no-warning flags */ time_t now; /* Time at start of make */ struct GNode *DEFAULT; /* .DEFAULT node */ +static struct { + const char *foreign_name; + const char *freebsd_name; +} arch_aliases[] = { + { "x86_64", "amd64" }, + { "mipsel", "mips" }, +}; + /** * Exit with usage message. */ @@ -939,10 +947,19 @@ main(int argc, char **argv) */ if ((machine = getenv("MACHINE")) == NULL) { static struct utsname utsname; + unsigned int i; if (uname(&utsname) == -1) err(2, "uname"); machine = utsname.machine; + + /* Canonicalize non-FreeBSD naming conventions */ + for (i = 0; i < sizeof(arch_aliases) + / sizeof(arch_aliases[0]); i++) + if (!strcmp(machine, arch_aliases[i].foreign_name)) { + machine = arch_aliases[i].freebsd_name; + break; + } } if ((machine_arch = getenv("MACHINE_ARCH")) == NULL) { |