2025-09-03 02:32:13 +10:00
|
|
|
.DEFAULT_GOAL := all
|
|
|
|
|
|
|
|
|
|
include config.mk
|
|
|
|
|
|
|
|
|
|
# === BUILD ENVIRONMENT ===
|
|
|
|
|
BIN := bin
|
|
|
|
|
BUILD := build
|
2025-09-10 01:23:38 +10:00
|
|
|
|
2025-09-03 02:32:13 +10:00
|
|
|
LIB := lib
|
2025-09-10 01:23:38 +10:00
|
|
|
CLI := cli
|
2025-09-13 10:39:58 +10:00
|
|
|
CT := cursetree
|
2025-09-03 14:57:16 +10:00
|
|
|
|
2025-09-10 01:23:38 +10:00
|
|
|
# === MACRO DEFINITIONS ===
|
|
|
|
|
define objpath
|
|
|
|
|
$(addprefix $(BUILD)/,
|
|
|
|
|
$(addsuffix .o,
|
|
|
|
|
$(basename $(1))))
|
2025-09-03 02:32:13 +10:00
|
|
|
endef
|
2025-09-10 01:23:38 +10:00
|
|
|
define mkobj
|
|
|
|
|
$(foreach DEP, $?,
|
|
|
|
|
mkdir -p $(dir $(call objpath, $(DEP)))
|
2025-09-13 10:39:58 +10:00
|
|
|
$(CC) $(CFLAGS) $1 -o $(call objpath, $(DEP)) -c $(DEP))
|
2025-09-10 01:23:38 +10:00
|
|
|
|
|
|
|
|
$(LD) -r $(LDFLAGS) -o $@ $(call objpath, $?)
|
2025-09-03 02:32:13 +10:00
|
|
|
endef
|
|
|
|
|
|
2025-09-09 11:12:09 +10:00
|
|
|
# === BUILD TARGETS ===
|
2025-09-12 00:15:53 +10:00
|
|
|
all: $(BUILD) $(BIN) $(addprefix $(BIN)/,pw-test dorne)
|
2025-09-10 01:23:38 +10:00
|
|
|
$(BIN)/pw-test: $(addprefix $(LIB)/, main.c)
|
2025-09-09 19:42:41 +10:00
|
|
|
$(CC) $(CFLAGS) -o $(BUILD)/pw-test.o -c $^
|
2025-09-11 20:50:55 +10:00
|
|
|
$(CLD) $(CLDFLAGS) -lpipewire-0.3 -o $@ $(BUILD)/pw-test.o
|
2025-09-03 02:32:13 +10:00
|
|
|
|
2025-09-11 20:50:55 +10:00
|
|
|
$(BIN)/dorne: $(addprefix $(BUILD)/,dorne.o cursetree.o)
|
2025-09-11 17:41:14 +10:00
|
|
|
$(CLD) $(CLDFLAGS) -lncurses -o $@ $^
|
2025-09-09 11:27:01 +10:00
|
|
|
|
2025-09-03 14:57:16 +10:00
|
|
|
$(BUILD) $(BIN):
|
2025-09-03 02:32:13 +10:00
|
|
|
mkdir -p $@
|
2025-09-03 14:57:16 +10:00
|
|
|
|
2025-09-10 01:23:38 +10:00
|
|
|
$(BUILD)/dorne.o: $(addprefix $(CLI)/, main.c)
|
2025-09-13 10:39:58 +10:00
|
|
|
$(call mkobj,-Icursetree)
|
2025-09-13 10:58:31 +10:00
|
|
|
$(BUILD)/cursetree.o: $(addprefix $(CT)/, cursetree.c ncrswrap.c)
|
2025-09-13 10:39:58 +10:00
|
|
|
$(call mkobj,)
|
2025-09-13 10:47:48 +10:00
|
|
|
$(BUILD)/epty.o: $(addprefix $(CT)/, pty/child.c pty/epty.c pty/_pty.c)
|
2025-09-13 10:39:58 +10:00
|
|
|
$(call mkobj,)
|
2025-09-09 19:42:41 +10:00
|
|
|
|
2025-09-09 11:12:09 +10:00
|
|
|
# === DEVELOPMENT TARGETS ===
|
|
|
|
|
.PHONY: debug run test
|
|
|
|
|
debug:
|
2025-09-11 20:35:08 +10:00
|
|
|
$(MAKE) all \
|
2025-09-09 11:12:09 +10:00
|
|
|
CFLAGS="$(CFLAGS) $(CFLAGS_DBG)" \
|
2025-09-09 19:42:41 +10:00
|
|
|
CLDFLAGS="$(CLDFLAGS) $(CLDFLAGS_DBG)"
|
2025-09-09 11:12:09 +10:00
|
|
|
run: debug
|
|
|
|
|
- command $(BIN)/pw-test
|
|
|
|
|
test: clean run
|
2025-09-03 14:56:29 +10:00
|
|
|
|
2025-09-09 11:12:09 +10:00
|
|
|
# === UTILITY TARGETS ===
|
2025-09-03 02:32:13 +10:00
|
|
|
.PHONY: clean
|
|
|
|
|
clean:
|
2025-09-09 11:21:30 +10:00
|
|
|
- rm -rf $(BUILD) $(BIN) vgcore.* &>/dev/null
|