Detect GCC 3.x versus 4.x and use -I- or -isystem, respectively, to
authorBen Pfaff <blp@cs.stanford.edu>
Tue, 19 Jul 2005 03:42:55 +0000 (03:42 +0000)
committerBen Pfaff <blp@cs.stanford.edu>
Tue, 19 Jul 2005 03:42:55 +0000 (03:42 +0000)
avoid ugly warnings on 4.x with -I-.

src/Make.config
src/Makefile.build
src/Makefile.userprog

index 8744f0da4a764c4022f72669668a498f271c6bea..f9822b66d468f3198b504056f538bbb8b09b08bb 100644 (file)
@@ -18,11 +18,21 @@ LD = i386-elf-ld
 OBJCOPY = i386-elf-objcopy
 endif
 
+# GCC 3.3 specifies directories for #include <> as "-I- -Idir"
+# GCC 4.x specifies directories for #include <> as "-isystem dir"
+# Figure out which format to use.
+ifeq (0, $(shell $(CC) -v 2>&1 | grep 'gcc version 4' >/dev/null 2>&1; echo $$?))
+SYSINCFLAGS = $(patsubst %,-isystem %,$(SYSINCDIRS))
+else
+SYSINCFLAGS = -I- $(patsubst %,-I%,$(SYSINCDIRS))
+endif
+
 # Compiler and assembler invocation.
 DEFINES =
 WARNINGS = -Wall -W -Wstrict-prototypes -Wmissing-prototypes -Wsystem-headers
 CFLAGS = -g -MMD -msoft-float -masm=intel
-CPPFLAGS = -nostdinc -I$(SRCDIR) -I- -I$(SRCDIR)/lib
+SYSINCDIRS = $(SRCDIR)/lib
+CPPFLAGS = -nostdinc -I$(SRCDIR) $(SYSINCFLAGS)
 ASFLAGS = -Wa,--gstabs -MMD
 LDFLAGS = 
 
index cf0f9b6f152891323df145b820dfc9bfc414e544..2e1d6e93a255ba52a2d2f4efb4ce1cd79bf2335a 100644 (file)
@@ -9,7 +9,7 @@ include ../Make.vars
 include ../../tests/Make.tests
 
 # Compiler and assembler options.
-os.dsk: CPPFLAGS += -I$(SRCDIR)/lib/kernel
+os.dsk: SYSINCDIRS += $(SRCDIR)/lib/kernel
 
 # Core kernel.
 threads_SRC  = threads/init.c          # Main program.
index 72e35ce7ee92a285e4d1b6562318247bda427754..dddb1aa4b62f5ca1257dd95130dc95e6c86bcb7f 100644 (file)
@@ -2,7 +2,7 @@
 
 include $(SRCDIR)/Make.config
 
-$(PROGS): CPPFLAGS += -I$(SRCDIR)/lib/user -I.
+$(PROGS): SYSINCDIRS += $(SRCDIR)/lib/user
 
 # Linker flags.
 $(PROGS): LDFLAGS = -nostdlib -static -Wl,-T,$(LDSCRIPT)