Async error handling
[akaros.git] / GNUmakefile
index 76cc457..66b2182 100644 (file)
@@ -61,6 +61,7 @@ LD    := $(GCCPREFIX)ld
 OBJCOPY        := $(GCCPREFIX)objcopy
 OBJDUMP        := $(GCCPREFIX)objdump
 NM     := $(GCCPREFIX)nm
+ARCH ?= NONE
 
 # Native commands
 NCC    := gcc $(CC_VER) -pipe
@@ -70,9 +71,17 @@ PERL := perl
 # Compiler flags
 # -fno-builtin is required to avoid refs to undefined functions in the kernel.
 # Only optimize to -O1 to discourage inlining, which complicates backtraces.
-CFLAGS := $(CFLAGS) $(DEFS) $(LABDEFS) -O -fno-builtin -fno-stack-protector -I$(TOP) -MD -Wall -Wno-format -Wno-unused -gstabs
+CFLAGS := $(CFLAGS) $(DEFS) $(LABDEFS) -D$(ARCH) -O -fno-builtin -fno-stack-protector -I$(TOP) -MD -Wall -Wno-format -Wno-unused -gstabs
+
+# 64 Bit machines need these settings to compile and link
+UNAME=$(shell uname -m)
+ifeq ($(UNAME),x86_64)
+       LD += -melf_i386
+       CFLAGS += -m32
+       GCC_LIB = $(shell $(CC) -print-libgcc-file-name | sed 's/libgcc.a/32\/libgcc.a/')
+endif
 
-# Linker flags for JOS user programs
+# Linker flags for ROS user programs
 ULDFLAGS := -T user/user.ld
 
 # Lists that the */Makefrag makefile fragments will add to
@@ -91,8 +100,8 @@ all:
 .PRECIOUS: %.o $(OBJDIR)/boot/%.o $(OBJDIR)/kern/%.o \
        $(OBJDIR)/lib/%.o $(OBJDIR)/fs/%.o $(OBJDIR)/user/%.o
 
-KERN_CFLAGS := $(CFLAGS) -DJOS_KERNEL -gstabs
-USER_CFLAGS := $(CFLAGS) -DJOS_USER -gstabs
+KERN_CFLAGS := $(CFLAGS) -DROS_KERNEL -gstabs
+USER_CFLAGS := $(CFLAGS) -DROS_USER -gstabs
 
 
 
@@ -103,13 +112,11 @@ include lib/Makefrag
 include ivylib/Makefrag
 include kern/Makefrag
 include user/Makefrag
+-include Makelocal
 
 
 IMAGES = $(OBJDIR)/kern/bochs.img
 
-bochs: $(IMAGES)
-       bochs 'display_library: nogui'
-
 # For deleting the build
 clean:
        rm -rf $(OBJDIR)