链接描述文件更改时 Makefile 不会重新编译
Makefile doesn't recompile when linker script changes
我有一个Makefile
如下。当链接描述文件 riscv32i.ld
更改时,make
不会重新编译程序。我需要做什么来添加对该文件的依赖?
AS=riscv32-unknown-elf-as
CC=riscv32-unknown-elf-gcc
OC=riscv32-unknown-elf-objcopy
CFLAGS=-nostdlib -T riscv32i.ld
MAKEFLAGS += --silent
SOURCES=$(wildcard *.asm)
OBJ=$(patsubst %.asm,%.o, $(SOURCES))
ELF=$(patsubst %.asm,%.elf, $(SOURCES))
HEX=$(patsubst %.asm,%.hex, $(SOURCES))
.PHONY: all clean
all: $(HEX)
$(HEX): %.hex: %.elf
$(OC) -O binary $< $@
$(ELF): %.elf: %.o
$(CC) $(CFLAGS) -o $@ $<
$(OBJ): %.o: %.asm
$(AS) -o $@ $<
clean:
rm -f *.o *.elf *.hex
好吧我是个白痴。只需添加 riscv32i.ld
作为 $(ELF)
的先决条件即可:
AS=riscv32-unknown-elf-as
CC=riscv32-unknown-elf-gcc
OC=riscv32-unknown-elf-objcopy
CFLAGS=-nostdlib -T riscv32i.ld
MAKEFLAGS += --silent
SOURCES=$(wildcard *.asm)
OBJ=$(patsubst %.asm,%.o, $(SOURCES))
ELF=$(patsubst %.asm,%.elf, $(SOURCES))
HEX=$(patsubst %.asm,%.hex, $(SOURCES))
.PHONY: all clean
all: $(HEX)
$(HEX): %.hex: %.elf
$(OC) -O binary $< $@
$(ELF): %.elf: %.o riscv32i.ld
$(CC) $(CFLAGS) -o $@ $<
$(OBJ): %.o: %.asm
$(AS) -o $@ $<
clean:
rm -f *.o *.elf *.hex
我有一个Makefile
如下。当链接描述文件 riscv32i.ld
更改时,make
不会重新编译程序。我需要做什么来添加对该文件的依赖?
AS=riscv32-unknown-elf-as
CC=riscv32-unknown-elf-gcc
OC=riscv32-unknown-elf-objcopy
CFLAGS=-nostdlib -T riscv32i.ld
MAKEFLAGS += --silent
SOURCES=$(wildcard *.asm)
OBJ=$(patsubst %.asm,%.o, $(SOURCES))
ELF=$(patsubst %.asm,%.elf, $(SOURCES))
HEX=$(patsubst %.asm,%.hex, $(SOURCES))
.PHONY: all clean
all: $(HEX)
$(HEX): %.hex: %.elf
$(OC) -O binary $< $@
$(ELF): %.elf: %.o
$(CC) $(CFLAGS) -o $@ $<
$(OBJ): %.o: %.asm
$(AS) -o $@ $<
clean:
rm -f *.o *.elf *.hex
好吧我是个白痴。只需添加 riscv32i.ld
作为 $(ELF)
的先决条件即可:
AS=riscv32-unknown-elf-as
CC=riscv32-unknown-elf-gcc
OC=riscv32-unknown-elf-objcopy
CFLAGS=-nostdlib -T riscv32i.ld
MAKEFLAGS += --silent
SOURCES=$(wildcard *.asm)
OBJ=$(patsubst %.asm,%.o, $(SOURCES))
ELF=$(patsubst %.asm,%.elf, $(SOURCES))
HEX=$(patsubst %.asm,%.hex, $(SOURCES))
.PHONY: all clean
all: $(HEX)
$(HEX): %.hex: %.elf
$(OC) -O binary $< $@
$(ELF): %.elf: %.o riscv32i.ld
$(CC) $(CFLAGS) -o $@ $<
$(OBJ): %.o: %.asm
$(AS) -o $@ $<
clean:
rm -f *.o *.elf *.hex