# -*- makefile -*- SHELL = /bin/sh VPATH = $(SRCDIR) # Binary utilities. # If the host appears to be x86, use the normal tools. # Otherwise assume cross-tools are installed as i386-elf-*. X86 = i.86\|pentium.*\|[pk][56]\|nexgen\|viac3\|6x86\|athlon.* ifneq (0, $(shell expr `uname -m` : '$(X86)')) CC = gcc LD = ld OBJCOPY = objcopy else CC = i386-elf-gcc 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 SYSINCDIRS = $(SRCDIR)/lib CPPFLAGS = -nostdinc -I$(SRCDIR) $(SYSINCFLAGS) ASFLAGS = -Wa,--gstabs -MMD LDFLAGS = %.o: %.c $(CC) -c $< -o $@ $(CFLAGS) $(CPPFLAGS) $(WARNINGS) $(DEFINES) %.o: %.S $(CC) -c $< -o $@ $(ASFLAGS) $(CPPFLAGS) $(DEFINES)