История изменений
Исправление vbr, (текущая версия) :
Вот у меня с этим проблемы.
Либо пишем
debug: build/debug/app
release: build/release/app
build/debug/app: build/debug/main.o
$(CC) ...
build/debug/%.o: src/%.c
$(CC) ...
build/release/app: build/release/main.o
$(CC) ...
build/release/%.o: src/%.c
$(CC) ...
Т.е. дублируем правила для каждой конфигурации. Чтобы не дублировать - придётся делать генерацию кусков через eval/call. В общем это уже не простой makefile получается.
Либо пишем
app: build/$(target)/app
build/$(target)/app: build/$(target)/main.o
$(CC) ...
build/$(target)/%.o: src/%.c
$(CC) ...
и вызываем через make target=debug app
. Вроде относительно просто, но вызывать неудобно, автодополнение не работает (в первом случае zsh как-то умеет парсить Makefile и выдаёт автодополнение, к чему я уже привык) и вообще как-то странновато это всё выглядит…
Исходная версия vbr, :
Вот у меня с этим проблемы.
Либо пишем
debug: build/debug/app
release: build/release/app
build/debug/app: build/debug/main.o
$(CC) ...
build/debug/%.o: src/%.c
$(CC) ...
build/release/app: build/release/main.o
$(CC) ...
build/release/%.o: src/%.c
$(CC) ...
Т.е. дублируем правила для каждой конфигурации. Чтобы не дублировать - придётся делать генерацию кусков через eval/call. В общем это уже не простой makefile получается.
Либо пишем
app: build/$(target)/app
build/$(target)/app: build/$(target)/main.o
$(CC) ...
build/$(target)/%.o: src/%.c
$(CC) ...
и вызываем через make target=debug app
. Вроде относительно просто, но вызывать неудобно, автодополнение не работает (в первом случае zsh как-то умеет парсить Makefile и выдаёт автодополнение, к чему я уже привык).