Vendored sashidown, OpenAI-compatible env (OPENAI_*), and bootstrap scripts. Co-authored-by: Cursor <cursoragent@cursor.com>
78 lines
2.4 KiB
Makefile
78 lines
2.4 KiB
Makefile
CC ?= gcc
|
|
CFLAGS ?= -std=c11 -Wall -Wextra -O2 -g
|
|
SD_DIR := vendor/sashidown
|
|
CPPFLAGS += -Iinclude -I$(SD_DIR)/include -D_XOPEN_SOURCE_EXTENDED
|
|
LDFLAGS += -L$(SD_DIR)
|
|
LDLIBS += -lsashidown -lm -lcurl -lncursesw -lpthread
|
|
|
|
SRC = \
|
|
src/ctl_parse.c \
|
|
src/os_compat.c \
|
|
src/sandbox.c \
|
|
src/session.c \
|
|
src/tools/tools.c \
|
|
src/llm_openai.c \
|
|
src/agent_loop.c \
|
|
src/agent_store.c \
|
|
src/json_baseline.c \
|
|
src/creds.c \
|
|
src/mm_tool.c \
|
|
src/models.c \
|
|
src/tui.c \
|
|
src/main.c
|
|
|
|
OBJ = $(SRC:.c=.o)
|
|
|
|
.PHONY: all clean check demo sashidown-lib cmake-gcc cmake-clang
|
|
|
|
all: sashidown-lib cst-agent
|
|
|
|
# Optional CMake entrypoints (same sources)
|
|
cmake-gcc:
|
|
cmake -B build-gcc -DCMAKE_C_COMPILER=gcc -DCST_BUILD_TUI=ON
|
|
cmake --build build-gcc
|
|
ctest --test-dir build-gcc --output-on-failure
|
|
|
|
cmake-clang:
|
|
cmake -B build-clang -DCMAKE_C_COMPILER=clang -DCST_BUILD_TUI=ON
|
|
cmake --build build-clang
|
|
|
|
sashidown-lib:
|
|
$(MAKE) -C $(SD_DIR) libsashidown.a
|
|
|
|
cst-agent: $(OBJ) $(SD_DIR)/libsashidown.a
|
|
$(CC) $(CFLAGS) -o $@ $(OBJ) $(LDFLAGS) $(LDLIBS)
|
|
|
|
src/%.o: src/%.c include/ctl.h include/cst_agent.h
|
|
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
|
|
|
|
src/tools/%.o: src/tools/%.c include/ctl.h include/cst_agent.h
|
|
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
|
|
|
|
src/tui.o: src/tui.c include/cst_agent.h $(SD_DIR)/include/sashidown.h
|
|
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
|
|
|
|
tests/test_ctl_frontier: tests/test_ctl_frontier.c src/ctl_parse.c include/ctl.h
|
|
$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ tests/test_ctl_frontier.c src/ctl_parse.c
|
|
|
|
tests/test_json_baseline: tests/test_json_baseline.c src/json_baseline.c include/cst_agent.h
|
|
$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ tests/test_json_baseline.c src/json_baseline.c
|
|
|
|
tests/test_replay_starvation: tests/test_replay_starvation.c src/ctl_parse.c src/json_baseline.c
|
|
$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ tests/test_replay_starvation.c src/ctl_parse.c src/json_baseline.c
|
|
|
|
tests/test_mm_tool: tests/test_mm_tool.c src/mm_tool.c include/mm_tool.h
|
|
$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ tests/test_mm_tool.c src/mm_tool.c
|
|
|
|
check: tests/test_ctl_frontier tests/test_json_baseline tests/test_replay_starvation tests/test_mm_tool
|
|
./tests/test_ctl_frontier
|
|
./tests/test_json_baseline
|
|
./tests/test_replay_starvation
|
|
./tests/test_mm_tool
|
|
|
|
demo: cst-agent
|
|
./cst-agent --demo-ctl --workspace .
|
|
|
|
clean:
|
|
rm -f $(OBJ) cst-agent tests/test_ctl_frontier tests/test_json_baseline tests/test_replay_starvation tests/test_mm_tool
|