Fix a bunch of %lud and %lux
[akaros.git] / Makefile
index 0499737..5f5322e 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -317,7 +317,7 @@ CFLAGS_KERNEL += -Wall -Wno-format -Wno-unused
 CFLAGS_KERNEL += -DROS_KERNEL 
 CFLAGS_KERNEL += -include include/generated/autoconf.h -include include/common.h
 ifeq ($(CONFIG_64BIT),y)
-CFLAGS_KERNEL += -m64
+CFLAGS_KERNEL += -m64 -g
 else
 CFLAGS_KERNEL += -m32 -gstabs
 endif
@@ -362,7 +362,7 @@ CMP_KERNEL_OBJ := $(KERNEL_OBJ).gz
 # KFS_PATH.  Future rules related to KFS will have issues (mkdir with no
 # argument, or a find of the entire pwd).  It's also possible someone provided
 # an empty path.  To deal with both, we'll just have a sensible default.
-kfs-paths :=  $(patsubst "%",%,$(CONFIG_KFS_PATHS))
+kfs-paths :=  $(subst $\",,$(CONFIG_KFS_PATHS))
 ifeq ($(kfs-paths),)
 kfs-paths := kern/kfs
 endif
@@ -416,18 +416,36 @@ endif
 ext2_bdev_obj = $(OBJDIR)/kern/$(shell basename $(ext2-bdev)).o
 endif
 
-kern_initramfs_files := $(shell mkdir -p $(kfs-paths); \
-                          find $(kfs-paths))
+# a bit hacky: we want to make sure the directories exist, and error out
+# otherwise.  we also want to error out before the initramfs target, otherwise
+# we might not get the error (if initramfs files are all up to date).  the
+# trickiest thing here is that kfs-paths-check could be stale and require an
+# oldconfig.  running make twice should suffice.
+kfs-paths-check := $(shell for i in $(kfs-paths); do \
+                               if [ ! -d "$$i" ]; then \
+                                   echo "Can't find KFS directory $$i"; \
+                                      $(MAKE) -f $(srctree)/Makefile \
+                                                                          silentoldconfig > /dev/null; \
+                                   exit -1; \
+                               fi; \
+                           done; echo "ok")
+
+ifneq (ok,$(kfs-paths-check))
+$(error $(kfs-paths-check), try make one more time in case of stale configs)
+endif
+
+kern_initramfs_files := $(shell find $(kfs-paths))
 
+# Need to make an empty cpio, then append each kfs-path's contents
 $(kern_cpio) initramfs: $(kern_initramfs_files)
        @echo "  Building initramfs:"
        @if [ "$(CONFIG_KFS_CPIO_BIN)" != "" ]; then \
         sh $(CONFIG_KFS_CPIO_BIN); \
     fi
+       @cat /dev/null | cpio --quiet -oH newc -O $(kern_cpio)
        $(Q)for i in $(kfs-paths); do cd $$i; \
         echo "    Adding $$i to initramfs..."; \
-        find -L . | cpio --quiet -oH newc > \
-                       $(CURDIR)/$(kern_cpio); \
+        find -L . | cpio --quiet -oAH newc -O $(CURDIR)/$(kern_cpio); \
         cd $$OLDPWD; \
     done;