summaryrefslogtreecommitdiff
path: root/tests/c/Makefile
diff options
context:
space:
mode:
authorcyan <cyjan@mrcyjanek.net>2026-03-10 20:23:19 +0100
committerGitHub <noreply@github.com>2026-03-10 20:23:19 +0100
commit7e227b0aa00c66d5d407751cac715e61e0c1c373 (patch)
treeaddd746ecb1dc235d97e6fc7ba5d85bed3f905d2 /tests/c/Makefile
parent2c11591e02b907e63d8fd4fcb0a6559625934a95 (diff)
Cleanup and fixes (#180)
Diffstat (limited to 'tests/c/Makefile')
-rw-r--r--tests/c/Makefile58
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/c/Makefile b/tests/c/Makefile
new file mode 100644
index 0000000..0384acc
--- /dev/null
+++ b/tests/c/Makefile
@@ -0,0 +1,58 @@
+CC ?= gcc
+CFLAGS ?= -Wall -Wextra -O2 -Isrc -I../../monero_libwallet2_api_c/src/main/cpp -Itests
+LDFLAGS ?=
+
+UNAME_S := $(shell uname -s)
+
+ifeq ($(OS),Windows_NT)
+ LIB_EXT := dll
+else ifeq ($(UNAME_S),Darwin)
+ LIB_EXT := dylib
+else
+ LIB_EXT := so
+endif
+
+UNAME_S := $(shell uname -s)
+UNAME_M := $(shell uname -m)
+
+# Normalize architecture
+ifeq ($(UNAME_M),x86_64)
+ ARCH := x86_64
+else ifeq ($(UNAME_M),aarch64)
+ ARCH := aarch64
+else ifeq ($(UNAME_M),arm64)
+ ARCH := aarch64
+else
+ ARCH := $(UNAME_M)
+endif
+
+# Normalize OS
+ifeq ($(UNAME_S),Darwin)
+ OS := apple-darwin
+else ifeq ($(UNAME_S),Linux)
+ OS := linux-gnu
+else
+ OS := unknown-$(shell echo $(UNAME_S) | tr A-Z a-z)
+endif
+
+HOST_ABI := $(ARCH)-$(OS)
+
+LIB_DIR ?= ../../release/$(shell git describe --tags)/$(HOST_ABI)
+
+SRC_DIRS ?= src tests
+SRCS := $(wildcard $(addsuffix /*.c,$(SRC_DIRS)))
+OBJS := $(SRCS:.c=.o)
+TARGET = test_wallet2_api_c
+
+.PHONY: all clean
+
+all: $(TARGET)
+
+$(TARGET): $(OBJS)
+ $(CC) $(OBJS) -o $@ -L$(LIB_DIR) -lmonero_wallet2_api_c -Wl,-rpath,$(LIB_DIR) $(LDFLAGS)
+
+%.o: %.c
+ $(CC) $(CFLAGS) -c $< -o $@
+
+clean:
+ rm -f $(OBJS) $(TARGET)