build: migrate from github.com to sr.ht; convert submodules to vendor-deps
ober
e1e2c88d8d0ccf36d3e208f1170a9c6568967421
--- a/.gitignore +++ b/.gitignore @@ -5,6 +5,9 @@ .jerbuild-hashes jcode.json +# Vendored dependencies cloned at build time by `make vendor-deps` +/vendor/ + # Generated Scheme libraries (built from src/**/*.ss by jerbuild) /lib/ /jcode_tui_shim.dylib deleted file mode 100644 --- a/.gitmodules +++ /dev/null @@ -1,9 +0,0 @@ -[submodule "vendor/chez-sqlite"] - path = vendor/chez-sqlite - url = https://github.com/ober/chez-sqlite.git -[submodule "vendor/termbox2"] - path = vendor/termbox2 - url = https://github.com/termbox/termbox2.git -[submodule "vendor/jerboa-websearch"] - path = vendor/jerboa-websearch - url = git@git.sr.ht:~lisp/jerboa-websearch --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ TUI_SHIM_DIR := $(CURDIR)/vendor/termbox2 NATIVE_LIB_DIR := $(JERBOA_HOME)/lib LDPATH := $(SHIM_DIR):$(TUI_SHIM_DIR):$(SQLITE_LIB_DIR):$(NATIVE_LIB_DIR) -.PHONY: all help build gen run test test-providers clean repl binary install tui-shim run-tui jcode-musl linux linux-amd64 linux-arm64 jcode-linux-amd64 linux-docker linux-check linux-local docker test-linux test-linux-amd64 purge-stale sqlite-shim android android-clean +.PHONY: all help build gen run test test-providers clean repl binary install tui-shim run-tui jcode-musl linux linux-amd64 linux-arm64 jcode-linux-amd64 linux-docker linux-check linux-local docker test-linux test-linux-amd64 purge-stale sqlite-shim android android-clean vendor-deps vendor-clean all: help @@ -75,7 +75,7 @@ purge-stale: # ── chez-sqlite shim build ────────────────────────────────────────────────── # Rebuild the FFI shim if its C source is newer than the .so. This catches # the case where vendor/chez-sqlite is updated but the .so isn't refreshed. -sqlite-shim: +sqlite-shim: vendor/chez-sqlite @if [ ! -f vendor/chez-sqlite/chez_sqlite_shim.so ] || \ [ vendor/chez-sqlite/chez_sqlite_shim.c -nt vendor/chez-sqlite/chez_sqlite_shim.so ]; then \ echo "=== Rebuilding chez_sqlite_shim.so ==="; \ @@ -112,7 +112,33 @@ native-so: ln -sf libjerboa_native.dylib "$(NATIVE_SO)"; \ fi -gen: purge-stale sqlite-shim native-so +# ─── Vendor Dependencies ───────────────────────────────────────────────────── +# Clone dependency repos into vendor/ at build time. vendor/ is .gitignored; +# we do NOT use git submodules — every target that needs vendor/<x> depends on +# vendor-deps so a fresh checkout populates itself. + +vendor-deps: vendor/chez-sqlite vendor/termbox2 vendor/jerboa-websearch + +vendor/chez-sqlite: + @mkdir -p vendor + @echo "=== Cloning chez-sqlite into vendor/ ===" + @git clone --depth 1 git@git.sr.ht:~lisp/chez-sqlite vendor/chez-sqlite + @rm -f vendor/chez-sqlite/chez_sqlite_shim.so + +vendor/termbox2: + @mkdir -p vendor + @echo "=== Cloning termbox2 (upstream) into vendor/ ===" + @git clone --depth 1 https://github.com/termbox/termbox2.git vendor/termbox2 + +vendor/jerboa-websearch: + @mkdir -p vendor + @echo "=== Cloning jerboa-websearch into vendor/ ===" + @git clone --depth 1 git@git.sr.ht:~lisp/jerboa-websearch vendor/jerboa-websearch + +vendor-clean: + rm -rf vendor + +gen: vendor-deps purge-stale sqlite-shim native-so $(JERBUILD) src lib build: gen @@ -123,7 +149,7 @@ run: DYLD_LIBRARY_PATH=$(LDPATH) LD_LIBRARY_PATH=$(LDPATH) \ $(SCHEME) $(LIBDIRS) --script main.ss -tui-shim: +tui-shim: vendor/termbox2 @test -f $(TUI_SHIM_DIR)/jcode_tui_shim.dylib \ -o -f $(TUI_SHIM_DIR)/jcode_tui_shim.so || \ cc -shared -fPIC -DTB_OPT_ATTR_W=32 \ deleted file mode 160000 --- a/vendor/chez-sqlite +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 388d0814b86c84e53544d2077f0616f38d047185 deleted file mode 160000 --- a/vendor/jerboa-websearch +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c1f19ffbec557de5275d32e64443812a305f8f3e deleted file mode 160000 --- a/vendor/termbox2 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 605398fa79108412976191e062ea14bd4bd30213