Debug code to see remote kmsgs
[akaros.git] / kern / src / Makefrag
index 2041660..b7b735f 100644 (file)
@@ -7,6 +7,10 @@
 KERN_SRC_DIR = $(KERN_DIR)/src
 OBJDIRS += $(KERN_SRC_DIR)
 KERN_CPIO = initramfs.cpio
+KERN_CPIO_OBJ = $(KERN_CPIO).o
+ifneq ($(EXT2_BDEV),)
+EXT2_BDEV_OBJ_FULL = $(OBJDIR)/$(KERN_DIR)/$(shell basename $(EXT2_BDEV)).o
+endif
 
 # entry.S must be first, so that it's the first code in the text segment!!!
 #
@@ -29,14 +33,13 @@ KERN_SRCFILES := $(KERN_ARCH_SRCFILES) \
                  $(KERN_SRC_DIR)/env.c \
                  $(KERN_SRC_DIR)/manager.c \
                  $(KERN_SRC_DIR)/syscall.c \
-                 $(KERN_SRC_DIR)/timer.c \
+                 $(KERN_SRC_DIR)/time.c \
                  $(KERN_SRC_DIR)/kfs.c \
                  $(KERN_SRC_DIR)/process.c \
                  $(KERN_SRC_DIR)/kmalloc.c \
                  $(KERN_SRC_DIR)/hashtable.c \
                  $(KERN_SRC_DIR)/schedule.c \
                  $(KERN_SRC_DIR)/mm.c \
-                 $(KERN_SRC_DIR)/resource.c \
                  $(KERN_SRC_DIR)/slab.c \
                  $(KERN_SRC_DIR)/elf.c \
                  $(KERN_SRC_DIR)/frontend.c \
@@ -48,6 +51,14 @@ KERN_SRCFILES := $(KERN_ARCH_SRCFILES) \
                  $(KERN_SRC_DIR)/ext2fs.c \
                  $(KERN_SRC_DIR)/testing.c \
                  $(KERN_SRC_DIR)/pagemap.c \
+                 $(KERN_SRC_DIR)/kthread.c \
+                 $(KERN_SRC_DIR)/eth_audio.c \
+                 $(KERN_SRC_DIR)/net.c \
+                 $(KERN_SRC_DIR)/event.c \
+                 $(KERN_SRC_DIR)/alarm.c \
+                 $(KERN_SRC_DIR)/kdebug.c \
+                 $(KERN_SRC_DIR)/ucq.c \
+                 $(KERN_SRC_DIR)/console.c \
                  $(KERN_SRC_DIR)/arsc.c
 
 # Only build files if they exist.
@@ -65,7 +76,8 @@ KERN_OBJFILES  := $(patsubst $(KERN_DIR)/%.S, \
 
 KERN_LDDEPENDS := $(KERN_OBJFILES) $(ARCH_DIR)/$(TARGET_ARCH)/kernel.ld \
                   $(OBJDIR)/$(KERN_DIR)/libivykern.a \
-                  $(OBJDIR)/$(KERN_DIR)/$(KERN_CPIO) $(EXT2_BDEV)
+                  $(OBJDIR)/$(KERN_DIR)/$(KERN_CPIO_OBJ) \
+                  $(EXT2_BDEV_OBJ_FULL)
 
 KERN_LDLIBS    := -livykern
 
@@ -85,6 +97,15 @@ $(OBJDIR)/$(KERN_DIR)/$(KERN_CPIO) initramfs: $(KERN_INITRAMFS_FILES)
         cd $$OLDPWD; \
     done;
 
+LD_EMULATION := $(shell $(OBJDUMP) -i | grep -v BFD | grep ^[a-z] | head -n1)
+LD_ARCH := $(shell $(OBJDUMP) -i | grep -v BFD | grep "^  [a-z]" | head -n1)
+
+$(OBJDIR)/$(KERN_DIR)/$(KERN_CPIO_OBJ): $(OBJDIR)/$(KERN_DIR)/$(KERN_CPIO)
+       $(V)$(OBJCOPY) -I binary -B $(LD_ARCH) -O $(LD_EMULATION) $^ $@
+
+$(EXT2_BDEV_OBJ_FULL): $(EXT2_BDEV)
+       $(V)$(OBJCOPY) -I binary -B $(LD_ARCH) -O $(LD_EMULATION) $^ $@
+
 $(OBJDIR)/$(KERN_DIR)/%.o: $(KERN_DIR)/%.c
        @echo + cc [KERN] $<
        @mkdir -p $(@D)
@@ -98,8 +119,8 @@ $(OBJDIR)/$(KERN_DIR)/%.o: $(KERN_DIR)/%.S
 $(OBJDIR)/$(KERN_DIR)/kernel: $(KERN_LDDEPENDS)
        @echo + ld [KERN] $@
        $(V)$(LD) -o $@ $(KERN_LDFLAGS) $(KERN_OBJFILES) $(KERN_LDLIBS) \
-                       $(KERN_GCC_LIB) -b binary $(OBJDIR)/$(KERN_DIR)/$(KERN_CPIO) \
-                       $(EXT2_BDEV)
+                       $(KERN_GCC_LIB) $(OBJDIR)/$(KERN_DIR)/$(KERN_CPIO_OBJ) \
+                       $(EXT2_BDEV_OBJ_FULL)
        $(V)$(OBJDUMP) -S $@ > $@.asm
        $(V)$(NM) -n $@ > $@.sym