Makefile fixes for error logging and patchfile for newlib
[akaros.git] / user / parlib / src / Makefrag
1 USER_PARLIB_SRC_DIR = $(USER_PARLIB_DIR)/src
2 OBJDIRS += $(USER_PARLIB_SRC_DIR)
3 PATCHFILE = $(USER_PARLIB_DIR)/inc/libc_patch.i
4
5 USER_PARLIB_SRC_CFLAGS   := $(USER_CFLAGS) --nopatch --patch=$(PATCHFILE)\
6                             -I$(USER_PARLIB_DIR)/inc \
7                             -I$(USER_PARLIB_NEWLIB_DIR)/include
8
9 USER_PARLIB_SRC_SRCFILES := $(USER_PARLIB_SRC_DIR)/debug.c \
10                             $(USER_PARLIB_SRC_DIR)/debugfmt.c \
11                             $(USER_PARLIB_SRC_DIR)/syscall.c \
12                             $(USER_PARLIB_SRC_DIR)/parlibmain.c \
13                             $(USER_PARLIB_SRC_DIR)/channel.c \
14                             $(USER_PARLIB_SRC_DIR)/$(TARGET_ARCH)/syscall.c \
15                             $(USER_PARLIB_SRC_DIR)/$(TARGET_ARCH)/entry.S \
16                             $(USER_PARLIB_SRC_DIR)/$(TARGET_ARCH)/newlib_backend.c
17
18 USER_PARLIB_SRC_OBJFILES := $(patsubst $(USER_PARLIB_SRC_DIR)/%.c, \
19                             $(OBJDIR)/$(USER_PARLIB_DIR)/%.o, \
20                             $(USER_PARLIB_SRC_SRCFILES))
21 USER_PARLIB_SRC_OBJFILES := $(patsubst $(USER_PARLIB_SRC_DIR)/%.S, \
22                             $(OBJDIR)/$(USER_PARLIB_DIR)/%.o, \
23                             $(USER_PARLIB_SRC_OBJFILES))
24
25 ANNOTS = /usr/local/lib/ivy/include/deputy/annots.h
26 $(PATCHFILE): $(USER_PARLIB_DIR)/inc/libc_patch.h
27         @echo + cpp [PARLIB] $<
28         $(V)gcc -E -include $(ANNOTS) -o $@ $^
29
30 $(OBJDIR)/$(USER_PARLIB_DIR)/%.o: $(USER_PARLIB_SRC_DIR)/%.c $(PATCHFILE)
31         @echo + cc [PARLIB] $<
32         @mkdir -p $(@D)
33         $(V)$(CC) $(USER_PARLIB_SRC_CFLAGS) -c -o $@ $<
34
35 $(OBJDIR)/$(USER_PARLIB_DIR)/%.o: $(USER_PARLIB_SRC_DIR)/%.S
36         @echo + as [PARLIB] $<
37         @mkdir -p $(@D)
38         $(V)$(CC) $(USER_PARLIB_SRC_CFLAGS) -c -o $@ $<
39
40 $(OBJDIR)/$(USER_PARLIB_DIR)/libparlib.a: $(USER_PARLIB_SRC_OBJFILES)
41         @echo + ar [PARLIB] $@
42         @mkdir -p $(@D)
43         $(V)$(AR) r $@ $(USER_PARLIB_SRC_OBJFILES) 2>/dev/null
44