Fixed up ivy annotations on the new structure supporting page_coloring.
[akaros.git] / user / parlib / src / Makefrag
index 089a8d0..4e8864c 100644 (file)
@@ -1,39 +1,46 @@
 USER_PARLIB_SRC_DIR = $(USER_PARLIB_DIR)/src
 OBJDIRS += $(USER_PARLIB_SRC_DIR)
 
-USER_PARLIB_SRC_CFLAGS   := $(USER_PARLIB_CFLAGS)
-
-USER_PARLIB_SRC_SRCFILES := $(USER_PARLIB_SRC_DIR)/console.c \
-                            $(USER_PARLIB_SRC_DIR)/libmain.c \
-                            $(USER_PARLIB_SRC_DIR)/null.c \
-                            $(USER_PARLIB_SRC_DIR)/exit.c \
-                            $(USER_PARLIB_SRC_DIR)/panic.c \
-                            $(USER_PARLIB_SRC_DIR)/printf.c \
-                            $(USER_PARLIB_SRC_DIR)/printfmt.c \
-                            $(USER_PARLIB_SRC_DIR)/readline.c \
-                            $(USER_PARLIB_SRC_DIR)/string.c \
+PATCHFILE = $(OBJDIR)/$(USER_PARLIB_DIR)/libc_patch.i
+
+USER_PARLIB_SRC_CFLAGS   := $(USER_CFLAGS) --nopatch --patch=$(PATCHFILE)\
+                            -I$(USER_PARLIB_DIR)/inc \
+                            -I$(USER_PARLIB_NEWLIB_DIR)/include
+
+USER_PARLIB_SRC_SRCFILES := $(USER_PARLIB_SRC_DIR)/debug.c \
+                            $(USER_PARLIB_SRC_DIR)/debugfmt.c \
                             $(USER_PARLIB_SRC_DIR)/syscall.c \
-                            $(USER_PARLIB_SRC_DIR)/asynccall.c \
-                            $(USER_PARLIB_SRC_DIR)/timer.c 
+                            $(USER_PARLIB_SRC_DIR)/parlibmain.c \
+                            $(USER_PARLIB_SRC_DIR)/channel.c \
+                            $(USER_PARLIB_ARCH_SRCFILES)
 
 USER_PARLIB_SRC_OBJFILES := $(patsubst $(USER_PARLIB_SRC_DIR)/%.c, \
-                            $(OBJDIR)/$(USER_PARLIB_DIR)/%.o,  \
+                            $(OBJDIR)/$(USER_PARLIB_SRC_DIR)/%.o, \
                             $(USER_PARLIB_SRC_SRCFILES))
 USER_PARLIB_SRC_OBJFILES := $(patsubst $(USER_PARLIB_SRC_DIR)/%.S, \
-                            $(OBJDIR)/$(USER_PARLIB_DIR)/%.o,  \
+                            $(OBJDIR)/$(USER_PARLIB_SRC_DIR)/%.o, \
                             $(USER_PARLIB_SRC_OBJFILES))
 
-$(OBJDIR)/$(USER_PARLIB_DIR)/%.o: $(USER_PARLIB_SRC_DIR)/%.c
+ANNOTS := $(shell dirname $(shell which ivycc))
+ANNOTS := $(ANNOTS)/../lib/ivy/include/deputy/annots.h
+
+$(PATCHFILE): $(USER_PARLIB_DIR)/inc/libc_patch.h
+       @echo + cpp [PARLIB] $^
+       @mkdir -p $(@D)
+       $(V)gcc -E -include $(ANNOTS) -o $@ $^
+
+$(OBJDIR)/$(USER_PARLIB_SRC_DIR)/%.o: $(USER_PARLIB_SRC_DIR)/%.c $(PATCHFILE)
        @echo + cc [PARLIB] $<
        @mkdir -p $(@D)
        $(V)$(CC) $(USER_PARLIB_SRC_CFLAGS) -c -o $@ $<
 
-$(OBJDIR)/$(USER_PARLIB_DIR)/%.o: $(USER_PARLIB_SRC_DIR)/%.S
+$(OBJDIR)/$(USER_PARLIB_SRC_DIR)/%.o: $(USER_PARLIB_SRC_DIR)/%.S
        @echo + as [PARLIB] $<
        @mkdir -p $(@D)
        $(V)$(CC) $(USER_PARLIB_SRC_CFLAGS) -c -o $@ $<
 
 $(OBJDIR)/$(USER_PARLIB_DIR)/libparlib.a: $(USER_PARLIB_SRC_OBJFILES)
        @echo + ar [PARLIB] $@
+       @mkdir -p $(@D)
        $(V)$(AR) r $@ $(USER_PARLIB_SRC_OBJFILES) 2>/dev/null