37 lines
1.1 KiB
Plaintext
37 lines
1.1 KiB
Plaintext
OBJDIRS += user
|
|
|
|
USER_LIBSRCS:= lib/printfmt.c \
|
|
lib/string.c \
|
|
lib/user/assert.c \
|
|
lib/user/astart.asm \
|
|
lib/user/stdio.c \
|
|
lib/user/syscall.c \
|
|
|
|
USER_LIBOBJS := $(patsubst %.c, $(OBJDIR)/%.o, $(USER_LIBSRCS))
|
|
USER_LIBOBJS := $(patsubst %.asm, $(OBJDIR)/%.o, $(USER_LIBOBJS))
|
|
|
|
USER_SRCS := user/testpid.c \
|
|
user/testkey.c \
|
|
user/delay.c \
|
|
user/snake.bin \
|
|
|
|
USER_OBJS := $(patsubst %.c, $(OBJDIR)/%.o, $(USER_SRCS))
|
|
|
|
USER_BINS := $(patsubst %.bin, $(OBJDIR)/%.bin, $(USER_SRCS))
|
|
USER_BINS := $(patsubst %.c, $(OBJDIR)/%.bin, $(USER_SRCS))
|
|
|
|
$(OBJDIR)/user/%.o: user/%.c $(OBJDIR)/.vars.CFLAGS
|
|
@echo + cc $<
|
|
@mkdir -p $(@D)
|
|
@$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(OBJDIR)/user/%.bin: user/%.bin
|
|
@echo + cp $<
|
|
@echo 'd2dcd918806dfd71bb55e52a4081e95e' > $(OBJDIR)/.snakemd5
|
|
@md5sum $< | awk '{print $$1}' | cmp -s $(OBJDIR)/.snakemd5 || (echo 'you are a cheater!!!'; exit 1;)
|
|
@mkdir -p $(@D)
|
|
@cp $< $(@D)
|
|
|
|
$(OBJDIR)/user/%.bin: $(OBJDIR)/user/%.o $(USER_LIBOBJS) $(OBJDIR)/.vars.LDFLAGS
|
|
@echo + ld $@
|
|
@$(LD) $(LDFLAGS) -o $@ $< $(USER_LIBOBJS) $(GCC_LIB) |