bd739ccfdf
deck-engine gains --format json (language-independent, slug-based) so a new dist/interpreter-cli can score how significant a day's transits are without linking the engine itself — it depends only on the JSON shape, via its own minimal parser. Also documents the full reading pipeline end to end (CLAUDE.md, README, docs/) and adds docs/reading.md, a non-technical explanation of what a daily reading contains and means.
55 lines
1.8 KiB
Makefile
55 lines
1.8 KiB
Makefile
CC ?= cc
|
|
CFLAGS ?= -std=c99 -Wall -Wextra -O2
|
|
|
|
SRC_DIR := src
|
|
TEST_DIR := tests
|
|
BUILD_DIR := build
|
|
OBJ_DIR := $(BUILD_DIR)/obj
|
|
|
|
# Shares deck-engine's build output directory (see ../engine/Makefile),
|
|
# so a daily run can find both binaries in one place:
|
|
# dist/deck-engine ... --format json | dist/interpreter-cli
|
|
DIST_DIR := ../dist
|
|
BINARY := $(DIST_DIR)/interpreter-cli
|
|
|
|
# Only ever compiles this module's own sources - significance.h/
|
|
# reading_io.h reach into engine/src/ for struct/enum *definitions*
|
|
# (plain #includes), but no engine/src/*.c (or the vendored Astronomy
|
|
# Engine) is compiled or linked here. That's what keeps this module (and
|
|
# its tests) independent of the engine's actual ephemeris/tarot-draw
|
|
# implementation - see significance.c's and reading_io.c's own comments
|
|
# for why each duplicates a small table instead of linking astro.c.
|
|
LIB_SRCS := $(SRC_DIR)/significance.c $(SRC_DIR)/json.c $(SRC_DIR)/reading_io.c
|
|
LIB_OBJS := $(patsubst %.c,$(OBJ_DIR)/%.o,$(LIB_SRCS))
|
|
MAIN_OBJ := $(OBJ_DIR)/$(SRC_DIR)/main.o
|
|
|
|
SIGNIFICANCE_TEST_OBJ := $(OBJ_DIR)/$(TEST_DIR)/significance_test.o
|
|
JSON_TEST_OBJ := $(OBJ_DIR)/$(TEST_DIR)/json_test.o
|
|
SIGNIFICANCE_TEST_BIN := $(BUILD_DIR)/significance_test
|
|
JSON_TEST_BIN := $(BUILD_DIR)/json_test
|
|
|
|
.PHONY: all test clean
|
|
|
|
all: $(BINARY)
|
|
|
|
$(BINARY): $(LIB_OBJS) $(MAIN_OBJ)
|
|
@mkdir -p $(DIST_DIR)
|
|
$(CC) $(CFLAGS) -o $@ $^
|
|
|
|
test: $(SIGNIFICANCE_TEST_BIN) $(JSON_TEST_BIN)
|
|
./$(SIGNIFICANCE_TEST_BIN)
|
|
./$(JSON_TEST_BIN)
|
|
|
|
$(SIGNIFICANCE_TEST_BIN): $(OBJ_DIR)/$(SRC_DIR)/significance.o $(SIGNIFICANCE_TEST_OBJ)
|
|
$(CC) $(CFLAGS) -o $@ $^
|
|
|
|
$(JSON_TEST_BIN): $(OBJ_DIR)/$(SRC_DIR)/json.o $(OBJ_DIR)/$(SRC_DIR)/reading_io.o $(JSON_TEST_OBJ)
|
|
$(CC) $(CFLAGS) -o $@ $^
|
|
|
|
$(OBJ_DIR)/%.o: %.c
|
|
@mkdir -p $(dir $@)
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
clean:
|
|
rm -rf $(BUILD_DIR) $(BINARY)
|