Files
umbrix-libcore/Makefile

40 lines
2.2 KiB
Makefile
Raw Normal View History

2023-09-11 15:20:19 +03:30
BASENAME=hiddify-libcore
2023-08-16 15:16:02 +03:30
BINDIR=bin
2023-09-11 15:20:19 +03:30
BRANCH=$(shell git branch --show-current)
VERSION=$(shell git describe --tags || echo "unknown version")
NAME=$(BASENAME)-$@-$(VERSION)
2023-08-16 15:16:02 +03:30
TAGS=with_gvisor,with_quic,with_wireguard,with_utls,with_clash_api
GOBUILD=CGO_ENABLED=1 go build -trimpath -tags $(TAGS) -ldflags="-w -s" -buildmode=c-shared
lib_install:
go install -v github.com/sagernet/gomobile/cmd/gomobile@v0.0.0-20230728014906-3de089147f59
go install -v github.com/sagernet/gomobile/cmd/gobind@v0.0.0-20230728014906-3de089147f59
2023-08-19 14:10:13 +03:30
headers:
2023-09-11 15:20:19 +03:30
go build -buildmode=c-archive -o $(BINDIR)/$(NAME).h ./custom
2023-08-19 14:10:13 +03:30
2023-08-22 20:06:38 +00:00
android: lib_install
2023-09-11 15:20:19 +03:30
gomobile bind -v -androidapi=21 -javapkg=io.nekohasekai -libname=box -tags=$(TAGS) -trimpath -ldflags="-w -s" -target=android -o $(BINDIR)/$(NAME).aar github.com/sagernet/sing-box/experimental/libbox ./mobile
2023-08-16 15:16:02 +03:30
2023-08-22 20:06:38 +00:00
ios-full: lib_install
2023-09-11 15:20:19 +03:30
gomobile bind -v -target ios,iossimulator,tvos,tvossimulator,macos -libname=box -tags=$(TAGS),with_dhcp,with_low_memory,with_conntrack -trimpath -ldflags="-w -s" -o $(BINDIR)/$(NAME).xcframework github.com/sagernet/sing-box/experimental/libbox ./mobile
2023-08-22 20:06:38 +00:00
ios: lib_install
2023-09-11 15:20:19 +03:30
gomobile bind -v -target ios -libname=box -tags=$(TAGS),with_dhcp,with_low_memory,with_conntrack -trimpath -ldflags="-w -s" -o $(BINDIR)/$(NAME).xcframework github.com/sagernet/sing-box/experimental/libbox ./mobile
2023-08-20 12:39:55 +00:00
2023-08-16 15:16:02 +03:30
windows-amd64:
2023-09-11 15:20:19 +03:30
env GOOS=windows GOARCH=amd64 CC=x86_64-w64-mingw32-gcc $(GOBUILD) -o $(BINDIR)/$(NAME).dll ./custom
2023-08-16 15:16:02 +03:30
2023-08-19 14:10:13 +03:30
linux-amd64:
2023-09-11 15:20:19 +03:30
env GOOS=linux GOARCH=amd64 $(GOBUILD) -o $(BINDIR)/$(NAME).so ./custom
2023-08-19 14:10:13 +03:30
2023-08-20 08:21:08 +00:00
macos-amd64:
2023-09-11 15:20:19 +03:30
env GOOS=darwin GOARCH=amd64 CGO_CFLAGS="-mmacosx-version-min=10.11" CGO_LDFLAGS="-mmacosx-version-min=10.11" CGO_ENABLED=1 go build -trimpath -tags $(TAGS),with_dhcp,with_low_memory,with_conntrack -buildmode=c-shared -o $(BINDIR)/$(NAME).dylib ./custom
2023-08-20 08:21:08 +00:00
macos-arm64:
2023-09-11 15:20:19 +03:30
env GOOS=darwin GOARCH=arm64 CGO_CFLAGS="-mmacosx-version-min=10.11" CGO_LDFLAGS="-mmacosx-version-min=10.11" CGO_ENABLED=1 go build -trimpath -tags $(TAGS),with_dhcp,with_low_memory,with_conntrack -buildmode=c-shared -o $(BINDIR)/$(NAME).dylib ./custom
2023-08-20 08:28:11 +00:00
macos-universal: macos-amd64 macos-arm64
2023-09-11 15:20:19 +03:30
lipo -create $(BINDIR)/$(BASENAME)-macos-amd64-$(VERSION).dylib $(BINDIR)/$(BASENAME)-macos-arm64-$(VERSION).dylib -output $(BINDIR)/$(NAME).dylib
2023-08-20 08:21:08 +00:00
2023-08-16 15:16:02 +03:30
clean:
rm $(BINDIR)/*