Files
amnezia-xray-bindings/Makefile
2025-12-12 16:48:48 +01:00

48 lines
1.0 KiB
Makefile

BUILD_DIR = build
SOURCES := main.go
LIB_ARC = amnezia_xray.a
LIB_DLL = amnezia_xray.dll
LIB_LIB = amnezia_xray.lib
LIB_HDR = amnezia_xray.h
LIB_DEF = amnezia_xray.def
ifneq ($(shell which cmd 2>/dev/null),)
OS ?= windows
else
OS ?= unix
endif
ifeq ($(OS),macos)
SDK += macosx
else ifeq ($(OS),ios)
SDK := iphoneos
endif
ifneq ($(SDK),)
CGO_CFLAGS += -isysroot $(shell xcrun --sdk $(SDK) --show-sdk-path)
endif
ifeq ($(OS),windows)
all: $(BUILD_DIR)/$(LIB_LIB)
else
all: $(BUILD_DIR)/$(LIB_ARC)
endif
$(BUILD_DIR)/$(LIB_ARC): $(SOURCES)
CGO_CFLAGS="$(CGO_CFLAGS)" GOARCH=$(ARCH) CGO_ENABLED=1 go build -ldflags=-w -o $(BUILD_DIR)/$(LIB_ARC) -buildmode=c-archive
$(BUILD_DIR)/$(LIB_DLL): $(SOURCES)
@mkdir -p $(BUILD_DIR)
CGO_ENABLED=1 go build -ldflags=-w -o $(BUILD_DIR)/$(LIB_DLL) -buildmode=c-shared
$(BUILD_DIR)/$(LIB_LIB): $(BUILD_DIR)/$(LIB_DLL)
cd $(BUILD_DIR) && gendef $(LIB_DLL)
cd $(BUILD_DIR) && dlltool -d $(LIB_DEF) -l $(LIB_LIB) -D $(LIB_DLL)
rm $(BUILD_DIR)/$(LIB_DEF)
PHONY: clean
clean:
rm -rf $(BUILD_DIR)