2024-11-27 12:08:50 +02:00
|
|
|
# Makefile for Waku Go Bindings
|
|
|
|
|
|
2026-02-27 21:47:05 +05:30
|
|
|
# Path to logos-delivery submodule
|
2026-06-10 10:13:55 +01:00
|
|
|
export LOGOS_DELIVERY_DIR ?= $(shell pwd)/../../vendor/logos-delivery
|
2025-12-23 01:46:21 +05:30
|
|
|
|
|
|
|
|
# Debugging output
|
|
|
|
|
print-paths:
|
ci: add PR-gate workflow + fix module path (#109)
* chore: rename module path to logos-delivery-go-bindings
The module path still read `logos-messaging-go-bindings`, mismatching the
repository name. Rename it to `github.com/logos-messaging/logos-delivery-go-bindings`
and update all in-repo imports. gofmt re-sorts a few import blocks as a result
(plus two files that were already unformatted on master).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* ci: add PR-gate workflow and golangci-lint config
The repo had no `on: pull_request` CI (only workflow_dispatch + nightly
schedule), so nothing validated PRs. Add `.github/workflows/pr.yml` that
builds libwaku and runs `go build`, `go vet`, golangci-lint, and a test-compile
pass on every PR. Add a baseline `.golangci.yml` (standard linters + gofmt).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* ci: scope golangci-lint to new code via new-from-merge-base
Run the full `standard` linter set but only report findings introduced since
the merge-base with master, so the legacy kernel wrapper's pre-existing issues
(unchecked defer-Close, dead helpers) don't drown the gate while new code still
gets full coverage. Fetch origin/master so the base ref is available in CI.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* ci: clone logos-delivery outside vendor/ and build in module mode
`go build` failed in CI because cloning logos-delivery into `vendor/` put Go
into vendor mode against an inconsistent `vendor/modules.txt`. Clone the
checkout into `.logos-delivery` instead and set `GOFLAGS=-mod=mod` so the gate
always builds in module mode.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* ci: use golangci-lint-action@v7 for golangci-lint v2
v6 of the action rejects golangci-lint v2 versions ("v2 is not supported by
golangci-lint-action v6"). Bump to v7.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* ci: cache libwaku, gate go mod tidy, rename LMN_DIR
- Rename LMN_DIR -> LOGOS_DELIVERY_DIR across the PR-gate and nightly
workflows, the waku Makefile, and the build docs.
- Cache the built logos-delivery kernel keyed on its upstream HEAD SHA,
skipping the clone + libwaku build while that commit is unchanged.
- Add a "go mod tidy is clean" step that fails if go.mod/go.sum drift.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 23:04:57 +01:00
|
|
|
@echo "LOGOS_DELIVERY_DIR: $(LOGOS_DELIVERY_DIR)"
|
2025-12-23 01:46:21 +05:30
|
|
|
@echo "HEADER_PATH: $(LIBWAKU_HEADER_PATH)"
|
|
|
|
|
@echo "LIB_PATH: $(LIBWAKU_LIB_PATH)"
|
2025-12-16 17:15:06 +05:30
|
|
|
|
|
|
|
|
# Default paths for libwaku library and headers (can be overridden)
|
ci: add PR-gate workflow + fix module path (#109)
* chore: rename module path to logos-delivery-go-bindings
The module path still read `logos-messaging-go-bindings`, mismatching the
repository name. Rename it to `github.com/logos-messaging/logos-delivery-go-bindings`
and update all in-repo imports. gofmt re-sorts a few import blocks as a result
(plus two files that were already unformatted on master).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* ci: add PR-gate workflow and golangci-lint config
The repo had no `on: pull_request` CI (only workflow_dispatch + nightly
schedule), so nothing validated PRs. Add `.github/workflows/pr.yml` that
builds libwaku and runs `go build`, `go vet`, golangci-lint, and a test-compile
pass on every PR. Add a baseline `.golangci.yml` (standard linters + gofmt).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* ci: scope golangci-lint to new code via new-from-merge-base
Run the full `standard` linter set but only report findings introduced since
the merge-base with master, so the legacy kernel wrapper's pre-existing issues
(unchecked defer-Close, dead helpers) don't drown the gate while new code still
gets full coverage. Fetch origin/master so the base ref is available in CI.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* ci: clone logos-delivery outside vendor/ and build in module mode
`go build` failed in CI because cloning logos-delivery into `vendor/` put Go
into vendor mode against an inconsistent `vendor/modules.txt`. Clone the
checkout into `.logos-delivery` instead and set `GOFLAGS=-mod=mod` so the gate
always builds in module mode.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* ci: use golangci-lint-action@v7 for golangci-lint v2
v6 of the action rejects golangci-lint v2 versions ("v2 is not supported by
golangci-lint-action v6"). Bump to v7.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* ci: cache libwaku, gate go mod tidy, rename LMN_DIR
- Rename LMN_DIR -> LOGOS_DELIVERY_DIR across the PR-gate and nightly
workflows, the waku Makefile, and the build docs.
- Cache the built logos-delivery kernel keyed on its upstream HEAD SHA,
skipping the clone + libwaku build while that commit is unchanged.
- Add a "go mod tidy is clean" step that fails if go.mod/go.sum drift.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 23:04:57 +01:00
|
|
|
export LIBWAKU_HEADER_PATH ?= $(LOGOS_DELIVERY_DIR)/library
|
|
|
|
|
export LIBWAKU_LIB_PATH ?= $(LOGOS_DELIVERY_DIR)/build
|
2025-12-16 17:15:06 +05:30
|
|
|
|
|
|
|
|
export CGO_CFLAGS := -I$(LIBWAKU_HEADER_PATH)/
|
|
|
|
|
export CGO_LDFLAGS := -L$(LIBWAKU_LIB_PATH)/ -lwaku -Wl,-rpath,$(LIBWAKU_LIB_PATH)/
|
2024-11-27 12:08:50 +02:00
|
|
|
|
2025-11-25 17:49:42 +01:00
|
|
|
# Expected files
|
|
|
|
|
HEADER_FILE := $(LIBWAKU_HEADER_PATH)/libwaku.h
|
|
|
|
|
LIB_FILES := $(wildcard $(LIBWAKU_LIB_PATH)/libwaku.*)
|
|
|
|
|
|
2025-12-20 01:52:47 +05:30
|
|
|
.PHONY: all clean prepare build test build-auto test-auto build-libwaku
|
2024-11-27 12:08:50 +02:00
|
|
|
|
2025-11-25 17:49:42 +01:00
|
|
|
# Validate necessary folders and files
|
|
|
|
|
check-folders:
|
|
|
|
|
@echo Checking libwaku header directory ...
|
|
|
|
|
@if [ -z "$(LIBWAKU_HEADER_PATH)" ]; then \
|
|
|
|
|
echo "ERROR: LIBWAKU_HEADER_PATH not set"; exit 1; \
|
|
|
|
|
fi
|
|
|
|
|
@if [ ! -d "$(LIBWAKU_HEADER_PATH)" ]; then \
|
|
|
|
|
echo "ERROR: Header path does not exist: $(LIBWAKU_HEADER_PATH)"; exit 1; \
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
@echo Checking libwaku lib directory ...
|
|
|
|
|
@if [ -z "$(LIBWAKU_LIB_PATH)" ]; then \
|
|
|
|
|
echo "ERROR: LIBWAKU_LIB_PATH not set"; exit 1; \
|
|
|
|
|
fi
|
|
|
|
|
@if [ ! -d "$(LIBWAKU_LIB_PATH)" ]; then \
|
|
|
|
|
echo "ERROR: Library path does not exist: $(LIBWAKU_LIB_PATH)"; exit 1; \
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
@echo Checking for libwaku.h ...
|
|
|
|
|
@if [ ! -f "$(HEADER_FILE)" ]; then \
|
|
|
|
|
echo "ERROR: libwaku.h not found at: $(HEADER_FILE)"; exit 1; \
|
|
|
|
|
fi
|
2024-11-27 12:08:50 +02:00
|
|
|
|
2025-11-25 17:49:42 +01:00
|
|
|
@echo Checking for libwaku library file ...
|
|
|
|
|
@if [ -z "$(LIB_FILES)" ]; then \
|
|
|
|
|
echo "ERROR: No libwaku library file found in: $(LIBWAKU_LIB_PATH)"; exit 1; \
|
|
|
|
|
fi
|
2025-10-30 10:59:13 +00:00
|
|
|
|
2025-12-22 18:52:43 +05:30
|
|
|
build:
|
2026-01-08 23:27:46 +05:30
|
|
|
@echo "Building Logos Messaging Go Bindings (manual)..."
|
2026-06-10 10:13:55 +01:00
|
|
|
CGO_CFLAGS="$(CGO_CFLAGS)" CGO_LDFLAGS="$(CGO_LDFLAGS)" go build -o kernel-bindings .
|
2025-12-20 01:52:47 +05:30
|
|
|
|
|
|
|
|
test: build
|
|
|
|
|
@echo "Running tests (manual)..."
|
|
|
|
|
@if [ -z "$(TEST)" ]; then \
|
2025-12-23 02:21:12 +05:30
|
|
|
CGO_CFLAGS="$(CGO_CFLAGS)" CGO_LDFLAGS="$(CGO_LDFLAGS)" go test .; \
|
2025-12-20 01:52:47 +05:30
|
|
|
else \
|
2025-12-23 02:21:12 +05:30
|
|
|
CGO_CFLAGS="$(CGO_CFLAGS)" CGO_LDFLAGS="$(CGO_LDFLAGS)" go test . -count=1 -run $(TEST) -v; \
|
2025-12-20 01:52:47 +05:30
|
|
|
fi
|
|
|
|
|
|
2024-11-27 12:08:50 +02:00
|
|
|
# Clean up generated files
|
|
|
|
|
clean:
|
|
|
|
|
@echo "Cleaning up..."
|
2026-06-10 10:13:55 +01:00
|
|
|
@rm -f kernel-bindings
|