Event helpers for userspace
[akaros.git] / user / parlib / Makefrag
1 # Makefile fragment for ROS kernel.
2 # This is NOT a complete makefile;
3 # you must run GNU make in the top-level directory
4 # where the GNUmakefile is located.
5 #
6
7 USER_PARLIB_DIR = $(USER_DIR)/parlib
8 USER_PARLIB_CFLAGS += $(USER_CFLAGS)
9 OBJDIRS += $(USER_PARLIB_DIR)
10 ROS_USER_LIBS += $(OBJDIR)/$(USER_PARLIB_DIR)/libparlib.a
11
12 USER_PARLIB_SRCFILES := \
13                  $(USER_PARLIB_DIR)/pthread.c \
14                  $(USER_PARLIB_DIR)/bthread.c \
15                  $(USER_PARLIB_DIR)/vcore.c \
16                  $(USER_PARLIB_DIR)/mcs.c \
17                  $(USER_PARLIB_DIR)/panic.c \
18                  $(USER_PARLIB_DIR)/syscall.c \
19                  $(USER_PARLIB_DIR)/debugfmt.c \
20                  $(USER_PARLIB_DIR)/timing.c \
21                  $(USER_PARLIB_DIR)/debug.c \
22                  $(USER_PARLIB_DIR)/event.c \
23                  $(USER_PARLIB_DIR)/asynccall.c
24
25 # Only build files if they exist.
26 USER_PARLIB_SRCFILES := $(wildcard $(USER_PARLIB_SRCFILES))
27
28 USER_PARLIB_OBJFILES  := $(patsubst $(USER_PARLIB_DIR)/%.c, \
29                              $(OBJDIR)/$(USER_PARLIB_DIR)/%.o, \
30                              $(USER_PARLIB_SRCFILES))
31 USER_PARLIB_OBJFILES  := $(patsubst $(USER_PARLIB_DIR)/%.S, \
32                              $(OBJDIR)/$(USER_PARLIB_DIR)/%.o, \
33                              $(USER_PARLIB_OBJFILES))
34
35 USER_PARLIB_LDDEPENDS := $(USER_PARLIB_OBJFILES)
36
37 $(OBJDIR)/$(USER_PARLIB_DIR)/%.o: $(USER_PARLIB_DIR)/%.c
38         @echo + cc [USER PARLIB] $<
39         @mkdir -p $(@D)
40         $(V)$(CC) $(USER_PARLIB_CFLAGS) -c -o $@ $<
41
42 $(OBJDIR)/$(USER_PARLIB_DIR)/%.o: $(USER_PARLIB_DIR)/%.S
43         @echo + as [USER PARLIB] $<
44         @mkdir -p $(@D)
45         $(V)$(CC) $(USER_PARLIB_CFLAGS) -D__ASSEMBLER__ -c -o $@ $<
46
47 $(OBJDIR)/$(USER_PARLIB_DIR)/libparlib.a: $(USER_PARLIB_LDDEPENDS)
48         @echo + ar [USER PARLIB] $@
49         @mkdir -p $(@D)
50         $(V)$(AR) r $@ $(USER_PARLIB_OBJFILES) 2>/dev/null
51