Feat: lab 3 w/o adv 2
This commit is contained in:
39
userprog/Makefile
Normal file
39
userprog/Makefile
Normal file
@@ -0,0 +1,39 @@
|
||||
MAKE := make
|
||||
MAKEFLAGS += -j 8
|
||||
|
||||
ARCH := aarch64
|
||||
GNU := $(ARCH)-linux-gnu
|
||||
|
||||
CC := $(GNU)-gcc
|
||||
CCFLAGS += -Wall -Wextra -O0 \
|
||||
-nostdinc -nostdlib -nostartfiles -nodefaultlibs \
|
||||
-Wno-unused-parameter -Wno-unused-value -Wno-main -g
|
||||
|
||||
LD := $(GNU)-ld
|
||||
LDFLAGS += -g -nostdlib -no-pie
|
||||
OBJCOPY := $(GNU)-objcopy
|
||||
|
||||
LD_SCRIPT := linker.ld
|
||||
SRCS := $(shell find . -name '*.[cS]')
|
||||
OBJS := $(SRCS:%=%.o)
|
||||
|
||||
.PHONY: all
|
||||
|
||||
all: userprog
|
||||
|
||||
userprog: userprog.elf
|
||||
$(OBJCOPY) -O binary $< $@
|
||||
|
||||
userprog.elf: $(LD_SCRIPT) $(OBJS)
|
||||
$(LD) -o $@ -T $(LD_SCRIPT) $(OBJS) $(LDFLAGS)
|
||||
|
||||
%.S.o: %.S
|
||||
mkdir -p $(dir $@)
|
||||
$(CC) -c $< -o $@ $(CCFLAGS)
|
||||
|
||||
%.c.o: %.c
|
||||
mkdir -p $(dir $@)
|
||||
$(CC) -c $< -o $@ $(CCFLAGS)
|
||||
|
||||
clean:
|
||||
-rm $(OBJS) userprog userprog.elf
|
||||
Reference in New Issue
Block a user