diff --git a/Makefile b/Makefile index 7b02803..bfa5689 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,8 @@ include config.mk BIN := bin BUILD := build LIB := lib -PATHS := $(BUILD) $(BIN) $(LIB) + +LDLIBS := -lm -lc -lpipewire-0.3 # Macro definitions define mkbin @@ -19,19 +20,21 @@ define mklib $(addprefix $(LIB)/,$1) endef -all: $(PATHS) $(BIN)/pw-test +all: $(BUILD) $(BIN) $(BIN)/pw-test $(BIN)/pw-test: $(call mklib, main.c) $(CC) $(CFLAGS) -o $(BUILD)/pw-test.o -c $^ - $(LD) -o $@ $(BUILD)/pw-test.o + $(LD) $(LDFLAGS) $(LDLIBS) -o $@ $(BUILD)/pw-test.o -$(PATHS): +$(BUILD) $(BIN): mkdir -p $@ + .PHONY: run run: command $(BIN)/pw-test .PHONY: test test: clean all run + .PHONY: clean clean: rm -rf $(BUILD) $(BIN) compile_commands.json diff --git a/config.mk b/config.mk index 3591f5d..02810dd 100644 --- a/config.mk +++ b/config.mk @@ -1,4 +1,23 @@ -# === C Compiler+Linker === -LD = ld -CC = gcc -CFLAGS = +# === C Compiler COnfiguration === +COMPILER := gcc +CFLAGS := +LDFLAGS := + +# === Nix Mutations === +ifdef NIX_PATH + +ifdef NIX_CC +# TODO: will using the Nix gcc-wrapper break Bear? +override COMPILER := $(NIX_CC)/bin/gcc +endif # NIX_CC + +# flake.nix adds NIX_CFLAGS_COMPILER/DORNE_LDFLAGS to env +CFLAGS += $(NIX_CFLAGS_COMPILE) +LDFLAGS += $(DORNE_LDFLAGS) + +endif # NIX_PATH + + +# C Compiler+Linker Commands +CC = $$([ -x "$$(command -v bear)" ] && echo 'bear -- ') $(COMPILER) +LD = $(COMPILER)