OBJDIRS += lib

LIB_SRCFILES :=		lib/console.c \
			lib/libmain.c \
			lib/exit.c \
			lib/panic.c \
			lib/printf.c \
			lib/printfmt.c \
			lib/readline.c \
			lib/string.c \
			lib/syscall.c

LIB_SRCFILES :=		$(LIB_SRCFILES) \
			lib/pgfault.c \
			lib/pfentry.S \
			lib/fork.c \
			lib/ipc.c

LIB_SRCFILES :=		$(LIB_SRCFILES) \
			lib/args.c \
			lib/fd.c \
			lib/file.c \
			lib/fprintf.c \
			lib/pageref.c \
			lib/spawn.c

LIB_SRCFILES :=		$(LIB_SRCFILES) \
			lib/sockets.c \
			lib/nsipc.c \
			lib/malloc.c
LIB_SRCFILES :=		$(LIB_SRCFILES) \
			lib/pipe.c \
			lib/wait.c

LIB_OBJFILES := $(patsubst lib/%.c, $(OBJDIR)/lib/%.o, $(LIB_SRCFILES))
LIB_OBJFILES := $(patsubst lib/%.S, $(OBJDIR)/lib/%.o, $(LIB_OBJFILES))

$(OBJDIR)/lib/%.o: lib/%.c $(OBJDIR)/.vars.USER_CFLAGS
	@echo + cc[USER] $<
	@mkdir -p $(@D)
	$(V)$(CC) -nostdinc $(USER_CFLAGS) -c -o $@ $<

$(OBJDIR)/lib/%.o: lib/%.S $(OBJDIR)/.vars.USER_CFLAGS
	@echo + as[USER] $<
	@mkdir -p $(@D)
	$(V)$(CC) -nostdinc $(USER_CFLAGS) -c -o $@ $<

$(OBJDIR)/lib/libjos.a: $(LIB_OBJFILES)
	@echo + ar $@
	$(V)$(AR) r $@ $(LIB_OBJFILES)
