init
This commit is contained in:
33
Makefile
Normal file
33
Makefile
Normal file
@@ -0,0 +1,33 @@
|
||||
PROJECT_NAME := comandy
|
||||
BUILD_PATH := build
|
||||
GOOS := android
|
||||
GOARCH := arm64
|
||||
BUILD_MACHINE := darwin
|
||||
BUILD_ARCH := x86_64
|
||||
NDK_VERSION := 26.3.11579264
|
||||
TARGET_SDK := android23
|
||||
|
||||
CGO_ENABLED := 1
|
||||
GO_SRC := $(shell find . -name '*.go')
|
||||
NDK_TOOLCHAIN := ~/Library/Android/sdk/ndk/$(NDK_VERSION)/toolchains/llvm/prebuilt/$(BUILD_MACHINE)-$(BUILD_ARCH)
|
||||
CC := $(NDK_TOOLCHAIN)/bin/aarch64-linux-$(TARGET_SDK)-clang
|
||||
TEST_OUTPUT = '$(shell cd $(BUILD_PATH) && ./test)'
|
||||
TEST_EXPECTED = '{"code":500,"data":"aW52YWxpZCB1cmwgJyc="}'
|
||||
|
||||
all: shared
|
||||
|
||||
shared: $(GO_SRC) dir
|
||||
GOOS=$(GOOS) GOARCH=$(GOARCH) CGO_ENABLED=$(CGO_ENABLED) NDK_TOOLCHAIN=$(NDK_TOOLCHAIN) CC=$(CC) go build -buildmode=c-shared -o $(BUILD_PATH)/lib$(PROJECT_NAME).so $(GO_SRC)
|
||||
test: dir
|
||||
@GOOS=$(BUILD_MACHINE) CC=cc NDK_TOOLCHAIN="" $(MAKE) -e shared
|
||||
cc -o $(BUILD_PATH)/test $(BUILD_PATH)/test.c -l$(PROJECT_NAME) -L$(BUILD_PATH)
|
||||
runtest: test
|
||||
@if [ $(TEST_OUTPUT) = $(TEST_EXPECTED) ]; then \
|
||||
echo "test succeeded."; \
|
||||
else \
|
||||
echo "test failed, expected:" $(TEST_EXPECTED) "but got:" $(TEST_OUTPUT); \
|
||||
fi
|
||||
dir:
|
||||
@if [ ! -d "$(BUILD_PATH)" ]; then mkdir $(BUILD_PATH); fi
|
||||
clean:
|
||||
@if [ -d "$(BUILD_PATH)" ]; then rm -rf $(BUILD_PATH)/lib$(PROJECT_NAME).*; fi
|
||||
Reference in New Issue
Block a user