mirror of
https://github.com/logos-messaging/logos-messaging-go-bindings.git
synced 2026-01-07 16:33:09 +00:00
51 lines
1.2 KiB
Makefile
51 lines
1.2 KiB
Makefile
# Makefile for Waku Go Bindings
|
|
|
|
# Determine OS and set library extension
|
|
UNAME_S := $(shell uname -s)
|
|
ifeq ($(UNAME_S),Linux)
|
|
EXT := so
|
|
else ifeq ($(UNAME_S),Darwin)
|
|
EXT := so
|
|
else ifeq ($(OS),Windows_NT)
|
|
EXT := dll
|
|
else
|
|
$(error Unsupported OS: $(UNAME_S))
|
|
endif
|
|
|
|
THIRD_PARTY_DIR := $(shell pwd)/../third_party
|
|
NWAKU_REPO := https://github.com/waku-org/nwaku
|
|
NWAKU_DIR := $(THIRD_PARTY_DIR)/nwaku
|
|
LIBWAKU_HEADER := $(NWAKU_DIR)/libwaku.h
|
|
LIBWAKU := $(NWAKU_DIR)/libwaku.${EXT}
|
|
|
|
.PHONY: all clean build libwaku
|
|
|
|
# Default target
|
|
all: build
|
|
|
|
# Prepare third_party directory and clone nwaku
|
|
# NOTE: Currently we download a library release.
|
|
# In the future we should get nwaku from Nimble package manager.
|
|
$(LIBWAKU) $(LIBWAKU_HEADER):
|
|
@../scripts/download_nwaku.sh
|
|
|
|
libwaku: $(LIBWAKU) $(LIBWAKU_HEADER)
|
|
|
|
# Build libwaku
|
|
build-libwaku:
|
|
@echo "Building libwaku..."
|
|
@cd $(NWAKU_DIR) && make libwaku
|
|
|
|
# Build Waku Go Bindings
|
|
|
|
build: export CGO_CFLAGS = "-I${NWAKU_DIR}"
|
|
build: export CGO_LDFLAGS = "-L${NWAKU_DIR} -lwaku -L${NWAKU_DIR} -Wl,-rpath,${NWAKU_DIR}"
|
|
build: libwaku
|
|
@echo "Building Waku Go Bindings..."
|
|
go build ./...
|
|
|
|
# Clean up generated files
|
|
clean:
|
|
@echo "Cleaning up..."
|
|
@rm -f $(LIBWAKU_HEADER) $(LIBWAKU)
|
|
@rm -f waku-go-bindings
|