]> Devi Nivas Git - cs3210-lab1.git/commitdiff
Infer TOOLPREFIX, just like in JOS
authorAustin Clements <amdragon@mit.edu>
Tue, 31 Aug 2010 19:01:26 +0000 (15:01 -0400)
committerAustin Clements <amdragon@mit.edu>
Tue, 31 Aug 2010 19:01:26 +0000 (15:01 -0400)
Makefile

index 3ddc1c1f5b1929076bb5aed7036fc2ba13a06ee0..71f28b96de3fc13a0a1422e993469c17d3f21217 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -28,11 +28,27 @@ OBJS = \
        vm.o\
 
 # Cross-compiling (e.g., on Mac OS X)
-TOOLPREFIX = i386-jos-elf-
+#TOOLPREFIX = i386-jos-elf-
 
 # Using native tools (e.g., on X86 Linux)
 #TOOLPREFIX = 
 
+# Try to infer the correct TOOLPREFIX if not set
+ifndef TOOLPREFIX
+TOOLPREFIX := $(shell if i386-jos-elf-objdump -i 2>&1 | grep '^elf32-i386$$' >/dev/null 2>&1; \
+       then echo 'i386-jos-elf-'; \
+       elif objdump -i 2>&1 | grep 'elf32-i386' >/dev/null 2>&1; \
+       then echo ''; \
+       else echo "***" 1>&2; \
+       echo "*** Error: Couldn't find an i386-*-elf version of GCC/binutils." 1>&2; \
+       echo "*** Is the directory with i386-jos-elf-gcc in your PATH?" 1>&2; \
+       echo "*** If your i386-*-elf toolchain is installed with a command" 1>&2; \
+       echo "*** prefix other than 'i386-jos-elf-', set your TOOLPREFIX" 1>&2; \
+       echo "*** environment variable to that prefix and run 'make' again." 1>&2; \
+       echo "*** To turn off this error, run 'gmake TOOLPREFIX= ...'." 1>&2; \
+       echo "***" 1>&2; exit 1; fi)
+endif
+
 CC = $(TOOLPREFIX)gcc
 AS = $(TOOLPREFIX)gas
 LD = $(TOOLPREFIX)ld