diff --git a/sds/Makefile b/sds/Makefile index 83a40ed..49194f6 100644 --- a/sds/Makefile +++ b/sds/Makefile @@ -1,50 +1,53 @@ # Makefile for SDS Go Bindings # The NIM_SDS_LIB_PATH and NIM_SDS_HEADER_PATH env vars should be defined beforehand +# Therefore, we assume the libsds library and headers are located in the specified paths export CGO_CFLAGS="-I${NIM_SDS_HEADER_PATH}/" export CGO_LDFLAGS="-L${NIM_SDS_LIB_PATH}/ -lsds -Wl,-rpath,${NIM_SDS_LIB_PATH}/" +# Expected files +HEADER_FILE := $(NIM_SDS_HEADER_PATH)/libsds.h +LIB_FILES := $(wildcard $(NIM_SDS_LIB_PATH)/libsds.*) + .PHONY: all clean prepare build-libsds build # Default target all: build -# Prepare third_party directory and clone nim-sds -prepare: - @echo "Preparing third_party directory..." - @mkdir -p ../third_party - - @echo "Setting up nim-sds..." - @if [ ! -d "../third_party/nim-sds/.git" ]; then \ - echo "Cloning nim-sds repository..."; \ - git clone https://github.com/waku-org/nim-sds ../third_party/nim-sds; \ - else \ - echo "nim-sds repository already exists."; \ +# Validate necessary folders and files +check-folders: + @echo Checking header directory ... + @if [ -z "$(NIM_SDS_HEADER_PATH)" ]; then \ + echo "ERROR: NIM_SDS_HEADER_PATH not set"; exit 1; \ + fi + @if [ ! -d "$(NIM_SDS_HEADER_PATH)" ]; then \ + echo "ERROR: Header path does not exist: $(NIM_SDS_HEADER_PATH)"; exit 1; \ fi - @echo "Updating nim-sds to get vendors and compile nim in nimbus-build-system..." - @cd ../third_party/nim-sds && \ - git fetch origin && \ - git checkout master && \ - git pull origin master && \ - echo "Running 'make update'..." && \ - make update + @echo Checking lib directory ... + @if [ -z "$(NIM_SDS_LIB_PATH)" ]; then \ + echo "ERROR: NIM_SDS_LIB_PATH not set"; exit 1; \ + fi + @if [ ! -d "$(NIM_SDS_LIB_PATH)" ]; then \ + echo "ERROR: Library path does not exist: $(NIM_SDS_LIB_PATH)"; exit 1; \ + fi + + @echo Checking for libsds.h ... + @if [ ! -f "$(HEADER_FILE)" ]; then \ + echo "ERROR: libsds.h not found at: $(HEADER_FILE)"; exit 1; \ + fi + + @echo Checking for libsds library file ... + @if [ -z "$(LIB_FILES)" ]; then \ + echo "ERROR: No libsds library file found in: $(NIM_SDS_LIB_PATH)"; exit 1; \ + fi # Build SDS Go Bindings -build: prepare - @echo "Building libsds..." - @cd ../third_party/nim-sds && make libsds +build: check-folders @echo "Building SDS Go Bindings..." go build ./... -build-android: prepare - @echo "Building libsds for Android..." - @cd ../third_party/nim-sds && make libsds-android - @echo "Building SDS Go Bindings for Android..." - go build ./... - # Clean up generated files clean: @echo "Cleaning up..." - @rm -rf ../third_party/ @rm -f sds-go-bindings