Вывод Makefile в подпапку

Я работаю над настройкой проекта для игры GameBoy, я хочу, чтобы файлы выводились в подпапку проекта, а не в корень. Добавление foldername перед именами файлов, похоже, не работает и не дает никаких советов, которые я нашел в Интернете.

Это то, что у меня сейчас есть для make-файла.

CC  = ../../../bin/lcc -Wa-l -Wl-m -DUSE_SFR_FOR_REG


BINS    = new.gb

all:    $(BINS)

%.o:    %.c
    $(CC) -c -o $@ $<

%.s:    %.c
    $(CC) -S -o $@ $<

%.o:    %.s
    $(CC) -c -o $@ $<

%.gb:   %.o
    $(CC) -o $@ $<

clean:
    rm -f *.o *.lst *.map *.gb

# Link file, and write 0x80 at position 0x143 in header
new.gb: new.o
    $(CC) -Wl-yp0x143=0x80 -o new.gb new.o

Благодарю.

1 ответ

Решение

Поскольку у вас есть только один исходный файл, вам не нужно компилировать .o файл отдельно, просто используйте одноразовое правило make

CC       := ../../../bin/lcc
CPPFLAGS := -DUSE_SFR_FOR_REG
CFLAGS   := -Wa-l
LDFLAGS  := -Wl-m -Wl-yp0x143=0x80

subdir/new.gb: new.c
    $(LINK.c) $^ $(LDLIBS) -o $@

.PHONY: clean
clean:
    $(RM) $(addprefix subdir/new,.lst .map .gb)
Другие вопросы по тегам