c-kzg-4844/bindings/csharp/Makefile

55 lines
1.3 KiB
Makefile
Raw Normal View History

2022-11-03 13:08:17 +00:00
ifeq ($(OS),Windows_NT)
2023-02-21 15:57:25 +00:00
BLST_BUILDSCRIPT = ./build.bat
BLST_OBJ = blst.lib
CSHARP_PLATFORM ?= win-x64
CLANG_EXECUTABLE = clang
CKZG_LIBRARY_PATH = Ckzg.Bindings\runtimes\$(CSHARP_PLATFORM)\native\ckzg.dll
2022-11-03 13:08:17 +00:00
else
2023-02-21 15:57:25 +00:00
BLST_BUILDSCRIPT = ./build.sh
BLST_OBJ = libblst.a
CLANG_EXECUTABLE = clang
UNAME_S := $(shell uname -s)
UNAME_M := $(shell uname -m)
ifeq ($(UNAME_S),Linux)
ifeq ($(UNAME_M),x86_64)
CSHARP_PLATFORM ?= linux-x64
else
CSHARP_PLATFORM ?= linux-arm64
endif
endif
ifeq ($(UNAME_S),Darwin)
ifeq ($(UNAME_M),arm64)
CSHARP_PLATFORM ?= osx-arm64
else
CSHARP_PLATFORM ?= osx-x64
endif
endif
CKZG_LIBRARY_PATH = Ckzg.Bindings/runtimes/$(CSHARP_PLATFORM)/native/ckzg.so
2022-11-03 13:08:17 +00:00
endif
2022-10-01 17:03:52 +00:00
2023-02-21 15:57:25 +00:00
FIELD_ELEMENTS_PER_BLOB ?= 4096
INCLUDE_DIRS = ../../src ../../blst/bindings
TARGETS = ckzg.c ../../src/c_kzg_4844.c ../../blst/$(BLST_OBJ)
2022-11-03 13:08:17 +00:00
2023-02-21 15:57:25 +00:00
CFLAGS += -O2 -Wall -Wextra -shared
CFLAGS += -DFIELD_ELEMENTS_PER_BLOB=$(FIELD_ELEMENTS_PER_BLOB)
CFLAGS += ${addprefix -I,${INCLUDE_DIRS}}
2022-11-03 13:08:17 +00:00
2023-02-21 15:57:25 +00:00
.PHONY: all
all: blst ckzg ckzg-dotnet
2022-11-03 13:08:17 +00:00
2023-02-21 15:57:25 +00:00
.PHONY: blst
blst:
cd ../../blst && $(BLST_BUILDSCRIPT)
2022-11-03 13:08:17 +00:00
2023-02-21 15:57:25 +00:00
.PHONY: ckzg
ckzg: blst
$(CLANG_EXECUTABLE) $(CFLAGS) -o $(CKZG_LIBRARY_PATH) $(TARGETS)
2022-11-03 13:08:17 +00:00
2023-02-21 15:57:25 +00:00
.PHONY: ckzg-dotnet
ckzg-dotnet: ckzg
dotnet build
2023-02-21 15:57:25 +00:00
dotnet test