mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-07-27 10:31:38 +08:00
🎈 Sync 2026-06-17 11:53:25
This commit is contained in:
parent
ab6f9269bb
commit
f3b1399f54
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=UnblockNeteaseMusic-Go
|
||||
PKG_VERSION:=0.2.13
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/cnsilvan/UnblockNeteaseMusic/tar.gz/$(PKG_VERSION)?
|
||||
@ -35,7 +35,7 @@ GO_PKG_LDFLAGS+= \
|
||||
-X '$(GO_PKG)/version.ExGoVersionInfo=$(GO_ARM) $(GO_MIPS)$(GO_MIPS64)'
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/UnblockNeteaseMusic-Go/config
|
||||
config UNBLOCKNETEASEMUSIC_GO_COMPRESS_GOPROXY
|
||||
|
||||
@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=BaiduPCS-Go
|
||||
PKG_VERSION:=4.0.1
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/qjfoidnh/BaiduPCS-Go/tar.gz/v$(PKG_VERSION)?
|
||||
@ -24,7 +24,7 @@ GO_PKG:=github.com/qjfoidnh/BaiduPCS-Go
|
||||
GO_PKG_LDFLAGS_X:=main.Version=v$(PKG_VERSION)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/BaiduPCS-Go
|
||||
SECTION:=net
|
||||
|
||||
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=BitSrunLoginGo
|
||||
PKG_VERSION:=1.6.6
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/Mmx233/BitSrunLoginGo/tar.gz/v$(PKG_VERSION)?
|
||||
@ -23,7 +23,7 @@ GO_PKG:=github.com/Mmx233/BitSrunLoginGo
|
||||
GO_PKG_BUILD_PKG:=github.com/Mmx233/BitSrunLoginGo/cmd/bitsrun/
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/bitsrunlogin-go
|
||||
SECTION:=net
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=boltbrowser
|
||||
PKG_RELEASE:=3
|
||||
PKG_RELEASE:=4
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/br0xen/boltbrowser.git
|
||||
@ -20,7 +20,7 @@ PKG_BUILD_FLAGS:=no-mips16
|
||||
GO_PKG:=github.com/br0xen/boltbrowser
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/boltbrowser
|
||||
SECTION:=utils
|
||||
|
||||
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=brook
|
||||
PKG_VERSION:=20260101.0
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/txthinking/brook/tar.gz/v$(PKG_VERSION)?
|
||||
@ -24,7 +24,7 @@ GO_PKG:=github.com/txthinking/brook
|
||||
GO_PKG_BUILD_PKG:=$(GO_PKG)/cli/brook
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/brook
|
||||
SECTION:=net
|
||||
|
||||
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=CloudflareSpeedTest
|
||||
PKG_VERSION:=2.3.5
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/XIU2/CloudflareSpeedTest/tar.gz/v$(PKG_VERSION)?
|
||||
@ -24,7 +24,7 @@ GO_PKG:=github.com/XIU2/CloudflareSpeedTest
|
||||
GO_PKG_LDFLAGS_X:=main.version=v$(PKG_VERSION)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/cdnspeedtest
|
||||
SECTION:=net
|
||||
|
||||
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=cloudreve
|
||||
PKG_VERSION:=4.16.1
|
||||
PKG_RELEASE:=9
|
||||
PKG_RELEASE:=10
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/cloudreve/Cloudreve.git
|
||||
@ -29,7 +29,7 @@ GO_PKG_LDFLAGS_X:= \
|
||||
$(GO_PKG)/application/constants.LastCommit=$(PKG_VERSION)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/cloudreve
|
||||
SECTION:=net
|
||||
|
||||
@ -4,7 +4,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=dae
|
||||
PKG_VERSION:=2026.06.14
|
||||
PKG_RELEASE:=6
|
||||
PKG_RELEASE:=7
|
||||
|
||||
PKG_SOURCE:=dae-src-2026.06.14-fa89ea7197a5.tar.gz
|
||||
PKG_SOURCE_URL:=https://github.com/kenzok8/openwrt-daede/releases/download/dae-src
|
||||
@ -41,7 +41,7 @@ GO_PKG_TAGS:=trace
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/bpf.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
GO_PKG_BUILD_VARS+= GOFLAGS="-trimpath -buildvcs=false -pgo=auto"
|
||||
GO_PKG_TARGET_VARS+= \
|
||||
|
||||
@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
|
||||
PKG_NAME:=daed-next
|
||||
PKG_VERSION:=2023-12-02-102cb56
|
||||
CORE_VERSION:=core-$(shell date "+%Y-%m-%d")
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_PROTO:=git
|
||||
@ -31,7 +31,7 @@ GO_PKG_GCFLAGS:=-l=4
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/bpf.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/daed-next/Default
|
||||
SECTION:=net
|
||||
|
||||
@ -4,7 +4,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=daed
|
||||
PKG_VERSION:=2026.06.14
|
||||
PKG_RELEASE:=8
|
||||
PKG_RELEASE:=9
|
||||
|
||||
PKG_SOURCE:=daed-src-2026.06.14-4e215048068a.tar.gz
|
||||
PKG_SOURCE_URL:=https://github.com/kenzok8/openwrt-daede/releases/download/daed-src
|
||||
@ -42,7 +42,7 @@ GO_PKG_TAGS:=embedallowed,trace
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/bpf.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
GO_PKG_BUILD_VARS+= GOFLAGS="-trimpath -buildvcs=false -pgo=auto"
|
||||
GO_PKG_TARGET_VARS+= \
|
||||
|
||||
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=ddns-go
|
||||
PKG_VERSION:=6.17.1
|
||||
PKG_RELEASE:=15
|
||||
PKG_RELEASE:=16
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/jeessy2/ddns-go/tar.gz/v$(PKG_VERSION)?
|
||||
@ -24,7 +24,7 @@ GO_PKG:=github.com/jeessy2/ddns-go/v6
|
||||
GO_PKG_LDFLAGS_X:=main.version=$(PKG_VERSION)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/ddns-go
|
||||
SECTION:=net
|
||||
|
||||
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=dnsproxy
|
||||
PKG_VERSION:=0.81.4
|
||||
PKG_RELEASE:=7
|
||||
PKG_RELEASE:=8
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/AdguardTeam/dnsproxy/tar.gz/v$(PKG_VERSION)?
|
||||
@ -24,7 +24,7 @@ GO_PKG:=github.com/AdguardTeam/dnsproxy
|
||||
GO_PKG_LDFLAGS_X:=$(GO_PKG)/internal/version.version=v$(PKG_VERSION)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/dnsproxy
|
||||
SECTION:=net
|
||||
|
||||
@ -3,7 +3,7 @@ include $(TOPDIR)/rules.mk
|
||||
PKG_NAME:=dockerd
|
||||
PKG_FLAGS:=hold
|
||||
PKG_VERSION:=27.3.1
|
||||
PKG_RELEASE:=3
|
||||
PKG_RELEASE:=4
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
@ -23,7 +23,7 @@ PKG_BUILD_FLAGS:=no-mips16
|
||||
GO_PKG:=github.com/docker/docker
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/dockerd/config
|
||||
source "$(SOURCE)/Config.in"
|
||||
|
||||
@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=fan2go
|
||||
PKG_VERSION:=0.14.0
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/markusressel/fan2go/tar.gz/$(PKG_VERSION)?
|
||||
@ -21,7 +21,7 @@ GO_PKG_LDFLAGS_X:=$(GO_PKG)/cmd/global.Version=$(PKG_VERSION)
|
||||
GO_PKG_TAGS:=netgo,disable_nvml
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/fan2go
|
||||
SECTION:=utils
|
||||
|
||||
@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=fusiontunx
|
||||
PKG_VERSION:=1.0.3-4
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_MAINTAINER:=BobbyUnknown
|
||||
PKG_LICENSE:=MIT
|
||||
@ -20,7 +20,7 @@ PKG_BUILD_DEPENDS:=node/host golang/host
|
||||
MIHOMO_VERSION:=v1.19.18
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
GO_PKG:=github.com/bobbyunknown/FusionTunX
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=geoview
|
||||
PKG_VERSION:=0.2.6
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/snowie2000/geoview/tar.gz/$(PKG_VERSION)?
|
||||
@ -23,7 +23,7 @@ GO_PKG_BUILD_PKG:=$(GO_PKG)
|
||||
GO_PKG_LDFLAGS:=-s -w
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/geoview
|
||||
TITLE:=A geofile toolkit
|
||||
|
||||
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=go-ethereum
|
||||
PKG_VERSION:=1.17.3
|
||||
PKG_RELEASE:=3
|
||||
PKG_RELEASE:=4
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/ethereum/go-ethereum/tar.gz/v${PKG_VERSION}?
|
||||
@ -29,7 +29,7 @@ GO_PKG_BUILD_PKG:=github.com/ethereum/go-ethereum/cmd/geth
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/nls.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/geth
|
||||
SECTION:=net
|
||||
|
||||
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=go-nats
|
||||
PKG_VERSION:=0.0.1
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/enobufs/go-nats.git
|
||||
@ -25,7 +25,7 @@ PKG_BUILD_FLAGS:=no-mips16
|
||||
GO_PKG:=github.com/enobufs/go-nats
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/go-nats
|
||||
SECTION:=net
|
||||
|
||||
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=go.rice
|
||||
PKG_VERSION:=1.0.2
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/GeertJohan/go.rice/tar.gz/v$(PKG_VERSION)?
|
||||
@ -28,8 +28,8 @@ GO_PKG_BUILD_PKG:=$(GO_PKG)/rice
|
||||
|
||||
include $(INCLUDE_DIR)/host-build.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-host-build.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-host-build.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/go-rice
|
||||
SECTION:=devel
|
||||
|
||||
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=go-wol
|
||||
PKG_VERSION:=2.0.1
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/sabhiram/go-wol/tar.gz/v$(PKG_VERSION)?
|
||||
@ -23,7 +23,7 @@ PKG_BUILD_FLAGS:=no-mips16
|
||||
GO_PKG:=github.com/sabhiram/go-wol/cmd/wol
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/go-wol
|
||||
SECTION:=net
|
||||
|
||||
44
golang/go-gcc-helper
Normal file
44
golang/go-gcc-helper
Normal file
@ -0,0 +1,44 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (C) 2018, 2020 Jeffery To
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
me=go-gcc-helper
|
||||
name="${0##*/}"
|
||||
|
||||
log() {
|
||||
local IFS=" "
|
||||
printf '%s\n' "$me: $*"
|
||||
}
|
||||
|
||||
case "$name" in
|
||||
gcc)
|
||||
if [ -z "$GO_GCC_HELPER_CC" ]; then
|
||||
log "missing GO_GCC_HELPER_CC"
|
||||
exit 1
|
||||
fi
|
||||
cmd="$GO_GCC_HELPER_CC"
|
||||
;;
|
||||
g++)
|
||||
if [ -z "$GO_GCC_HELPER_CXX" ]; then
|
||||
log "missing GO_GCC_HELPER_CXX"
|
||||
exit 1
|
||||
fi
|
||||
cmd="$GO_GCC_HELPER_CXX"
|
||||
;;
|
||||
*)
|
||||
log "unknown command \"$name\""
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -n "$GO_GCC_HELPER_PATH" ]; then
|
||||
export PATH="$GO_GCC_HELPER_PATH"
|
||||
else
|
||||
log "missing GO_GCC_HELPER_PATH"
|
||||
fi
|
||||
|
||||
log "running $cmd $*"
|
||||
|
||||
$cmd "$@"
|
||||
16
golang/go-strip-helper
Executable file
16
golang/go-strip-helper
Executable file
@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2026 George Sapkin
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
for last; do :; done
|
||||
|
||||
case "$last" in
|
||||
*-doc|*-misc|*-src|*-tests)
|
||||
echo "Not stripping: $last"
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
|
||||
"$@"
|
||||
47
golang/golang-bootstrap/Config.in
Normal file
47
golang/golang-bootstrap/Config.in
Normal file
@ -0,0 +1,47 @@
|
||||
menu "Configuration"
|
||||
|
||||
config GOLANG_EXTERNAL_BOOTSTRAP_ROOT
|
||||
string "External bootstrap Go root directory"
|
||||
default ""
|
||||
help
|
||||
Path to a working Go tree (>= Go 1.4), with bin, pkg, and src
|
||||
subdirectories and the Go compiler in bin/go.
|
||||
|
||||
If set, the existing Go installation will be used to compile host
|
||||
(buildroot) Go.
|
||||
|
||||
Leave blank to compile the default bootstrap Go.
|
||||
|
||||
config GOLANG_BUILD_BOOTSTRAP
|
||||
bool "Build bootstrap instead of using an external one"
|
||||
default y
|
||||
help
|
||||
When enabled, build the local bootstrap instead of using an external one
|
||||
for host Go. If 'External bootstrap Go root directory' is set, skip the
|
||||
initial 1.4 step.
|
||||
|
||||
When disabled, let Go auto-detect the toolchain or use the toolchain
|
||||
specified in 'External bootstrap Go root directory' to skip building the
|
||||
bootstrap and build host Go using that toolchain directly. Configured
|
||||
toolchain must be compatible with the current version of Go.
|
||||
|
||||
config GOLANG_BUILD_CACHE_DIR
|
||||
string "Go build cache directory"
|
||||
default ""
|
||||
help
|
||||
Path where Go should store its build cache.
|
||||
|
||||
If not set, uses '$(TMP_DIR)/go-build'.
|
||||
|
||||
config GOLANG_MOD_CACHE_WORLD_READABLE
|
||||
bool "Ensure Go module cache is world-readable"
|
||||
default n
|
||||
|
||||
config GOLANG_SPECTRE
|
||||
bool "Enable Spectre mitigations"
|
||||
default n
|
||||
depends on x86_64
|
||||
help
|
||||
Currently only available for x86-64 (amd64).
|
||||
|
||||
endmenu
|
||||
341
golang/golang-bootstrap/Makefile
Normal file
341
golang/golang-bootstrap/Makefile
Normal file
@ -0,0 +1,341 @@
|
||||
#
|
||||
# Copyright (C) 2018-2023 Jeffery To
|
||||
# Copyright (C) 2025-2026 George Sapkin
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
GO_VERSION_MAJOR_MINOR:=1.24
|
||||
GO_VERSION_PATCH:=13
|
||||
PKG_HASH:=639a6204c2486b137df1eb6e78ee3ed038f9877d0e4b5a465e796a2153f858d7
|
||||
|
||||
PKG_NAME:=golang-bootstrap
|
||||
PKG_VERSION:=$(GO_VERSION_MAJOR_MINOR)$(if $(GO_VERSION_PATCH),.$(GO_VERSION_PATCH))
|
||||
PKG_RELEASE:=1
|
||||
|
||||
GO_SOURCE_URLS:=https://go.dev/dl/ \
|
||||
https://golang.google.cn/dl/ \
|
||||
https://mirrors.nju.edu.cn/golang/ \
|
||||
https://mirrors.ustc.edu.cn/golang/
|
||||
|
||||
PKG_SOURCE:=go$(PKG_VERSION).src.tar.gz
|
||||
PKG_SOURCE_URL:=$(GO_SOURCE_URLS)
|
||||
|
||||
PKG_MAINTAINER:=George Sapkin <george@sapk.in>
|
||||
PKG_LICENSE:=BSD-3-Clause
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
PKG_CPE_ID:=cpe:/a:golang:go
|
||||
|
||||
PKG_HOST_ONLY:=1
|
||||
|
||||
HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/go-$(PKG_VERSION)
|
||||
HOST_BUILD_PARALLEL:=1
|
||||
|
||||
HOST_GO_PREFIX:=$(STAGING_DIR_HOSTPKG)
|
||||
HOST_GO_VERSION_ID:=bootstrap
|
||||
HOST_GO_ROOT:=$(HOST_GO_PREFIX)/lib/go-$(HOST_GO_VERSION_ID)
|
||||
|
||||
# From go tool dist list
|
||||
HOST_GO_VALID_OS_ARCH:= \
|
||||
aix/ppc64 \
|
||||
android/386 \
|
||||
android/amd64 \
|
||||
android/arm \
|
||||
android/arm64 \
|
||||
darwin/amd64 \
|
||||
darwin/arm64 \
|
||||
dragonfly/amd64 \
|
||||
freebsd/386 \
|
||||
freebsd/amd64 \
|
||||
freebsd/arm \
|
||||
freebsd/arm64 \
|
||||
freebsd/riscv64 \
|
||||
illumos/amd64 \
|
||||
ios/amd64 \
|
||||
ios/arm64 \
|
||||
js/wasm \
|
||||
linux/386 \
|
||||
linux/amd64 \
|
||||
linux/arm \
|
||||
linux/arm64 \
|
||||
linux/loong64 \
|
||||
linux/mips \
|
||||
linux/mips64 \
|
||||
linux/mips64le \
|
||||
linux/mipsle \
|
||||
linux/ppc64 \
|
||||
linux/ppc64le \
|
||||
linux/riscv64 \
|
||||
linux/s390x \
|
||||
netbsd/386 \
|
||||
netbsd/amd64 \
|
||||
netbsd/arm \
|
||||
netbsd/arm64 \
|
||||
openbsd/386 \
|
||||
openbsd/amd64 \
|
||||
openbsd/arm \
|
||||
openbsd/arm64 \
|
||||
openbsd/ppc64 \
|
||||
openbsd/riscv64 \
|
||||
plan9/386 \
|
||||
plan9/amd64 \
|
||||
plan9/arm \
|
||||
solaris/amd64 \
|
||||
wasip1/wasm \
|
||||
windows/386 \
|
||||
windows/amd64 \
|
||||
windows/arm64
|
||||
|
||||
BOOTSTRAP_SOURCE:=go1.4-bootstrap-20171003.tar.gz
|
||||
BOOTSTRAP_SOURCE_URL:=$(GO_SOURCE_URLS)
|
||||
BOOTSTRAP_HASH:=f4ff5b5eb3a3cae1c993723f3eab519c5bae18866b5e5f96fe1102f0cb5c3e52
|
||||
|
||||
BOOTSTRAP_BUILD_DIR:=$(HOST_BUILD_DIR)/.go_bootstrap
|
||||
|
||||
BOOTSTRAP_GO_VALID_OS_ARCH:= \
|
||||
darwin/386 \
|
||||
darwin/amd64 \
|
||||
dragonfly/386 \
|
||||
dragonfly/amd64 \
|
||||
freebsd/386 \
|
||||
freebsd/amd64 \
|
||||
freebsd/arm \
|
||||
linux/386 \
|
||||
linux/amd64 \
|
||||
linux/arm \
|
||||
netbsd/386 \
|
||||
netbsd/amd64 \
|
||||
netbsd/arm \
|
||||
openbsd/386 \
|
||||
openbsd/amd64 \
|
||||
plan9/386 \
|
||||
plan9/amd64 \
|
||||
solaris/amd64 \
|
||||
windows/386 \
|
||||
windows/amd64
|
||||
|
||||
BOOTSTRAP_1_17_SOURCE:=go1.17.13.src.tar.gz
|
||||
BOOTSTRAP_1_17_SOURCE_URL:=$(GO_SOURCE_URLS)
|
||||
BOOTSTRAP_1_17_HASH:=a1a48b23afb206f95e7bbaa9b898d965f90826f6f1d1fc0c1d784ada0cd300fd
|
||||
|
||||
BOOTSTRAP_1_17_BUILD_DIR:=$(HOST_BUILD_DIR)/.go_bootstrap_1.17
|
||||
|
||||
BOOTSTRAP_1_20_SOURCE:=go1.20.14.src.tar.gz
|
||||
BOOTSTRAP_1_20_SOURCE_URL:=$(GO_SOURCE_URLS)
|
||||
BOOTSTRAP_1_20_HASH:=1aef321a0e3e38b7e91d2d7eb64040666cabdcc77d383de3c9522d0d69b67f4e
|
||||
|
||||
BOOTSTRAP_1_20_BUILD_DIR:=$(HOST_BUILD_DIR)/.go_bootstrap_1.20
|
||||
|
||||
BOOTSTRAP_1_22_SOURCE:=go1.22.12.src.tar.gz
|
||||
BOOTSTRAP_1_22_SOURCE_URL:=$(GO_SOURCE_URLS)
|
||||
BOOTSTRAP_1_22_HASH:=012a7e1f37f362c0918c1dfa3334458ac2da1628c4b9cf4d9ca02db986e17d71
|
||||
|
||||
BOOTSTRAP_1_22_BUILD_DIR:=$(HOST_BUILD_DIR)/.go_bootstrap_1.22
|
||||
|
||||
include $(INCLUDE_DIR)/host-build.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include ../golang-compiler.mk
|
||||
include ../golang-package.mk
|
||||
|
||||
PKG_UNPACK:=$(HOST_TAR) -C "$(PKG_BUILD_DIR)" --strip-components=1 -xzf "$(DL_DIR)/$(PKG_SOURCE)"
|
||||
HOST_UNPACK:=$(HOST_TAR) -C "$(HOST_BUILD_DIR)" --strip-components=1 -xzf "$(DL_DIR)/$(PKG_SOURCE)"
|
||||
BOOTSTRAP_UNPACK:=$(HOST_TAR) -C "$(BOOTSTRAP_BUILD_DIR)" --strip-components=1 -xzf "$(DL_DIR)/$(BOOTSTRAP_SOURCE)"
|
||||
BOOTSTRAP_1_17_UNPACK:=$(HOST_TAR) -C "$(BOOTSTRAP_1_17_BUILD_DIR)" --strip-components=1 -xzf "$(DL_DIR)/$(BOOTSTRAP_1_17_SOURCE)"
|
||||
BOOTSTRAP_1_20_UNPACK:=$(HOST_TAR) -C "$(BOOTSTRAP_1_20_BUILD_DIR)" --strip-components=1 -xzf "$(DL_DIR)/$(BOOTSTRAP_1_20_SOURCE)"
|
||||
BOOTSTRAP_1_22_UNPACK:=$(HOST_TAR) -C "$(BOOTSTRAP_1_22_BUILD_DIR)" --strip-components=1 -xzf "$(DL_DIR)/$(BOOTSTRAP_1_22_SOURCE)"
|
||||
|
||||
# Don't strip ELF executables in test data
|
||||
RSTRIP:=:
|
||||
|
||||
ifeq ($(GO_TARGET_SPECTRE_SUPPORTED),1)
|
||||
PKG_CONFIG_DEPENDS+=CONFIG_GOLANG_SPECTRE
|
||||
endif
|
||||
|
||||
define Package/golang-bootstrap
|
||||
$(call GoPackage/GoSubMenu)
|
||||
TITLE:=Go programming language (bootstrap)
|
||||
DEPENDS:=$(GO_ARCH_DEPENDS)
|
||||
endef
|
||||
|
||||
define Package/golang-bootstrap/description
|
||||
The Go programming language is an open source project to make programmers more
|
||||
productive.
|
||||
|
||||
Go is expressive, concise, clean, and efficient. Its concurrency mechanisms
|
||||
make it easy to write programs that get the most out of multicore and
|
||||
networked machines, while its novel type system enables flexible and modular
|
||||
program construction. Go compiles quickly to machine code yet has the
|
||||
convenience of garbage collection and the power of run-time reflection. It's a
|
||||
fast, statically typed, compiled language that feels like a dynamically typed,
|
||||
interpreted language.
|
||||
endef
|
||||
|
||||
define Package/golang-bootstrap/config
|
||||
source "$(SOURCE)/Config.in"
|
||||
endef
|
||||
|
||||
BOOTSTRAP_ROOT_DIR:=$(call qstrip,$(CONFIG_GOLANG_EXTERNAL_BOOTSTRAP_ROOT))
|
||||
|
||||
ifeq ($(BOOTSTRAP_ROOT_DIR),)
|
||||
BOOTSTRAP_ROOT_DIR:=$(BOOTSTRAP_BUILD_DIR)
|
||||
|
||||
define Download/golang-bootstrap
|
||||
FILE:=$(BOOTSTRAP_SOURCE)
|
||||
URL:=$(BOOTSTRAP_SOURCE_URL)
|
||||
HASH:=$(BOOTSTRAP_HASH)
|
||||
endef
|
||||
$(eval $(call Download,golang-bootstrap))
|
||||
|
||||
define Bootstrap/Prepare
|
||||
mkdir -p "$(BOOTSTRAP_BUILD_DIR)" && $(BOOTSTRAP_UNPACK) ;
|
||||
endef
|
||||
Hooks/HostPrepare/Post+=Bootstrap/Prepare
|
||||
|
||||
$(eval $(call GoCompiler/AddProfile,Bootstrap,$(BOOTSTRAP_BUILD_DIR),,bootstrap,$(GO_HOST_OS_ARCH)))
|
||||
endif
|
||||
|
||||
# Skip configuring and downloading stages when building is not configured
|
||||
ifeq ($(CONFIG_GOLANG_BUILD_BOOTSTRAP),y)
|
||||
|
||||
# Bootstrap 1.17
|
||||
|
||||
define Download/golang-bootstrap-1.17
|
||||
FILE:=$(BOOTSTRAP_1_17_SOURCE)
|
||||
URL:=$(BOOTSTRAP_1_17_SOURCE_URL)
|
||||
HASH:=$(BOOTSTRAP_1_17_HASH)
|
||||
endef
|
||||
$(eval $(call Download,golang-bootstrap-1.17))
|
||||
|
||||
define Bootstrap-1.17/Prepare
|
||||
mkdir -p "$(BOOTSTRAP_1_17_BUILD_DIR)" && $(BOOTSTRAP_1_17_UNPACK) ;
|
||||
endef
|
||||
Hooks/HostPrepare/Post+=Bootstrap-1.17/Prepare
|
||||
|
||||
$(eval $(call GoCompiler/AddProfile,Bootstrap-1.17,$(BOOTSTRAP_1_17_BUILD_DIR),,bootstrap-1.17,$(GO_HOST_OS_ARCH)))
|
||||
|
||||
# Bootstrap 1.20
|
||||
|
||||
define Download/golang-bootstrap-1.20
|
||||
FILE:=$(BOOTSTRAP_1_20_SOURCE)
|
||||
URL:=$(BOOTSTRAP_1_20_SOURCE_URL)
|
||||
HASH:=$(BOOTSTRAP_1_20_HASH)
|
||||
endef
|
||||
$(eval $(call Download,golang-bootstrap-1.20))
|
||||
|
||||
define Bootstrap-1.20/Prepare
|
||||
mkdir -p "$(BOOTSTRAP_1_20_BUILD_DIR)" && $(BOOTSTRAP_1_20_UNPACK) ;
|
||||
endef
|
||||
Hooks/HostPrepare/Post+=Bootstrap-1.20/Prepare
|
||||
|
||||
$(eval $(call GoCompiler/AddProfile,Bootstrap-1.20,$(BOOTSTRAP_1_20_BUILD_DIR),,bootstrap-1.20,$(GO_HOST_OS_ARCH)))
|
||||
|
||||
# Bootstrap 1.22
|
||||
|
||||
define Download/golang-bootstrap-1.22
|
||||
FILE:=$(BOOTSTRAP_1_22_SOURCE)
|
||||
URL:=$(BOOTSTRAP_1_22_SOURCE_URL)
|
||||
HASH:=$(BOOTSTRAP_1_22_HASH)
|
||||
endef
|
||||
$(eval $(call Download,golang-bootstrap-1.22))
|
||||
|
||||
define Bootstrap-1.22/Prepare
|
||||
mkdir -p "$(BOOTSTRAP_1_22_BUILD_DIR)" && $(BOOTSTRAP_1_22_UNPACK) ;
|
||||
endef
|
||||
Hooks/HostPrepare/Post+=Bootstrap-1.22/Prepare
|
||||
|
||||
$(eval $(call GoCompiler/AddProfile,Bootstrap-1.22,$(BOOTSTRAP_1_22_BUILD_DIR),,bootstrap-1.22,$(GO_HOST_OS_ARCH)))
|
||||
|
||||
endif
|
||||
|
||||
|
||||
# Host
|
||||
|
||||
ifeq ($(GO_HOST_PIE_SUPPORTED),1)
|
||||
HOST_GO_ENABLE_PIE:=1
|
||||
endif
|
||||
|
||||
# When using GO_LDFLAGS to set buildmode=pie, the PIE install suffix does not
|
||||
# apply (we also delete the std lib during Host/Install)
|
||||
|
||||
ifeq ($(CONFIG_GOLANG_BUILD_BOOTSTRAP),y)
|
||||
$(eval $(call GoCompiler/AddProfile,Host,$(HOST_BUILD_DIR),$(HOST_GO_PREFIX),$(HOST_GO_VERSION_ID),$(GO_HOST_OS_ARCH)))
|
||||
endif
|
||||
|
||||
HOST_GO_VARS= \
|
||||
GOHOSTARCH="$(GO_HOST_ARCH)" \
|
||||
GOCACHE="$(GO_BUILD_CACHE_DIR)" \
|
||||
GOENV=off \
|
||||
CC="$(HOSTCC_NOCACHE)" \
|
||||
CXX="$(HOSTCXX_NOCACHE)"
|
||||
|
||||
define Host/Configure
|
||||
$(call GoCompiler/Bootstrap/CheckHost,$(BOOTSTRAP_GO_VALID_OS_ARCH))
|
||||
$(call GoCompiler/Host/CheckHost,$(HOST_GO_VALID_OS_ARCH))
|
||||
|
||||
mkdir -p "$(GO_BUILD_CACHE_DIR)"
|
||||
endef
|
||||
|
||||
define Host/Compile
|
||||
$(call GoCompiler/Bootstrap/Make, \
|
||||
$(HOST_GO_VARS) \
|
||||
CC="$(HOSTCC_NOCACHE) -std=gnu17" \
|
||||
)
|
||||
|
||||
$(call GoCompiler/Bootstrap-1.17/Make, \
|
||||
GOROOT_BOOTSTRAP="$(BOOTSTRAP_ROOT_DIR)" \
|
||||
$(HOST_GO_VARS) \
|
||||
)
|
||||
|
||||
$(call GoCompiler/Bootstrap-1.20/Make, \
|
||||
GOROOT_BOOTSTRAP="$(BOOTSTRAP_1_17_BUILD_DIR)" \
|
||||
$(HOST_GO_VARS) \
|
||||
)
|
||||
|
||||
$(call GoCompiler/Bootstrap-1.22/Make, \
|
||||
GOROOT_BOOTSTRAP="$(BOOTSTRAP_1_20_BUILD_DIR)" \
|
||||
$(HOST_GO_VARS) \
|
||||
)
|
||||
|
||||
$(call GoCompiler/Host/Make, \
|
||||
GOROOT_BOOTSTRAP="$(BOOTSTRAP_1_22_BUILD_DIR)" \
|
||||
$(if $(HOST_GO_ENABLE_PIE),GO_LDFLAGS="-buildmode pie") \
|
||||
$(HOST_GO_VARS) \
|
||||
)
|
||||
endef
|
||||
|
||||
# If host and target OS/arch are the same, # when go compiles a program, it will
|
||||
# use the host std lib, so remove it now and force go to rebuild std for target
|
||||
# later
|
||||
define Host/Install
|
||||
$(call Host/Uninstall)
|
||||
|
||||
$(call GoCompiler/Host/Install/Bin)
|
||||
$(call GoCompiler/Host/Install/Src)
|
||||
|
||||
rm -rf "$(HOST_GO_ROOT)/pkg/$(GO_HOST_OS_ARCH)"
|
||||
|
||||
$(INSTALL_DIR) "$(STAGING_DIR_HOSTPKG)/bin"
|
||||
$(INSTALL_BIN) ../go-strip-helper "$(STAGING_DIR_HOSTPKG)/bin"
|
||||
|
||||
$(INSTALL_DIR) "$(HOST_GO_ROOT)/openwrt"
|
||||
$(INSTALL_BIN) ../go-gcc-helper "$(HOST_GO_ROOT)/openwrt"
|
||||
$(LN) go-gcc-helper "$(HOST_GO_ROOT)/openwrt/gcc"
|
||||
$(LN) go-gcc-helper "$(HOST_GO_ROOT)/openwrt/g++"
|
||||
endef
|
||||
|
||||
define Host/Uninstall
|
||||
rm -f "$(STAGING_DIR_HOSTPKG)/bin/go-strip-helper"
|
||||
rm -rf "$(HOST_GO_ROOT)/openwrt"
|
||||
|
||||
$(call GoCompiler/Host/Uninstall)
|
||||
endef
|
||||
|
||||
# Skip downloading and building final bootstrap when building is not configured
|
||||
ifeq ($(CONFIG_GOLANG_BUILD_BOOTSTRAP),y)
|
||||
$(eval $(call HostBuild))
|
||||
else
|
||||
host-compile:
|
||||
endif
|
||||
|
||||
$(eval $(call BuildPackage,golang-bootstrap))
|
||||
201
golang/golang-build.sh
Normal file
201
golang/golang-build.sh
Normal file
@ -0,0 +1,201 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (C) 2020, 2022 Jeffery To
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
nl="
|
||||
"
|
||||
|
||||
log() {
|
||||
local IFS=" "
|
||||
printf '%s\n' "$*"
|
||||
}
|
||||
|
||||
log_error() {
|
||||
local IFS=" "
|
||||
printf 'Error: %s\n' "$*" >&2
|
||||
}
|
||||
|
||||
link_contents() {
|
||||
local src="$1" dest="$2" IFS="$nl" dirs dir base
|
||||
|
||||
if [ -n "$(find "$src" -mindepth 1 -maxdepth 1 -name "*.go" -not -type d)" ]; then
|
||||
log_error "$src is already a Go library"
|
||||
return 1
|
||||
fi
|
||||
|
||||
dirs="$(find "$src" -mindepth 1 -maxdepth 1 -type d)"
|
||||
for dir in $dirs; do
|
||||
base="${dir##*/}"
|
||||
if [ -d "$dest/$base" ]; then
|
||||
case "$dir" in
|
||||
*$GO_BUILD_DEPENDS_SRC/$GO_PKG)
|
||||
log "$GO_PKG is already installed. Please check for circular dependencies."
|
||||
;;
|
||||
*)
|
||||
link_contents "$src/$base" "$dest/$base"
|
||||
;;
|
||||
esac
|
||||
else
|
||||
log "...${src#$GO_BUILD_DEPENDS_SRC}/$base"
|
||||
ln -sf "$src/$base" "$dest/$base"
|
||||
fi
|
||||
done
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
configure() {
|
||||
local files code testdata gomod pattern extra IFS file dest
|
||||
|
||||
cd "$BUILD_DIR" || return 1
|
||||
|
||||
files="$(find ./ -path "*/.*" -prune -o -not -type d -print)"
|
||||
|
||||
if [ "$GO_INSTALL_ALL" != 1 ]; then
|
||||
code="$(printf '%s\n' "$files" | grep '\.\(c\|cc\|cpp\|go\|h\|hh\|hpp\|proto\|s\)$')"
|
||||
testdata="$(printf '%s\n' "$files" | grep '/testdata/')"
|
||||
gomod="$(printf '%s\n' "$files" | grep '/go\.\(mod\|sum\|work\)$')"
|
||||
|
||||
for pattern in $GO_INSTALL_EXTRA; do
|
||||
extra="$(printf '%s\n' "$extra"; printf '%s\n' "$files" | grep -e "$pattern")"
|
||||
done
|
||||
|
||||
files="$(printf '%s\n%s\n%s\n%s\n' "$code" "$testdata" "$gomod" "$extra" | grep -v '^[[:space:]]*$' | sort -u)"
|
||||
fi
|
||||
|
||||
IFS="$nl"
|
||||
|
||||
log "Copying files from $BUILD_DIR into $GO_BUILD_DIR/src/$GO_PKG"
|
||||
mkdir -p "$GO_BUILD_DIR/src"
|
||||
for file in $files; do
|
||||
log "${file#./}"
|
||||
dest="$GO_BUILD_DIR/src/$GO_PKG/${file#./}"
|
||||
mkdir -p "${dest%/*}"
|
||||
cp -fpR "$file" "$dest"
|
||||
done
|
||||
log
|
||||
|
||||
if [ "$GO_SOURCE_ONLY" != 1 ]; then
|
||||
if [ -d "$GO_BUILD_DEPENDS_SRC" ]; then
|
||||
log "Symlinking directories from $GO_BUILD_DEPENDS_SRC into $GO_BUILD_DIR/src"
|
||||
link_contents "$GO_BUILD_DEPENDS_SRC" "$GO_BUILD_DIR/src"
|
||||
else
|
||||
log "$GO_BUILD_DEPENDS_SRC does not exist, skipping symlinks"
|
||||
fi
|
||||
else
|
||||
log "Not building binaries, skipping symlinks"
|
||||
fi
|
||||
log
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
build() {
|
||||
local modargs pattern targets retval
|
||||
|
||||
cd "$GO_BUILD_DIR" || return 1
|
||||
|
||||
if [ -f "$BUILD_DIR/go.mod" ] ; then
|
||||
mkdir -p "$GO_MOD_CACHE_DIR"
|
||||
modargs="$GO_MOD_ARGS"
|
||||
fi
|
||||
|
||||
log "Finding targets"
|
||||
# shellcheck disable=SC2086
|
||||
targets="$(go list $modargs $GO_BUILD_PKG)"
|
||||
for pattern in $GO_EXCLUDES; do
|
||||
targets="$(printf '%s\n' "$targets" | grep -v "$pattern")"
|
||||
done
|
||||
log
|
||||
|
||||
if [ "$GO_GO_GENERATE" = 1 ]; then
|
||||
log "Calling go generate"
|
||||
# shellcheck disable=SC2086
|
||||
GOOS='' GOARCH='' GO386='' GOARM='' GOARM64='' GOMIPS='' GOMIPS64='' GORISCV64=''\
|
||||
go generate -v $targets
|
||||
log
|
||||
fi
|
||||
|
||||
if [ "$GO_SOURCE_ONLY" = 1 ]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
log "Building targets"
|
||||
mkdir -p "$GO_BUILD_DIR/bin" "$GO_BUILD_CACHE_DIR"
|
||||
# shellcheck disable=SC2086
|
||||
go install $modargs "$@" $targets
|
||||
retval="$?"
|
||||
log
|
||||
|
||||
if [ "$retval" -eq 0 ] && [ -z "$(find "$GO_BUILD_BIN_DIR" -maxdepth 0 -type d -not -empty 2>/dev/null)" ]; then
|
||||
log_error "No binaries were built"
|
||||
retval=1
|
||||
fi
|
||||
|
||||
if [ "$retval" -ne 0 ]; then
|
||||
cache_cleanup
|
||||
fi
|
||||
|
||||
return "$retval"
|
||||
}
|
||||
|
||||
install_bin() {
|
||||
local dest="$1"
|
||||
install -d -m0755 "$dest/$GO_INSTALL_BIN_PATH"
|
||||
install -m0755 "$GO_BUILD_BIN_DIR"/* "$dest/$GO_INSTALL_BIN_PATH/"
|
||||
}
|
||||
|
||||
install_src() {
|
||||
local dest="$1" dir="${GO_PKG%/*}"
|
||||
install -d -m0755 "$dest/$GO_BUILD_DEPENDS_PATH/src/$dir"
|
||||
cp -fpR "$GO_BUILD_DIR/src/$GO_PKG" "$dest/$GO_BUILD_DEPENDS_PATH/src/$dir/"
|
||||
}
|
||||
|
||||
cache_cleanup() {
|
||||
if ! [ -d "$GO_MOD_CACHE_DIR" ]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
# in case go is called without -modcacherw
|
||||
find "$GO_MOD_CACHE_DIR" -type d -not -perm -u+w -exec chmod u+w '{}' +
|
||||
|
||||
if [ -n "$CONFIG_GOLANG_MOD_CACHE_WORLD_READABLE" ]; then
|
||||
find "$GO_MOD_CACHE_DIR" -type d -not -perm -go+rx -exec chmod go+rx '{}' +
|
||||
find "$GO_MOD_CACHE_DIR" -not -type d -not -perm -go+r -exec chmod go+r '{}' +
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
if [ "$#" -lt 1 ]; then
|
||||
log_error "Missing command"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
command="$1"
|
||||
shift 1
|
||||
|
||||
case "$command" in
|
||||
configure)
|
||||
configure
|
||||
;;
|
||||
build)
|
||||
build "$@"
|
||||
;;
|
||||
install_bin)
|
||||
install_bin "$@"
|
||||
;;
|
||||
install_src)
|
||||
install_src "$@"
|
||||
;;
|
||||
cache_cleanup)
|
||||
cache_cleanup
|
||||
;;
|
||||
*)
|
||||
log_error "Invalid command \"$command\""
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
224
golang/golang-compiler.mk
Normal file
224
golang/golang-compiler.mk
Normal file
@ -0,0 +1,224 @@
|
||||
#
|
||||
# Copyright (C) 2018, 2020-2021, 2023 Jeffery To
|
||||
# Copyright (C) 2025-2026 George Sapkin
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
ifeq ($(origin GO_INCLUDE_DIR),undefined)
|
||||
GO_INCLUDE_DIR:=$(dir $(lastword $(MAKEFILE_LIST)))
|
||||
endif
|
||||
|
||||
include $(GO_INCLUDE_DIR)/golang-values.mk
|
||||
|
||||
|
||||
# 1: valid GOOS_GOARCH combinations
|
||||
# 2: go version id
|
||||
define GoCompiler/Default/CheckHost
|
||||
$(if $(filter $(GO_HOST_OS_ARCH),$(1)),,$(error go-$(2) cannot be installed on $(GO_HOST_OS)/$(GO_HOST_ARCH)))
|
||||
endef
|
||||
|
||||
# 1: source go root
|
||||
# 2: additional environment variables (optional)
|
||||
define GoCompiler/Default/Make
|
||||
cd "$(1)/src" ; \
|
||||
$(2) $(BASH) make.bash \
|
||||
$(if $(findstring s,$(OPENWRT_VERBOSE)),-v) \
|
||||
--no-banner
|
||||
endef
|
||||
|
||||
# 1: destination prefix
|
||||
# 2: go version id
|
||||
define GoCompiler/Default/Install/make-dirs
|
||||
$(INSTALL_DIR) "$(1)/lib/go-$(2)"
|
||||
endef
|
||||
|
||||
# 1: source go root
|
||||
# 2: destination prefix
|
||||
# 3: go version id
|
||||
# 4: file/directory name
|
||||
# 5: filter (optional)
|
||||
define GoCompiler/Default/Install/install-lib-data
|
||||
|
||||
ifeq ($(5),)
|
||||
$(CP) "$(1)/$(4)" "$(2)/lib/go-$(3)/"
|
||||
else
|
||||
$(INSTALL_DIR) "$(2)/lib/go-$(3)/$(4)"; \
|
||||
cd "$(1)/$(4)" && \
|
||||
$(FIND) . ! -type d -a \( $(5) \) -print0 | \
|
||||
cpio \
|
||||
--make-directories \
|
||||
--null \
|
||||
--pass-through \
|
||||
--unconditional \
|
||||
"$(2)/lib/go-$(3)/$(4)/"
|
||||
endif
|
||||
endef
|
||||
|
||||
# 1: source go root
|
||||
# 2: destination prefix
|
||||
# 3: go version id
|
||||
# 4: GOOS_GOARCH with / as a separator
|
||||
# 5: install suffix (optional)
|
||||
# 6: if target, package architecture-specific sources
|
||||
define GoCompiler/Default/Install/Bin
|
||||
$(call GoCompiler/Default/Install/make-dirs,$(2),$(3))
|
||||
|
||||
$(call GoCompiler/Default/Install/install-lib-data,$(1),$(2),$(3),api)
|
||||
|
||||
$(INSTALL_DATA) -p "$(1)/go.env" "$(2)/lib/go-$(3)/"
|
||||
$(INSTALL_DATA) -p "$(1)/VERSION" "$(2)/lib/go-$(3)/"
|
||||
|
||||
for file in $(strip $(if $(filter target,$(6)),$(GO_BIN_FILES),$(GO_LEGAL_FILES))); do \
|
||||
if [ -f "$(1)/$$$$file" ]; then \
|
||||
$(INSTALL_DATA) -p "$(1)/$$$$file" "$(2)/lib/go-$(3)/" ; \
|
||||
fi ; \
|
||||
done
|
||||
|
||||
$(INSTALL_DIR) "$(2)/lib/go-$(3)/bin"
|
||||
|
||||
$(eval GO_HOST_OS_ARCH_PATH:=$(subst /,_,$(4)))
|
||||
|
||||
ifeq ($(4),$(GO_HOST_OS_ARCH))
|
||||
$(INSTALL_BIN) -p "$(1)/bin"/* "$(2)/lib/go-$(3)/bin/"
|
||||
else
|
||||
$(INSTALL_BIN) -p "$(1)/bin/$(GO_HOST_OS_ARCH_PATH)"/* "$(2)/lib/go-$(3)/bin/"
|
||||
endif
|
||||
|
||||
if [ -d "$(1)/pkg/$(GO_HOST_OS_ARCH_PATH)$(if $(5),_$(5))" ]; then \
|
||||
$(INSTALL_DIR) "$(2)/lib/go-$(3)/pkg" ; \
|
||||
$(CP) "$(1)/pkg/$(GO_HOST_OS_ARCH_PATH)$(if $(5),_$(5))" "$(2)/lib/go-$(3)/pkg/" ; \
|
||||
fi
|
||||
|
||||
$(INSTALL_DIR) "$(2)/lib/go-$(3)/pkg/tool/$(GO_HOST_OS_ARCH_PATH)"
|
||||
$(INSTALL_BIN) -p "$(1)/pkg/tool/$(GO_HOST_OS_ARCH_PATH)"/* "$(2)/lib/go-$(3)/pkg/tool/$(GO_HOST_OS_ARCH_PATH)/"
|
||||
endef
|
||||
|
||||
# 1: destination prefix
|
||||
# 2: go version id
|
||||
define GoCompiler/Default/Install/BinLinks
|
||||
$(INSTALL_DIR) "$(1)/bin"
|
||||
$(LN) "../lib/go-$(2)/bin/go" "$(1)/bin/go$(2)"
|
||||
$(LN) "../lib/go-$(2)/bin/gofmt" "$(1)/bin/gofmt$(2)"
|
||||
endef
|
||||
|
||||
# 1: source go root
|
||||
# 2: destination prefix
|
||||
# 3: go version id
|
||||
define GoCompiler/Default/Install/Doc
|
||||
$(call GoCompiler/Default/Install/make-dirs,$(2),$(3))
|
||||
|
||||
$(call GoCompiler/Default/Install/install-lib-data,$(1),$(2),$(3),doc)
|
||||
endef
|
||||
|
||||
# 1: source go root
|
||||
# 2: destination prefix
|
||||
# 3: go version id
|
||||
define GoCompiler/Default/Install/Misc
|
||||
$(call GoCompiler/Default/Install/make-dirs,$(2),$(3))
|
||||
$(call GoCompiler/Default/Install/install-lib-data,$(1),$(2),$(3),misc)
|
||||
endef
|
||||
|
||||
# 1: source go root
|
||||
# 2: destination prefix
|
||||
# 3: go version id
|
||||
# 4: if target, package architecture-specific sources
|
||||
define GoCompiler/Default/Install/Src
|
||||
$(call GoCompiler/Default/Install/make-dirs,$(2),$(3))
|
||||
$(call GoCompiler/Default/Install/install-lib-data,$(1),$(2),$(3),src,$(strip \
|
||||
$(if $(filter target,$(4)), \
|
||||
$(GO_TARGET_SRC_FILTERS), \
|
||||
$(GO_HOST_SRC_FILTERS) \
|
||||
) \
|
||||
))
|
||||
|
||||
if [ -d "$(1)/pkg/include" ]; then \
|
||||
$(INSTALL_DIR) "$(2)/lib/go-$(3)/pkg" ; \
|
||||
$(CP) "$(1)/pkg/include" "$(2)/lib/go-$(3)/pkg/" ; \
|
||||
fi
|
||||
endef
|
||||
|
||||
# 1: source go root
|
||||
# 2: destination prefix
|
||||
# 3: go version id
|
||||
define GoCompiler/Default/Install/Tests
|
||||
$(call GoCompiler/Default/Install/make-dirs,$(2),$(3))
|
||||
$(call GoCompiler/Default/Install/install-lib-data,$(1),$(2),$(3),lib)
|
||||
$(call GoCompiler/Default/Install/install-lib-data,$(1),$(2),$(3),src,$(GO_TARGET_TEST_FILTERS))
|
||||
$(call GoCompiler/Default/Install/install-lib-data,$(1),$(2),$(3),test)
|
||||
endef
|
||||
|
||||
# 1: destination prefix
|
||||
# 2: go version id
|
||||
define GoCompiler/Default/Uninstall
|
||||
rm -rf "$(1)/lib/go-$(2)"
|
||||
endef
|
||||
|
||||
# 1: destination prefix
|
||||
# 2: go version id
|
||||
define GoCompiler/Default/Uninstall/BinLinks
|
||||
rm -f "$(1)/bin/go$(2)"
|
||||
rm -f "$(1)/bin/gofmt$(2)"
|
||||
endef
|
||||
|
||||
|
||||
# 1: profile name
|
||||
# 2: source go root
|
||||
# 3: destination prefix
|
||||
# 4: go version id
|
||||
# 5: GOOS_GOARCH with / as a separator
|
||||
# 6: install suffix (optional)
|
||||
define GoCompiler/AddProfile
|
||||
|
||||
# 1: valid GOOS_GOARCH combinations
|
||||
define GoCompiler/$(1)/CheckHost
|
||||
$$(call GoCompiler/Default/CheckHost,$$(1),$(4))
|
||||
endef
|
||||
|
||||
# 1: additional environment variables (optional)
|
||||
define GoCompiler/$(1)/Make
|
||||
$$(call GoCompiler/Default/Make,$(2),$$(1))
|
||||
endef
|
||||
|
||||
# 1: override install prefix (optional)
|
||||
# 2: if target, package architecture-specific sources
|
||||
define GoCompiler/$(1)/Install/Bin
|
||||
$$(call GoCompiler/Default/Install/Bin,$(2),$$(or $$(1),$(3)),$(4),$(5),$(6),$$(2))
|
||||
endef
|
||||
|
||||
# 1: override install prefix (optional)
|
||||
define GoCompiler/$(1)/Install/BinLinks
|
||||
$$(call GoCompiler/Default/Install/BinLinks,$$(or $$(1),$(3)),$(4))
|
||||
endef
|
||||
|
||||
# 1: override install prefix (optional)
|
||||
define GoCompiler/$(1)/Install/Doc
|
||||
$$(call GoCompiler/Default/Install/Doc,$(2),$$(or $$(1),$(3)),$(4))
|
||||
endef
|
||||
|
||||
# 1: override install prefix (optional)
|
||||
define GoCompiler/$(1)/Install/Misc
|
||||
$$(call GoCompiler/Default/Install/Misc,$(2),$$(or $$(1),$(3)),$(4))
|
||||
endef
|
||||
|
||||
# 1: override install prefix (optional)
|
||||
# 2: if target, package architecture-specific sources
|
||||
define GoCompiler/$(1)/Install/Src
|
||||
$$(call GoCompiler/Default/Install/Src,$(2),$$(or $$(1),$(3)),$(4),$$(2))
|
||||
endef
|
||||
|
||||
# 1: override install prefix (optional)
|
||||
define GoCompiler/$(1)/Install/Tests
|
||||
$$(call GoCompiler/Default/Install/Tests,$(2),$$(or $$(1),$(3)),$(4),$$(2))
|
||||
endef
|
||||
|
||||
# 1: override install prefix (optional)
|
||||
define GoCompiler/$(1)/Uninstall
|
||||
$$(call GoCompiler/Default/Uninstall,$$(or $$(1),$(3)),$(4))
|
||||
endef
|
||||
|
||||
# 1: override install prefix (optional)
|
||||
define GoCompiler/$(1)/Uninstall/BinLinks
|
||||
$$(call GoCompiler/Default/Uninstall/BinLinks,$$(or $$(1),$(3)),$(4))
|
||||
endef
|
||||
|
||||
endef
|
||||
218
golang/golang-host-build.mk
Normal file
218
golang/golang-host-build.mk
Normal file
@ -0,0 +1,218 @@
|
||||
#
|
||||
# Copyright (C) 2020, 2022 Jeffery To
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
ifeq ($(origin GO_INCLUDE_DIR),undefined)
|
||||
GO_INCLUDE_DIR:=$(dir $(lastword $(MAKEFILE_LIST)))
|
||||
endif
|
||||
|
||||
include $(GO_INCLUDE_DIR)/golang-values.mk
|
||||
|
||||
|
||||
# these variables have the same meanings as in golang-package.mk
|
||||
GO_HOST_INSTALL_EXTRA?=$(GO_PKG_INSTALL_EXTRA)
|
||||
GO_HOST_INSTALL_ALL?=$(GO_PKG_INSTALL_ALL)
|
||||
GO_HOST_SOURCE_ONLY?=$(GO_PKG_SOURCE_ONLY)
|
||||
GO_HOST_BUILD_PKG?=$(GO_PKG_BUILD_PKG)
|
||||
GO_HOST_EXCLUDES?=$(GO_PKG_EXCLUDES)
|
||||
GO_HOST_GO_GENERATE?=$(GO_PKG_GO_GENERATE)
|
||||
GO_HOST_GCFLAGS?=$(GO_PKG_GCFLAGS)
|
||||
GO_HOST_LDFLAGS?=$(GO_PKG_LDFLAGS)
|
||||
GO_HOST_LDFLAGS_X?=$(GO_PKG_LDFLAGS_X)
|
||||
GO_HOST_TAGS?=$(GO_PKG_TAGS)
|
||||
GO_HOST_INSTALL_BIN_PATH?=/bin
|
||||
|
||||
|
||||
# need to repeat this here in case golang-package.mk is not included
|
||||
GO_PKG_BUILD_PKG?=$(strip $(GO_PKG))/...
|
||||
|
||||
GO_HOST_WORK_DIR_NAME:=.go_work
|
||||
GO_HOST_BUILD_DIR=$(HOST_BUILD_DIR)/$(GO_HOST_WORK_DIR_NAME)/build
|
||||
GO_HOST_BUILD_BIN_DIR=$(GO_HOST_BUILD_DIR)/bin
|
||||
|
||||
GO_HOST_BUILD_DEPENDS_PATH:=/share/gocode
|
||||
GO_HOST_BUILD_DEPENDS_SRC=$(STAGING_DIR_HOSTPKG)$(GO_HOST_BUILD_DEPENDS_PATH)/src
|
||||
|
||||
GO_HOST_DIR_NAME:=$(lastword $(subst /,$(space),$(CURDIR)))
|
||||
GO_HOST_STAGING_DIR:=$(TMP_DIR)/host-stage-$(GO_HOST_DIR_NAME)
|
||||
GO_HOST_STAGING_FILES_LIST_DIR:=$(HOST_BUILD_PREFIX)/stamp
|
||||
GO_HOST_BIN_STAGING_FILES_LIST:=$(GO_HOST_STAGING_FILES_LIST_DIR)/$(GO_HOST_DIR_NAME)-bin.list
|
||||
GO_HOST_SRC_STAGING_FILES_LIST:=$(GO_HOST_STAGING_FILES_LIST_DIR)/$(GO_HOST_DIR_NAME)-src.list
|
||||
|
||||
ifeq ($(GO_HOST_PIE_SUPPORTED),1)
|
||||
GO_HOST_ENABLE_PIE:=1
|
||||
endif
|
||||
|
||||
GO_HOST_BUILD_CONFIG_VARS= \
|
||||
GO_PKG="$(strip $(GO_PKG))" \
|
||||
GO_INSTALL_EXTRA="$(strip $(GO_HOST_INSTALL_EXTRA))" \
|
||||
GO_INSTALL_ALL="$(strip $(GO_HOST_INSTALL_ALL))" \
|
||||
GO_SOURCE_ONLY="$(strip $(GO_HOST_SOURCE_ONLY))" \
|
||||
GO_BUILD_PKG="$(strip $(GO_HOST_BUILD_PKG))" \
|
||||
GO_EXCLUDES="$(strip $(GO_HOST_EXCLUDES))" \
|
||||
GO_GO_GENERATE="$(strip $(GO_HOST_GO_GENERATE))" \
|
||||
GO_INSTALL_BIN_PATH="$(strip $(GO_HOST_INSTALL_BIN_PATH))" \
|
||||
BUILD_DIR="$(HOST_BUILD_DIR)" \
|
||||
GO_BUILD_DIR="$(GO_HOST_BUILD_DIR)" \
|
||||
GO_BUILD_BIN_DIR="$(GO_HOST_BUILD_BIN_DIR)" \
|
||||
GO_BUILD_DEPENDS_PATH="$(GO_HOST_BUILD_DEPENDS_PATH)" \
|
||||
GO_BUILD_DEPENDS_SRC="$(GO_HOST_BUILD_DEPENDS_SRC)"
|
||||
|
||||
GO_HOST_MORE_CFLAGS?= \
|
||||
-Wformat -Werror=format-security \
|
||||
-fstack-protector-strong \
|
||||
-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 \
|
||||
-Wl,-z,now -Wl,-z,relro \
|
||||
$(if $(GO_HOST_ENABLE_PIE),$(FPIC))
|
||||
|
||||
GO_HOST_MORE_LDFLAGS?= \
|
||||
-znow -zrelro \
|
||||
$(if $(GO_HOST_ENABLE_PIE),$(FPIC) -specs=$(INCLUDE_DIR)/hardened-ld-pie.specs)
|
||||
|
||||
GO_HOST_TARGET_VARS= \
|
||||
CGO_ENABLED=1 \
|
||||
CC=gcc \
|
||||
CXX=g++ \
|
||||
PKG_CONFIG=pkg-config \
|
||||
CGO_CFLAGS="$(HOST_CFLAGS) $(GO_HOST_MORE_CFLAGS)" \
|
||||
CGO_CPPFLAGS="$(HOST_CPPFLAGS) $(GO_HOST_MORE_CPPFLAGS)" \
|
||||
CGO_CXXFLAGS="$(HOST_CFLAGS) $(GO_HOST_MORE_CFLAGS)" \
|
||||
CGO_LDFLAGS="$(HOST_LDFLAGS) $(GO_HOST_MORE_LDFLAGS)" \
|
||||
GO_GCC_HELPER_CC="$(HOSTCC)" \
|
||||
GO_GCC_HELPER_CXX="$(HOSTCXX)" \
|
||||
GO_GCC_HELPER_PATH="$$$$PATH" \
|
||||
PATH="$(STAGING_DIR_HOSTPKG)/lib/go-cross/openwrt:$$$$PATH"
|
||||
|
||||
GO_HOST_BUILD_VARS= \
|
||||
GOPATH="$(GO_HOST_BUILD_DIR)" \
|
||||
GOCACHE="$(GO_BUILD_CACHE_DIR)" \
|
||||
GOMODCACHE="$(GO_MOD_CACHE_DIR)" \
|
||||
GOENV=off
|
||||
|
||||
GO_HOST_VARS= \
|
||||
$(GO_HOST_TARGET_VARS) \
|
||||
$(GO_HOST_BUILD_VARS)
|
||||
|
||||
GO_HOST_DEFAULT_LDFLAGS= \
|
||||
-linkmode external \
|
||||
-extldflags '$(patsubst -z%,-Wl$(comma)-z$(comma)%,$(HOST_LDFLAGS) $(GO_HOST_MORE_LDFLAGS))'
|
||||
|
||||
GO_HOST_CUSTOM_LDFLAGS= \
|
||||
$(GO_HOST_LDFLAGS) \
|
||||
$(patsubst %,-X %,$(GO_HOST_LDFLAGS_X))
|
||||
|
||||
GO_HOST_INSTALL_ARGS= \
|
||||
-v \
|
||||
-ldflags "all=$(GO_HOST_DEFAULT_LDFLAGS)" \
|
||||
$(if $(GO_HOST_ENABLE_PIE),-buildmode pie) \
|
||||
$(if $(strip $(GO_HOST_GCFLAGS)),-gcflags "$(GO_HOST_GCFLAGS)") \
|
||||
$(if $(strip $(GO_HOST_CUSTOM_LDFLAGS)),-ldflags "$(GO_HOST_CUSTOM_LDFLAGS) $(GO_HOST_DEFAULT_LDFLAGS)") \
|
||||
$(if $(strip $(GO_HOST_TAGS)),-tags "$(GO_HOST_TAGS)")
|
||||
|
||||
define GoHost/Host/Configure
|
||||
$(GO_GENERAL_BUILD_CONFIG_VARS) \
|
||||
$(GO_HOST_BUILD_CONFIG_VARS) \
|
||||
$(SHELL) $(GO_INCLUDE_DIR)/golang-build.sh configure
|
||||
endef
|
||||
|
||||
# $(1) additional arguments for go command line (optional)
|
||||
define GoHost/Host/Compile
|
||||
$(GO_GENERAL_BUILD_CONFIG_VARS) \
|
||||
$(GO_HOST_BUILD_CONFIG_VARS) \
|
||||
$(GO_HOST_VARS) \
|
||||
$(SHELL) $(GO_INCLUDE_DIR)/golang-build.sh build $(GO_HOST_INSTALL_ARGS) $(1)
|
||||
endef
|
||||
|
||||
define GoHost/Host/Install/Bin
|
||||
rm -rf "$(GO_HOST_STAGING_DIR)"
|
||||
mkdir -p "$(GO_HOST_STAGING_DIR)" "$(GO_HOST_STAGING_FILES_LIST_DIR)"
|
||||
|
||||
$(GO_GENERAL_BUILD_CONFIG_VARS) \
|
||||
$(GO_HOST_BUILD_CONFIG_VARS) \
|
||||
$(SHELL) $(GO_INCLUDE_DIR)/golang-build.sh install_bin "$(GO_HOST_STAGING_DIR)"
|
||||
|
||||
if [ -f "$(GO_HOST_BIN_STAGING_FILES_LIST)" ]; then \
|
||||
"$(SCRIPT_DIR)/clean-package.sh" \
|
||||
"$(GO_HOST_BIN_STAGING_FILES_LIST)" \
|
||||
"$(1)" ; \
|
||||
fi
|
||||
|
||||
cd "$(GO_HOST_STAGING_DIR)" && find ./ > "$(GO_HOST_STAGING_DIR).files"
|
||||
|
||||
$(call locked, \
|
||||
mv "$(GO_HOST_STAGING_DIR).files" "$(GO_HOST_BIN_STAGING_FILES_LIST)" && \
|
||||
$(CP) "$(GO_HOST_STAGING_DIR)"/* "$(1)/", \
|
||||
host-staging-dir \
|
||||
)
|
||||
|
||||
rm -rf "$(GO_HOST_STAGING_DIR)"
|
||||
endef
|
||||
|
||||
define GoHost/Host/Install/Src
|
||||
rm -rf "$(GO_HOST_STAGING_DIR)"
|
||||
mkdir -p "$(GO_HOST_STAGING_DIR)" "$(GO_HOST_STAGING_FILES_LIST_DIR)"
|
||||
|
||||
$(GO_GENERAL_BUILD_CONFIG_VARS) \
|
||||
$(GO_HOST_BUILD_CONFIG_VARS) \
|
||||
$(SHELL) $(GO_INCLUDE_DIR)/golang-build.sh install_src "$(GO_HOST_STAGING_DIR)"
|
||||
|
||||
if [ -f "$(GO_HOST_SRC_STAGING_FILES_LIST)" ]; then \
|
||||
"$(SCRIPT_DIR)/clean-package.sh" \
|
||||
"$(GO_HOST_SRC_STAGING_FILES_LIST)" \
|
||||
"$(1)" ; \
|
||||
fi
|
||||
|
||||
cd "$(GO_HOST_STAGING_DIR)" && find ./ > "$(GO_HOST_STAGING_DIR).files"
|
||||
|
||||
$(call locked, \
|
||||
mv "$(GO_HOST_STAGING_DIR).files" "$(GO_HOST_SRC_STAGING_FILES_LIST)" && \
|
||||
$(CP) "$(GO_HOST_STAGING_DIR)"/* "$(1)/", \
|
||||
host-staging-dir \
|
||||
)
|
||||
|
||||
rm -rf "$(GO_HOST_STAGING_DIR)"
|
||||
endef
|
||||
|
||||
define GoHost/Host/Install
|
||||
$(if $(filter $(GO_HOST_SOURCE_ONLY),1),, \
|
||||
$(call GoHost/Host/Install/Bin,$(1)) \
|
||||
)
|
||||
$(call GoHost/Host/Install/Src,$(1))
|
||||
endef
|
||||
|
||||
define GoHost/Host/Uninstall
|
||||
if [ -f "$(GO_HOST_BIN_STAGING_FILES_LIST)" ]; then \
|
||||
"$(SCRIPT_DIR)/clean-package.sh" \
|
||||
"$(GO_HOST_BIN_STAGING_FILES_LIST)" \
|
||||
"$(HOST_BUILD_PREFIX)" ; \
|
||||
rm -f "$(GO_HOST_BIN_STAGING_FILES_LIST)" ; \
|
||||
fi
|
||||
|
||||
if [ -f "$(GO_HOST_SRC_STAGING_FILES_LIST)" ]; then \
|
||||
"$(SCRIPT_DIR)/clean-package.sh" \
|
||||
"$(GO_HOST_SRC_STAGING_FILES_LIST)" \
|
||||
"$(HOST_BUILD_PREFIX)" ; \
|
||||
rm -f "$(GO_HOST_SRC_STAGING_FILES_LIST)" ; \
|
||||
fi
|
||||
endef
|
||||
|
||||
|
||||
ifneq ($(strip $(GO_PKG)),)
|
||||
Host/Configure=$(call GoHost/Host/Configure)
|
||||
Host/Compile=$(call GoHost/Host/Compile)
|
||||
Hooks/HostCompile/Post+=Go/CacheCleanup
|
||||
Host/Uninstall=$(call GoHost/Host/Uninstall,$(1))
|
||||
endif
|
||||
|
||||
define GoHostBuild
|
||||
Host/Install=$$(call GoHost/Host/Install,$$(1))
|
||||
endef
|
||||
|
||||
define GoBinHostBuild
|
||||
Host/Install=$$(call GoHost/Host/Install/Bin,$$(1))
|
||||
endef
|
||||
|
||||
define GoSrcHostBuild
|
||||
Host/Install=$$(call GoHost/Host/Install/Src,$$(1))
|
||||
endef
|
||||
327
golang/golang-package.mk
Normal file
327
golang/golang-package.mk
Normal file
@ -0,0 +1,327 @@
|
||||
#
|
||||
# Copyright (C) 2018-2022 Jeffery To
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
ifeq ($(origin GO_INCLUDE_DIR),undefined)
|
||||
GO_INCLUDE_DIR:=$(dir $(lastword $(MAKEFILE_LIST)))
|
||||
endif
|
||||
|
||||
include $(GO_INCLUDE_DIR)/golang-values.mk
|
||||
|
||||
|
||||
# Variables (all optional, except GO_PKG) to be set in package
|
||||
# Makefiles:
|
||||
#
|
||||
# GO_PKG (required) - name of Go package
|
||||
#
|
||||
# Go name of the package.
|
||||
#
|
||||
# e.g. GO_PKG:=golang.org/x/text
|
||||
#
|
||||
#
|
||||
# GO_PKG_INSTALL_EXTRA - list of regular expressions, default empty
|
||||
#
|
||||
# Additional files/directories to install. By default, only these
|
||||
# files are installed:
|
||||
#
|
||||
# * Files with one of these extensions:
|
||||
# .go, .c, .cc, .cpp, .h, .hh, .hpp, .proto, .s
|
||||
#
|
||||
# * Files in any 'testdata' directory
|
||||
#
|
||||
# * go.mod, go.sum and go.work, in any directory
|
||||
#
|
||||
# e.g. GO_PKG_INSTALL_EXTRA:=example.toml marshal_test.toml
|
||||
#
|
||||
#
|
||||
# GO_PKG_INSTALL_ALL - boolean (0 or 1), default false
|
||||
#
|
||||
# If true, install all files regardless of extension or directory.
|
||||
#
|
||||
# e.g. GO_PKG_INSTALL_ALL:=1
|
||||
#
|
||||
#
|
||||
# GO_PKG_SOURCE_ONLY - boolean (0 or 1), default false
|
||||
#
|
||||
# If true, 'go install' will not be called. If the package does not
|
||||
# (or should not) build any binaries, then specifying this option will
|
||||
# save build time.
|
||||
#
|
||||
# e.g. GO_PKG_SOURCE_ONLY:=1
|
||||
#
|
||||
#
|
||||
# GO_PKG_BUILD_PKG - list of build targets, default GO_PKG/...
|
||||
#
|
||||
# Build targets for compiling this Go package, i.e. arguments passed
|
||||
# to 'go install'.
|
||||
#
|
||||
# e.g. GO_PKG_BUILD_PKG:=github.com/debian/ratt/cmd/...
|
||||
#
|
||||
#
|
||||
# GO_PKG_EXCLUDES - list of regular expressions, default empty
|
||||
#
|
||||
# Patterns to exclude from the build targets expanded from
|
||||
# GO_PKG_BUILD_PKG.
|
||||
#
|
||||
# e.g. GO_PKG_EXCLUDES:=examples/
|
||||
#
|
||||
#
|
||||
# GO_PKG_GO_GENERATE - boolean (0 or 1), default false
|
||||
#
|
||||
# If true, 'go generate' will be called on all build targets (as
|
||||
# determined by GO_PKG_BUILD_PKG and GO_PKG_EXCLUDES). This is usually
|
||||
# not necessary.
|
||||
#
|
||||
# e.g. GO_PKG_GO_GENERATE:=1
|
||||
#
|
||||
#
|
||||
# GO_PKG_GCFLAGS - list of options, default empty
|
||||
#
|
||||
# Additional go tool compile options to use when building targets.
|
||||
#
|
||||
# e.g. GO_PKG_GCFLAGS:=-N -l
|
||||
#
|
||||
#
|
||||
# GO_PKG_LDFLAGS - list of options, default empty
|
||||
#
|
||||
# Additional go tool link options to use when building targets.
|
||||
#
|
||||
# Note that the OpenWrt build system has an option to strip binaries
|
||||
# (enabled by default), so -s (Omit the symbol table and debug
|
||||
# information) and -w (Omit the DWARF symbol table) flags are not
|
||||
# necessary.
|
||||
#
|
||||
# e.g. GO_PKG_LDFLAGS:=-r dir1:dir2 -u
|
||||
#
|
||||
#
|
||||
# GO_PKG_LDFLAGS_X - list of string variable definitions, default empty
|
||||
#
|
||||
# Each definition will be passed as the parameter to the -X go tool
|
||||
# link option, i.e. -ldflags "-X importpath.name=value".
|
||||
#
|
||||
# e.g. GO_PKG_LDFLAGS_X:=main.Version=$(PKG_VERSION) main.BuildStamp=$(SOURCE_DATE_EPOCH)
|
||||
#
|
||||
#
|
||||
# GO_PKG_TAGS - list of build tags, default empty
|
||||
#
|
||||
# Build tags to consider satisfied during the build, passed as the
|
||||
# parameter to the -tags option for 'go install'.
|
||||
#
|
||||
# e.g. GO_PKG_TAGS:=release,noupgrade
|
||||
#
|
||||
#
|
||||
# GO_PKG_INSTALL_BIN_PATH - target directory path, default /usr/bin
|
||||
#
|
||||
# Directory path under "dest_dir" where binaries will be installed by
|
||||
# '$(call GoPackage/Package/Install/Bin,dest_dir)'.
|
||||
#
|
||||
# e.g. GO_PKG_INSTALL_BIN_PATH:=/sbin
|
||||
|
||||
# Credit for this package build process (GoPackage/Build/Configure and
|
||||
# GoPackage/Build/Compile) belong to Debian's dh-golang completely.
|
||||
# https://salsa.debian.org/go-team/packages/dh-golang
|
||||
|
||||
|
||||
GO_PKG_BUILD_PKG?=$(strip $(GO_PKG))/...
|
||||
GO_PKG_INSTALL_BIN_PATH?=/usr/bin
|
||||
|
||||
GO_PKG_WORK_DIR_NAME:=.go_work
|
||||
GO_PKG_BUILD_DIR=$(PKG_BUILD_DIR)/$(GO_PKG_WORK_DIR_NAME)/build
|
||||
GO_PKG_BUILD_BIN_DIR=$(GO_PKG_BUILD_DIR)/bin$(if $(GO_HOST_TARGET_DIFFERENT),/$(subst /,_,$(GO_OS_ARCH)))
|
||||
|
||||
GO_PKG_BUILD_DEPENDS_PATH:=/usr/share/gocode
|
||||
GO_PKG_BUILD_DEPENDS_SRC=$(STAGING_DIR)$(GO_PKG_BUILD_DEPENDS_PATH)/src
|
||||
|
||||
ifdef CONFIG_PKG_ASLR_PIE_ALL
|
||||
ifeq ($(strip $(PKG_ASLR_PIE)),1)
|
||||
ifeq ($(GO_TARGET_PIE_SUPPORTED),1)
|
||||
GO_PKG_ENABLE_PIE:=1
|
||||
else
|
||||
$(warning PIE buildmode is not supported for $(GO_OS)/$(GO_ARCH))
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef CONFIG_PKG_ASLR_PIE_REGULAR
|
||||
ifeq ($(strip $(PKG_ASLR_PIE_REGULAR)),1)
|
||||
ifeq ($(GO_TARGET_PIE_SUPPORTED),1)
|
||||
GO_PKG_ENABLE_PIE:=1
|
||||
else
|
||||
$(warning PIE buildmode is not supported for $(GO_OS)/$(GO_ARCH))
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef CONFIG_GOLANG_SPECTRE
|
||||
ifeq ($(GO_TARGET_SPECTRE_SUPPORTED),1)
|
||||
GO_PKG_ENABLE_SPECTRE:=1
|
||||
else
|
||||
$(warning Spectre mitigations are not supported for $(GO_ARCH))
|
||||
endif
|
||||
endif
|
||||
|
||||
# sstrip causes corrupted section header size
|
||||
ifneq ($(CONFIG_USE_SSTRIP),)
|
||||
ifneq ($(CONFIG_DEBUG),)
|
||||
GO_PKG_STRIP_ARGS:=--strip-unneeded --remove-section=.comment --remove-section=.note
|
||||
else
|
||||
GO_PKG_STRIP_ARGS:=--strip-all
|
||||
endif
|
||||
STRIP:=$(TARGET_CROSS)strip $(GO_PKG_STRIP_ARGS)
|
||||
endif
|
||||
|
||||
define GoPackage/GoSubMenu
|
||||
SUBMENU:=Go
|
||||
SECTION:=lang
|
||||
CATEGORY:=Languages
|
||||
endef
|
||||
|
||||
# Some packages like docker use go directly and don't process vars like GO, so
|
||||
# just add selected version to path and insert it into several used vars.
|
||||
GO_BIN_PATH:= \
|
||||
PATH=$(STAGING_DIR_HOSTPKG)/lib/go-$(GO_HOST_VERSION)/bin:$(PATH)
|
||||
|
||||
GO_PKG_BUILD_CONFIG_VARS= \
|
||||
$(GO_BIN_PATH) \
|
||||
GO_PKG="$(strip $(GO_PKG))" \
|
||||
GO_INSTALL_EXTRA="$(strip $(GO_PKG_INSTALL_EXTRA))" \
|
||||
GO_INSTALL_ALL="$(strip $(GO_PKG_INSTALL_ALL))" \
|
||||
GO_SOURCE_ONLY="$(strip $(GO_PKG_SOURCE_ONLY))" \
|
||||
GO_BUILD_PKG="$(strip $(GO_PKG_BUILD_PKG))" \
|
||||
GO_EXCLUDES="$(strip $(GO_PKG_EXCLUDES))" \
|
||||
GO_GO_GENERATE="$(strip $(GO_PKG_GO_GENERATE))" \
|
||||
GO_INSTALL_BIN_PATH="$(strip $(GO_PKG_INSTALL_BIN_PATH))" \
|
||||
BUILD_DIR="$(PKG_BUILD_DIR)" \
|
||||
GO_BUILD_DIR="$(GO_PKG_BUILD_DIR)" \
|
||||
GO_BUILD_BIN_DIR="$(GO_PKG_BUILD_BIN_DIR)" \
|
||||
GO_BUILD_DEPENDS_PATH="$(GO_PKG_BUILD_DEPENDS_PATH)" \
|
||||
GO_BUILD_DEPENDS_SRC="$(GO_PKG_BUILD_DEPENDS_SRC)"
|
||||
|
||||
GO_PKG_TARGET_VARS= \
|
||||
GOOS="$(GO_OS)" \
|
||||
GOARCH="$(GO_ARCH)" \
|
||||
GO386="$(GO_386)" \
|
||||
GOAMD64="$(GO_AMD64)" \
|
||||
GOARM="$(GO_ARM)" \
|
||||
GOARM64="$(GO_ARM64)" \
|
||||
GOMIPS="$(GO_MIPS)" \
|
||||
GOMIPS64="$(GO_MIPS64)" \
|
||||
GOPPC64="$(GO_PPC64)" \
|
||||
CGO_ENABLED=1 \
|
||||
CC="$(TARGET_CC)" \
|
||||
CXX="$(TARGET_CXX)" \
|
||||
CGO_CFLAGS="$(filter-out $(GO_CFLAGS_TO_REMOVE),$(TARGET_CFLAGS))" \
|
||||
CGO_CPPFLAGS="$(TARGET_CPPFLAGS)" \
|
||||
CGO_CXXFLAGS="$(filter-out $(GO_CFLAGS_TO_REMOVE),$(TARGET_CXXFLAGS))" \
|
||||
CGO_LDFLAGS="$(TARGET_LDFLAGS)"
|
||||
|
||||
GO_PKG_BUILD_VARS= \
|
||||
GOPATH="$(GO_PKG_BUILD_DIR)" \
|
||||
GOCACHE="$(GO_BUILD_CACHE_DIR)" \
|
||||
GOMODCACHE="$(GO_MOD_CACHE_DIR)" \
|
||||
GOENV=off \
|
||||
GOTOOLCHAIN=local
|
||||
|
||||
GO_PKG_VARS= \
|
||||
$(GO_BIN_PATH) \
|
||||
$(GO_PKG_TARGET_VARS) \
|
||||
$(GO_PKG_BUILD_VARS)
|
||||
|
||||
GO_PKG_DEFAULT_GCFLAGS= \
|
||||
$(if $(GO_PKG_ENABLE_SPECTRE),-spectre all)
|
||||
|
||||
GO_PKG_DEFAULT_ASMFLAGS= \
|
||||
$(if $(GO_PKG_ENABLE_SPECTRE),-spectre all)
|
||||
|
||||
GO_PKG_DEFAULT_LDFLAGS= \
|
||||
-linkmode external \
|
||||
-extldflags '$(patsubst -z%,-Wl$(comma)-z$(comma)%,$(TARGET_LDFLAGS))'
|
||||
|
||||
GO_PKG_CUSTOM_LDFLAGS= \
|
||||
$(GO_PKG_LDFLAGS) \
|
||||
$(patsubst %,-X %,$(GO_PKG_LDFLAGS_X))
|
||||
|
||||
GO_PKG_INSTALL_ARGS= \
|
||||
-v \
|
||||
-buildvcs=false \
|
||||
-trimpath \
|
||||
-ldflags "all=$(GO_PKG_DEFAULT_LDFLAGS)" \
|
||||
$(if $(strip $(GO_PKG_DEFAULT_GCFLAGS)),-gcflags "all=$(GO_PKG_DEFAULT_GCFLAGS)") \
|
||||
$(if $(strip $(GO_PKG_DEFAULT_ASMFLAGS)),-asmflags "all=$(GO_PKG_DEFAULT_ASMFLAGS)") \
|
||||
$(if $(GO_PKG_ENABLE_PIE),-buildmode pie) \
|
||||
$(if $(filter $(GO_ARCH),366),-installsuffix "$(GO_386)") \
|
||||
$(if $(filter $(GO_ARCH),arm),-installsuffix "v$(GO_ARM)") \
|
||||
$(if $(filter $(GO_ARCH),arm64),-installsuffix "$(GO_ARM64)") \
|
||||
$(if $(filter $(GO_ARCH),mips mipsle),-installsuffix "$(GO_MIPS)") \
|
||||
$(if $(filter $(GO_ARCH),mips64 mips64le),-installsuffix "$(GO_MIPS64)") \
|
||||
$(if $(strip $(GO_PKG_GCFLAGS)),-gcflags "$(GO_PKG_GCFLAGS) $(GO_PKG_DEFAULT_GCFLAGS)") \
|
||||
$(if $(strip $(GO_PKG_CUSTOM_LDFLAGS)),-ldflags "$(GO_PKG_CUSTOM_LDFLAGS) $(GO_PKG_DEFAULT_LDFLAGS)") \
|
||||
$(if $(strip $(GO_PKG_TAGS)),-tags "$(GO_PKG_TAGS)")
|
||||
|
||||
define GoPackage/Build/Configure
|
||||
$(GO_GENERAL_BUILD_CONFIG_VARS) \
|
||||
$(GO_PKG_BUILD_CONFIG_VARS) \
|
||||
$(SHELL) $(GO_INCLUDE_DIR)golang-build.sh configure
|
||||
endef
|
||||
|
||||
# 1: additional arguments for go command line (optional)
|
||||
define GoPackage/Build/Compile
|
||||
$(GO_GENERAL_BUILD_CONFIG_VARS) \
|
||||
$(GO_PKG_BUILD_CONFIG_VARS) \
|
||||
$(GO_PKG_VARS) \
|
||||
$(SHELL) $(GO_INCLUDE_DIR)golang-build.sh build $(GO_PKG_INSTALL_ARGS) $(1)
|
||||
endef
|
||||
|
||||
define GoPackage/Build/InstallDev
|
||||
$(call GoPackage/Package/Install/Src,$(1))
|
||||
endef
|
||||
|
||||
define GoPackage/Package/Install/Bin
|
||||
$(GO_GENERAL_BUILD_CONFIG_VARS) \
|
||||
$(GO_PKG_BUILD_CONFIG_VARS) \
|
||||
$(SHELL) $(GO_INCLUDE_DIR)golang-build.sh install_bin "$(1)"
|
||||
endef
|
||||
|
||||
define GoPackage/Package/Install/Src
|
||||
$(GO_GENERAL_BUILD_CONFIG_VARS) \
|
||||
$(GO_PKG_BUILD_CONFIG_VARS) \
|
||||
$(SHELL) $(GO_INCLUDE_DIR)golang-build.sh install_src "$(1)"
|
||||
endef
|
||||
|
||||
define GoPackage/Package/Install
|
||||
$(if $(filter $(GO_PKG_SOURCE_ONLY),1),, \
|
||||
$(call GoPackage/Package/Install/Bin,$(1)) \
|
||||
)
|
||||
$(call GoPackage/Package/Install/Src,$(1))
|
||||
endef
|
||||
|
||||
|
||||
ifneq ($(strip $(GO_PKG)),)
|
||||
ifeq ($(GO_TARGET_SPECTRE_SUPPORTED),1)
|
||||
PKG_CONFIG_DEPENDS+=CONFIG_GOLANG_SPECTRE
|
||||
endif
|
||||
|
||||
Build/Configure=$(call GoPackage/Build/Configure)
|
||||
Build/Compile=$(call GoPackage/Build/Compile)
|
||||
Hooks/Compile/Post+=Go/CacheCleanup
|
||||
Build/InstallDev=$(call GoPackage/Build/InstallDev,$(1))
|
||||
endif
|
||||
|
||||
define GoPackage
|
||||
ifndef Package/$(1)/install
|
||||
Package/$(1)/install=$$(call GoPackage/Package/Install,$$(1))
|
||||
endif
|
||||
endef
|
||||
|
||||
define GoBinPackage
|
||||
ifndef Package/$(1)/install
|
||||
Package/$(1)/install=$$(call GoPackage/Package/Install/Bin,$$(1))
|
||||
endif
|
||||
endef
|
||||
|
||||
define GoSrcPackage
|
||||
ifndef Package/$(1)/install
|
||||
Package/$(1)/install=$$(call GoPackage/Package/Install/Src,$$(1))
|
||||
endif
|
||||
endef
|
||||
356
golang/golang-values.mk
Normal file
356
golang/golang-values.mk
Normal file
@ -0,0 +1,356 @@
|
||||
#
|
||||
# Copyright (C) 2018-2023 Jeffery To
|
||||
# Copyright (C) 2025-2026 George Sapkin
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
ifeq ($(origin GO_INCLUDE_DIR),undefined)
|
||||
GO_INCLUDE_DIR:=$(dir $(lastword $(MAKEFILE_LIST)))
|
||||
endif
|
||||
|
||||
|
||||
# Unset environment variables
|
||||
# There are more magic variables to track down, but ain't nobody got time for that
|
||||
|
||||
# From https://pkg.go.dev/cmd/go#hdr-Environment_variables
|
||||
|
||||
# General-purpose environment variables:
|
||||
unexport \
|
||||
GO111MODULE \
|
||||
GCCGO \
|
||||
GOARCH \
|
||||
GOBIN \
|
||||
GOCACHE \
|
||||
GOMODCACHE \
|
||||
GODEBUG \
|
||||
GOENV \
|
||||
GOFLAGS \
|
||||
GOOS \
|
||||
GOPATH \
|
||||
GOROOT \
|
||||
GOTOOLCHAIN \
|
||||
GOTMPDIR \
|
||||
GOWORK
|
||||
# Unmodified:
|
||||
# GOINSECURE
|
||||
# GOPRIVATE
|
||||
# GOPROXY
|
||||
# GONOPROXY
|
||||
# GOSUMDB
|
||||
# GONOSUMDB
|
||||
# GOVCS
|
||||
|
||||
# Environment variables for use with cgo:
|
||||
unexport \
|
||||
AR \
|
||||
CC \
|
||||
CGO_ENABLED \
|
||||
CGO_CFLAGS CGO_CFLAGS_ALLOW CGO_CFLAGS_DISALLOW \
|
||||
CGO_CPPFLAGS CGO_CPPFLAGS_ALLOW CGO_CPPFLAGS_DISALLOW \
|
||||
CGO_CXXFLAGS CGO_CXXFLAGS_ALLOW CGO_CXXFLAGS_DISALLOW \
|
||||
CGO_FFLAGS CGO_FFLAGS_ALLOW CGO_FFLAGS_DISALLOW \
|
||||
CGO_LDFLAGS CGO_LDFLAGS_ALLOW CGO_LDFLAGS_DISALLOW \
|
||||
CXX \
|
||||
FC
|
||||
# Unmodified:
|
||||
# PKG_CONFIG
|
||||
|
||||
# Architecture-specific environment variables:
|
||||
unexport \
|
||||
GOARM \
|
||||
GOARM64 \
|
||||
GO386 \
|
||||
GOAMD64 \
|
||||
GOMIPS \
|
||||
GOMIPS64 \
|
||||
GOPPC64 \
|
||||
GORISCV64 \
|
||||
GOWASM
|
||||
|
||||
# Environment variables for use with code coverage:
|
||||
unexport \
|
||||
GOCOVERDIR
|
||||
|
||||
# Special-purpose environment variables:
|
||||
unexport \
|
||||
GCCGOTOOLDIR \
|
||||
GOEXPERIMENT \
|
||||
GOROOT_FINAL \
|
||||
GO_EXTLINK_ENABLED
|
||||
# Unmodified:
|
||||
# GIT_ALLOW_PROTOCOL
|
||||
|
||||
# From https://pkg.go.dev/runtime#hdr-Environment_Variables
|
||||
unexport \
|
||||
GOGC \
|
||||
GOMEMLIMIT \
|
||||
GOMAXPROCS \
|
||||
GORACE \
|
||||
GOTRACEBACK
|
||||
|
||||
# From https://pkg.go.dev/cmd/cgo#hdr-Using_cgo_with_the_go_command
|
||||
unexport \
|
||||
CC_FOR_TARGET \
|
||||
CXX_FOR_TARGET
|
||||
# Todo:
|
||||
# CC_FOR_${GOOS}_${GOARCH}
|
||||
# CXX_FOR_${GOOS}_${GOARCH}
|
||||
|
||||
# From https://go.dev/doc/install/source#environment
|
||||
unexport \
|
||||
GOHOSTOS \
|
||||
GOHOSTARCH
|
||||
|
||||
# From https://go.dev/src/make.bash
|
||||
unexport \
|
||||
GO_GCFLAGS \
|
||||
GO_LDFLAGS \
|
||||
GO_LDSO \
|
||||
GO_DISTFLAGS \
|
||||
GOBUILDTIMELOGFILE \
|
||||
GOROOT_BOOTSTRAP
|
||||
|
||||
# From https://go.dev/doc/go1.9#parallel-compile
|
||||
unexport \
|
||||
GO19CONCURRENTCOMPILATION
|
||||
|
||||
# From https://go.dev/src/cmd/dist/build.go
|
||||
unexport \
|
||||
BOOT_GO_GCFLAGS \
|
||||
BOOT_GO_LDFLAGS
|
||||
|
||||
# From https://go.dev/src/cmd/dist/buildtool.go
|
||||
unexport \
|
||||
GOBOOTSTRAP_TOOLEXEC
|
||||
|
||||
|
||||
GO_DEFAULT_VERSION:=1.26
|
||||
GO_HOST_VERSION:=$(patsubst golang%/host,%,$(filter golang%/host,$(PKG_BUILD_DEPENDS)))
|
||||
ifeq ($(GO_HOST_VERSION),)
|
||||
GO_HOST_VERSION:=$(GO_DEFAULT_VERSION)
|
||||
endif
|
||||
|
||||
# GOOS / GOARCH
|
||||
|
||||
go_arch=$(subst \
|
||||
aarch64,arm64,$(subst \
|
||||
i386,386,$(subst \
|
||||
loongarch64,loong64,$(subst \
|
||||
mipsel,mipsle,$(subst \
|
||||
mips64el,mips64le,$(subst \
|
||||
powerpc64,ppc64,$(subst \
|
||||
x86_64,amd64,$(1))))))))
|
||||
|
||||
GO_OS:=linux
|
||||
GO_ARCH:=$(call go_arch,$(ARCH))
|
||||
GO_OS_ARCH:=$(GO_OS)/$(GO_ARCH)
|
||||
|
||||
GO_HOST_OS:=$(call tolower,$(HOST_OS))
|
||||
GO_HOST_ARCH:=$(call go_arch,$(subst \
|
||||
armv6l,arm,$(subst \
|
||||
armv7l,arm,$(subst \
|
||||
i686,i386,$(HOST_ARCH)))))
|
||||
GO_HOST_OS_ARCH:=$(GO_HOST_OS)/$(GO_HOST_ARCH)
|
||||
|
||||
# Filter lists for ARM64 cores
|
||||
# See https://en.wikipedia.org/wiki/ARM_architecture_family#Cores
|
||||
GO_ARM64_V8_0_CORES= \
|
||||
cortex-a34 \
|
||||
cortex-a35 \
|
||||
cortex-a53 \
|
||||
cortex-a57 \
|
||||
cortex-a72 \
|
||||
cortex-a73
|
||||
GO_ARM64_V8_2_CORES= \
|
||||
cortex-a55 \
|
||||
cortex-a65 \
|
||||
cortex-a75 \
|
||||
cortex-a76 \
|
||||
cortex-a77 \
|
||||
cortex-a78 \
|
||||
cortex-x1
|
||||
GO_ARM64_V9_0_CORES= \
|
||||
cortex-a510 \
|
||||
cortex-a710 \
|
||||
cortex-a715 \
|
||||
cortex-x2 \
|
||||
cortex-x3
|
||||
GO_ARM64_V9_2_CORES= \
|
||||
cortex-a520 \
|
||||
cortex-a720 \
|
||||
cortex-x4
|
||||
|
||||
ifeq ($(GO_OS_ARCH),$(GO_HOST_OS_ARCH))
|
||||
GO_HOST_TARGET_SAME:=1
|
||||
else
|
||||
GO_HOST_TARGET_DIFFERENT:=1
|
||||
endif
|
||||
|
||||
ifeq ($(GO_ARCH),386)
|
||||
ifeq ($(CONFIG_TARGET_x86_geode)$(CONFIG_TARGET_x86_legacy),y)
|
||||
GO_386:=softfloat
|
||||
else
|
||||
GO_386:=sse2
|
||||
endif
|
||||
|
||||
# -fno-plt: causes "unexpected GOT reloc for non-dynamic symbol" errors
|
||||
GO_CFLAGS_TO_REMOVE:=-fno-plt
|
||||
|
||||
else ifeq ($(GO_ARCH),amd64)
|
||||
GO_AMD64:=v1
|
||||
|
||||
else ifeq ($(GO_ARCH),arm)
|
||||
GO_TARGET_FPU:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE))))
|
||||
|
||||
# FPU names from https://gcc.gnu.org/onlinedocs/gcc-8.4.0/gcc/ARM-Options.html#index-mfpu-1
|
||||
# see also https://github.com/gcc-mirror/gcc/blob/releases/gcc-8.4.0/gcc/config/arm/arm-cpus.in
|
||||
|
||||
ifeq ($(GO_TARGET_FPU),)
|
||||
GO_ARM:=5
|
||||
else ifneq ($(filter $(GO_TARGET_FPU),vfp vfpv2),)
|
||||
GO_ARM:=6
|
||||
else
|
||||
GO_ARM:=7
|
||||
endif
|
||||
|
||||
else ifeq ($(GO_ARCH),arm64)
|
||||
GO_TARGET_CPU:=$(call qstrip,$(CONFIG_CPU_TYPE))
|
||||
|
||||
ifneq ($(filter $(GO_TARGET_CPU),$(GO_ARM64_V8_0_CORES)),)
|
||||
GO_ARM64:=v8.0
|
||||
else ifneq ($(filter $(GO_TARGET_CPU),$(GO_ARM64_V8_2_CORES)),)
|
||||
GO_ARM64:=v8.2
|
||||
else ifneq ($(filter $(GO_TARGET_CPU),$(GO_ARM64_V9_0_CORES)),)
|
||||
GO_ARM64:=v9.0
|
||||
else ifneq ($(filter $(GO_TARGET_CPU),$(GO_ARM64_V9_2_CORES)),)
|
||||
GO_ARM64:=v9.2
|
||||
else
|
||||
# Unknown CPU, assume baseline
|
||||
GO_ARM64:=v8.0
|
||||
endif
|
||||
|
||||
else ifneq ($(filter $(GO_ARCH),mips mipsle),)
|
||||
ifeq ($(CONFIG_HAS_FPU),y)
|
||||
GO_MIPS:=hardfloat
|
||||
else
|
||||
GO_MIPS:=softfloat
|
||||
endif
|
||||
|
||||
# -mips32r2: conflicts with -march=mips32 set by go
|
||||
GO_CFLAGS_TO_REMOVE:=-mips32r2
|
||||
|
||||
else ifneq ($(filter $(GO_ARCH),mips64 mips64le),)
|
||||
ifeq ($(CONFIG_HAS_FPU),y)
|
||||
GO_MIPS64:=hardfloat
|
||||
else
|
||||
GO_MIPS64:=softfloat
|
||||
endif
|
||||
|
||||
else ifeq ($(GO_ARCH),ppc64)
|
||||
GO_PPC64:=power8
|
||||
|
||||
endif
|
||||
|
||||
GO_GENERATED_FILES := \
|
||||
src/cmd/cgo/zdefaultcc.go \
|
||||
src/cmd/go/internal/cfg/zdefaultcc.go \
|
||||
src/cmd/internal/objabi/zbootstrap.go \
|
||||
src/go/build/zcgo.go \
|
||||
src/internal/buildcfg/zbootstrap.go \
|
||||
src/internal/runtime/sys/zversion.go \
|
||||
src/time/tzdata/zzipdata.go
|
||||
|
||||
GO_LEGAL_FILES := \
|
||||
CONTRIBUTING.md \
|
||||
LICENSE \
|
||||
PATENTS \
|
||||
README.md \
|
||||
SECURITY.md
|
||||
|
||||
GO_BIN_FILES := \
|
||||
$(GO_GENERATED_FILES) \
|
||||
$(GO_LEGAL_FILES)
|
||||
|
||||
GO_HOST_SRC_FILTERS := ! -name '*.bat' -a ! -name '*.rc'
|
||||
GO_TARGET_SRC_FILTERS := ! -ipath '*/testdata/*' -a ! -name '*_test.go' -a ! -name '*.bat' -a ! -name '*.rc'
|
||||
GO_TARGET_TEST_FILTERS := -ipath '*/testdata/*' -o -name '*_test.go'
|
||||
|
||||
|
||||
# Target Go
|
||||
|
||||
GO_ARCH_DEPENDS:=@(aarch64||arm||i386||i686||loongarch64||mips||mips64||mips64el||mipsel||riscv64||x86_64)
|
||||
|
||||
|
||||
# ASLR/PIE
|
||||
|
||||
# From https://go.dev/src/internal/platform/supported.go
|
||||
GO_PIE_SUPPORTED_OS_ARCH:= \
|
||||
aix/ppc64 \
|
||||
android/386 \
|
||||
android/amd64 \
|
||||
android/arm \
|
||||
android/arm64 \
|
||||
darwin/amd64 \
|
||||
darwin/arm64 \
|
||||
freebsd/amd64 \
|
||||
ios/amd64 \
|
||||
ios/arm64 \
|
||||
linux/386 \
|
||||
linux/amd64 \
|
||||
linux/arm \
|
||||
linux/arm64 \
|
||||
linux/loong64 \
|
||||
linux/ppc64le \
|
||||
linux/riscv64 \
|
||||
linux/s390x \
|
||||
openbsd/arm64 \
|
||||
windows/386 \
|
||||
windows/amd64 \
|
||||
windows/arm \
|
||||
windows/arm64
|
||||
|
||||
# From https://go.dev/src/cmd/go/internal/work/init.go
|
||||
go_pie_install_suffix=$(if $(filter $(1),aix/ppc64 windows/386 windows/amd64 windows/arm64),,shared)
|
||||
|
||||
ifneq ($(filter $(GO_HOST_OS_ARCH),$(GO_PIE_SUPPORTED_OS_ARCH)),)
|
||||
GO_HOST_PIE_SUPPORTED:=1
|
||||
GO_HOST_PIE_INSTALL_SUFFIX:=$(call go_pie_install_suffix,$(GO_HOST_OS_ARCH))
|
||||
endif
|
||||
|
||||
ifneq ($(filter $(GO_OS_ARCH),$(GO_PIE_SUPPORTED_OS_ARCH)),)
|
||||
GO_TARGET_PIE_SUPPORTED:=1
|
||||
GO_TARGET_PIE_INSTALL_SUFFIX:=$(call go_pie_install_suffix,$(GO_OS_ARCH))
|
||||
endif
|
||||
|
||||
|
||||
# Spectre mitigations
|
||||
|
||||
GO_SPECTRE_SUPPORTED_ARCH:=amd64
|
||||
|
||||
ifneq ($(filter $(GO_HOST_ARCH),$(GO_SPECTRE_SUPPORTED_ARCH)),)
|
||||
GO_HOST_SPECTRE_SUPPORTED:=1
|
||||
endif
|
||||
|
||||
ifneq ($(filter $(GO_ARCH),$(GO_SPECTRE_SUPPORTED_ARCH)),)
|
||||
GO_TARGET_SPECTRE_SUPPORTED:=1
|
||||
endif
|
||||
|
||||
|
||||
# General build info
|
||||
|
||||
GO_BUILD_CACHE_DIR:=$(or $(call qstrip,$(CONFIG_GOLANG_BUILD_CACHE_DIR)),$(TMP_DIR)/go-build)
|
||||
GO_MOD_CACHE_DIR:=$(DL_DIR)/go-mod-cache
|
||||
|
||||
GO_MOD_ARGS= \
|
||||
-modcacherw
|
||||
|
||||
GO_GENERAL_BUILD_CONFIG_VARS= \
|
||||
CONFIG_GOLANG_MOD_CACHE_WORLD_READABLE="$(CONFIG_GOLANG_MOD_CACHE_WORLD_READABLE)" \
|
||||
GO_BUILD_CACHE_DIR="$(GO_BUILD_CACHE_DIR)" \
|
||||
GO_MOD_CACHE_DIR="$(GO_MOD_CACHE_DIR)" \
|
||||
GO_MOD_ARGS="$(GO_MOD_ARGS)"
|
||||
|
||||
define Go/CacheCleanup
|
||||
$(GO_GENERAL_BUILD_CONFIG_VARS) \
|
||||
$(SHELL) $(GO_INCLUDE_DIR)/golang-build.sh cache_cleanup
|
||||
endef
|
||||
299
golang/golang-version.mk
Normal file
299
golang/golang-version.mk
Normal file
@ -0,0 +1,299 @@
|
||||
#
|
||||
# Copyright (C) 2018-2023 Jeffery To
|
||||
# Copyright (C) 2025-2026 George Sapkin
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
HOST_GO_PREFIX:=$(STAGING_DIR_HOSTPKG)
|
||||
HOST_GO_VERSION_ID:=$(GO_VERSION_MAJOR_MINOR)
|
||||
HOST_GO_ROOT:=$(HOST_GO_PREFIX)/lib/go-$(HOST_GO_VERSION_ID)
|
||||
|
||||
ifeq ($(CONFIG_GOLANG_BUILD_BOOTSTRAP),y)
|
||||
BOOTSTRAP_DIR:=$(HOST_GO_PREFIX)/lib/go-$(GO_BOOTSTRAP_VERSION)
|
||||
else
|
||||
BOOTSTRAP_DIR:=$(call qstrip,$(CONFIG_GOLANG_EXTERNAL_BOOTSTRAP_ROOT))
|
||||
endif
|
||||
|
||||
include ../golang-compiler.mk
|
||||
include ../golang-package.mk
|
||||
include ../golang-values.mk
|
||||
|
||||
PKG_UNPACK:=$(HOST_TAR) -C "$(PKG_BUILD_DIR)" --strip-components=1 -xzf "$(DL_DIR)/$(PKG_SOURCE)"
|
||||
HOST_UNPACK:=$(HOST_TAR) -C "$(HOST_BUILD_DIR)" --strip-components=1 -xzf "$(DL_DIR)/$(PKG_SOURCE)"
|
||||
|
||||
# Don't strip ELF executables in test data
|
||||
RSTRIP:=$(subst $(SCRIPT_DIR)/rstrip.sh,go-strip-helper $(SCRIPT_DIR)/rstrip.sh,$(RSTRIP))
|
||||
|
||||
ifeq ($(GO_TARGET_SPECTRE_SUPPORTED),1)
|
||||
PKG_CONFIG_DEPENDS+=CONFIG_GOLANG_SPECTRE
|
||||
endif
|
||||
|
||||
define Package/$(PKG_NAME)/Default
|
||||
$(call GoPackage/GoSubMenu)
|
||||
TITLE:=Go programming language
|
||||
URL:=https://go.dev/
|
||||
DEPENDS:=$(GO_ARCH_DEPENDS)
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/Default/description
|
||||
The Go programming language is an open source project to make programmers more
|
||||
productive.
|
||||
|
||||
Go is expressive, concise, clean, and efficient. Its concurrency mechanisms
|
||||
make it easy to write programs that get the most out of multi-core and
|
||||
networked machines, while its novel type system enables flexible and modular
|
||||
program construction. Go compiles quickly to machine code yet has the
|
||||
convenience of garbage collection and the power of run-time reflection. It's
|
||||
a fast, statically typed, compiled language that feels like a dynamically
|
||||
typed, interpreted language.
|
||||
endef
|
||||
|
||||
ifeq ($(GO_DEFAULT_VERSION),$(GO_VERSION_MAJOR_MINOR))
|
||||
ALT_PRIORITY:=500
|
||||
else
|
||||
ALT_PRIORITY:=100
|
||||
endif
|
||||
|
||||
# go tool requires source present:
|
||||
# https://github.com/golang/go/issues/4635
|
||||
define Package/$(PKG_NAME)
|
||||
$(call Package/$(PKG_NAME)/Default)
|
||||
TITLE+= (compiler)
|
||||
DEPENDS+= +golang$(GO_VERSION_MAJOR_MINOR)-src
|
||||
EXTRA_DEPENDS:=golang$(GO_VERSION_MAJOR_MINOR)-src (=$(PKG_VERSION)-r$(PKG_RELEASE))
|
||||
MDEPENDS:=+golang-bootstrap
|
||||
PROVIDES:=@golang
|
||||
$(if $(filter $(GO_DEFAULT_VERSION),$(GO_VERSION_MAJOR_MINOR)),DEFAULT_VARIANT:=1)
|
||||
ALTERNATIVES:=\
|
||||
$(ALT_PRIORITY):/usr/bin/go:/usr/lib/go-$(GO_VERSION_MAJOR_MINOR)/bin/go \
|
||||
$(ALT_PRIORITY):/usr/bin/gofmt:/usr/lib/go-$(GO_VERSION_MAJOR_MINOR)/bin/gofmt
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/description
|
||||
$(call Package/$(PKG_NAME)/Default/description)
|
||||
|
||||
This package provides an assembler, compiler, linker, and compiled libraries
|
||||
for the Go programming language.
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)-doc
|
||||
$(call Package/$(PKG_NAME)/Default)
|
||||
TITLE+= (documentation)
|
||||
PKGARCH:=all
|
||||
PROVIDES:=@golang-doc
|
||||
$(if $(filter $(GO_DEFAULT_VERSION),$(GO_VERSION_MAJOR_MINOR)),DEFAULT_VARIANT:=1)
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)-doc/description
|
||||
$(call Package/$(PKG_NAME)/Default/description)
|
||||
|
||||
This package provides the documentation for the Go programming language.
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)-misc
|
||||
$(call Package/$(PKG_NAME)/Default)
|
||||
TITLE+= (misc source files)
|
||||
PKGARCH:=all
|
||||
PROVIDES:=@golang-misc
|
||||
$(if $(filter $(GO_DEFAULT_VERSION),$(GO_VERSION_MAJOR_MINOR)),DEFAULT_VARIANT:=1)
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)-misc/description
|
||||
$(call Package/$(PKG_NAME)/Default/description)
|
||||
|
||||
This package provides the Go compiler miscellaneous sources.
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)-src
|
||||
$(call Package/$(PKG_NAME)/Default)
|
||||
TITLE+= (source files)
|
||||
PKGARCH:=all
|
||||
PROVIDES:=@golang-src
|
||||
$(if $(filter $(GO_DEFAULT_VERSION),$(GO_VERSION_MAJOR_MINOR)),DEFAULT_VARIANT:=1)
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)-src/description
|
||||
$(call Package/$(PKG_NAME)/Default/description)
|
||||
|
||||
This package provides the Go programming language source files needed for
|
||||
cross-compilation.
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)-tests
|
||||
$(call Package/$(PKG_NAME)/Default)
|
||||
TITLE+= (compiler tests)
|
||||
DEPENDS+= +golang$(GO_VERSION_MAJOR_MINOR)-src
|
||||
EXTRA_DEPENDS:=golang$(GO_VERSION_MAJOR_MINOR)-src (=$(PKG_VERSION)-r$(PKG_RELEASE))
|
||||
PKGARCH:=all
|
||||
PROVIDES:=@golang-tests
|
||||
$(if $(filter $(GO_DEFAULT_VERSION),$(GO_VERSION_MAJOR_MINOR)),DEFAULT_VARIANT:=1)
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)-tests/description
|
||||
$(call Package/$(PKG_NAME)/Default/description)
|
||||
|
||||
This package provides the Go compiler tests for stdlib.
|
||||
endef
|
||||
|
||||
|
||||
# Host
|
||||
|
||||
ifeq ($(GO_HOST_PIE_SUPPORTED),1)
|
||||
HOST_GO_ENABLE_PIE:=1
|
||||
endif
|
||||
|
||||
# When using GO_LDFLAGS to set buildmode=pie, the PIE install suffix does not
|
||||
# apply (we also delete the std lib during Host/Install)
|
||||
|
||||
$(eval $(call GoCompiler/AddProfile,$(HOST_GO_PROFILE_ID),$(HOST_BUILD_DIR),$(HOST_GO_PREFIX),$(HOST_GO_VERSION_ID),$(GO_HOST_OS_ARCH)))
|
||||
|
||||
HOST_GO_VARS?= \
|
||||
GOHOSTARCH="$(GO_HOST_ARCH)" \
|
||||
GOCACHE="$(GO_BUILD_CACHE_DIR)" \
|
||||
GOENV=off \
|
||||
CC="$(HOSTCC_NOCACHE)" \
|
||||
CXX="$(HOSTCXX_NOCACHE)"
|
||||
|
||||
define Host/Configure
|
||||
$(call GoCompiler/$(HOST_GO_PROFILE_ID)/CheckHost,$(HOST_GO_VALID_OS_ARCH))
|
||||
|
||||
mkdir -p "$(GO_BUILD_CACHE_DIR)"
|
||||
endef
|
||||
|
||||
define Host/Compile
|
||||
$(call GoCompiler/$(HOST_GO_PROFILE_ID)/Make, \
|
||||
GOROOT_BOOTSTRAP="$(BOOTSTRAP_DIR)" \
|
||||
$(if $(HOST_GO_ENABLE_PIE),GO_LDFLAGS="-buildmode pie") \
|
||||
$(HOST_GO_VARS) \
|
||||
)
|
||||
endef
|
||||
|
||||
# If host and target OS/arch are the same, when go compiles a program, it will
|
||||
# use the host std lib, so remove it now and force go to rebuild std for target
|
||||
# later
|
||||
define Host/Install
|
||||
$(call Host/Uninstall)
|
||||
|
||||
$(call GoCompiler/$(HOST_GO_PROFILE_ID)/Install/Bin)
|
||||
$(call GoCompiler/$(HOST_GO_PROFILE_ID)/Install/Src)
|
||||
$(call GoCompiler/$(HOST_GO_PROFILE_ID)/Install/BinLinks)
|
||||
|
||||
rm -rf "$(HOST_GO_ROOT)/pkg/$(GO_HOST_OS_ARCH)"
|
||||
|
||||
$(INSTALL_DIR) "$(HOST_GO_ROOT)/openwrt"
|
||||
$(INSTALL_BIN) ../go-gcc-helper "$(HOST_GO_ROOT)/openwrt"
|
||||
$(LN) go-gcc-helper "$(HOST_GO_ROOT)/openwrt/gcc"
|
||||
$(LN) go-gcc-helper "$(HOST_GO_ROOT)/openwrt/g++"
|
||||
endef
|
||||
|
||||
define Host/Uninstall
|
||||
rm -rf "$(HOST_GO_ROOT)/openwrt"
|
||||
|
||||
$(call GoCompiler/$(HOST_GO_PROFILE_ID)/Uninstall/BinLinks)
|
||||
$(call GoCompiler/$(HOST_GO_PROFILE_ID)/Uninstall)
|
||||
endef
|
||||
|
||||
|
||||
# Target
|
||||
|
||||
ifeq ($(GO_PKG_ENABLE_PIE),1)
|
||||
PKG_GO_INSTALL_SUFFIX:=$(GO_TARGET_PIE_INSTALL_SUFFIX)
|
||||
endif
|
||||
|
||||
$(eval $(call GoCompiler/AddProfile,Package,$(PKG_BUILD_DIR),$(PKG_GO_PREFIX),$(PKG_GO_VERSION_ID),$(GO_OS_ARCH),$(PKG_GO_INSTALL_SUFFIX)))
|
||||
|
||||
PKG_GO_ZBOOTSTRAP_MODS?= \
|
||||
s/DefaultGO386 = `[^`]*`/DefaultGO386 = `$(or $(GO_386),sse2)`/; \
|
||||
s/DefaultGOAMD64 = `[^`]*`/DefaultGOAMD64 = `$(or $(GO_AMD64),v1)`/; \
|
||||
s/DefaultGOARM = `[^`]*`/DefaultGOARM = `$(or $(GO_ARM),7)`/; \
|
||||
s/DefaultGOARM64 = `[^`]*`/DefaultGOARM64 = `$(or $(GO_ARM64),v8.0)`/; \
|
||||
s/DefaultGOMIPS = `[^`]*`/DefaultGOMIPS = `$(or $(GO_MIPS),hardfloat)`/; \
|
||||
s/DefaultGOMIPS64 = `[^`]*`/DefaultGOMIPS64 = `$(or $(GO_MIPS64),hardfloat)`/; \
|
||||
s/DefaultGOPPC64 = `[^`]*`/DefaultGOPPC64 = `$(or $(GO_PPC64),power8)`/;
|
||||
|
||||
PKG_GO_ZBOOTSTRAP_PATH:=$(PKG_BUILD_DIR)/src/internal/buildcfg/zbootstrap.go
|
||||
|
||||
PKG_GO_VARS?= \
|
||||
GOHOSTARCH="$(GO_HOST_ARCH)" \
|
||||
GOCACHE="$(GO_BUILD_CACHE_DIR)" \
|
||||
GOENV=off \
|
||||
GO_GCC_HELPER_PATH="$$$$PATH" \
|
||||
CC=gcc \
|
||||
CXX=g++ \
|
||||
PKG_CONFIG=pkg-config \
|
||||
PATH="$(HOST_GO_ROOT)/openwrt:$$$$PATH"
|
||||
|
||||
PKG_GO_GCFLAGS?= \
|
||||
$(if $(GO_PKG_ENABLE_SPECTRE),-spectre all)
|
||||
|
||||
PKG_GO_ASMFLAGS?= \
|
||||
$(if $(GO_PKG_ENABLE_SPECTRE),-spectre all)
|
||||
|
||||
PKG_GO_LDFLAGS?= \
|
||||
-linkmode external \
|
||||
-extldflags '$(patsubst -z%,-Wl$(comma)-z$(comma)%,$(TARGET_LDFLAGS))' \
|
||||
$(if $(CONFIG_NO_STRIP)$(CONFIG_DEBUG),,-s -w)
|
||||
|
||||
PKG_GO_INSTALL_ARGS?= \
|
||||
-buildvcs=false \
|
||||
-trimpath \
|
||||
-ldflags "all=$(PKG_GO_LDFLAGS)" \
|
||||
$(if $(PKG_GO_GCFLAGS),-gcflags "all=$(PKG_GO_GCFLAGS)") \
|
||||
$(if $(PKG_GO_ASMFLAGS),-asmflags "all=$(PKG_GO_ASMFLAGS)") \
|
||||
$(if $(filter $(GO_PKG_ENABLE_PIE),1),-buildmode pie)
|
||||
|
||||
define Build/Configure
|
||||
mkdir -p "$(GO_BUILD_CACHE_DIR)"
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
@echo "Building target Go first stage"
|
||||
|
||||
$(call GoCompiler/Package/Make, \
|
||||
GOROOT_BOOTSTRAP="$(HOST_GO_ROOT)" \
|
||||
GO_GCC_HELPER_CC="$(HOSTCC)" \
|
||||
GO_GCC_HELPER_CXX="$(HOSTCXX)" \
|
||||
$(PKG_GO_VARS) \
|
||||
)
|
||||
|
||||
$(SED) '$(PKG_GO_ZBOOTSTRAP_MODS)' "$(PKG_GO_ZBOOTSTRAP_PATH)"
|
||||
|
||||
@echo "Building target Go second stage"
|
||||
|
||||
cd "$(PKG_BUILD_DIR)/bin" ; \
|
||||
export $(GO_PKG_TARGET_VARS) ; \
|
||||
$(CP) go go-host ; \
|
||||
GO_GCC_HELPER_CC="$(TARGET_CC)" \
|
||||
GO_GCC_HELPER_CXX="$(TARGET_CXX)" \
|
||||
$(PKG_GO_VARS) \
|
||||
./go-host install -a $(PKG_GO_INSTALL_ARGS) std cmd; \
|
||||
retval=$$$$? ; \
|
||||
rm -f go-host ; \
|
||||
exit $$$$retval
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/install
|
||||
$(call GoCompiler/Package/Install/Bin,$(1)$(PKG_GO_PREFIX),target)
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)-doc/install
|
||||
$(call GoCompiler/Package/Install/Doc,$(1)$(PKG_GO_PREFIX))
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)-misc/install
|
||||
$(call GoCompiler/Package/Install/Misc,$(1)$(PKG_GO_PREFIX))
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)-src/install
|
||||
$(call GoCompiler/Package/Install/Src,$(1)$(PKG_GO_PREFIX),target)
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)-tests/install
|
||||
$(call GoCompiler/Package/Install/Tests,$(1)$(PKG_GO_PREFIX))
|
||||
endef
|
||||
|
||||
# src/debug contains ELF executables as test data and they reference these
|
||||
# libraries we need to call this to pass CheckDependencies in package-pack.mk
|
||||
define Package/$(PKG_NAME)-tests/extra_provides
|
||||
echo 'libc.so.6' libstdc++.so.6' libtiff.so.6' | tr ' ' '\n'
|
||||
endef
|
||||
34
golang/golang/Makefile
Normal file
34
golang/golang/Makefile
Normal file
@ -0,0 +1,34 @@
|
||||
# This is a dummy go package that allows packages to use default go version by
|
||||
# setting PKG_BUILD_DEPENDS:=golang/host, instead of specifying a concrete
|
||||
# version, e.g. PKG_BUILD_DEPENDS:=golang1.25/host
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
include ../golang-values.mk
|
||||
|
||||
PKG_NAME:=golang
|
||||
PKG_VERSION:=$(GO_DEFAULT_VERSION)
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_MAINTAINER:=George Sapkin <george@sapk.in>
|
||||
|
||||
HOST_BUILD_DEPENDS:=golang$(PKG_VERSION)/host
|
||||
PKG_HOST_ONLY:=1
|
||||
|
||||
include $(INCLUDE_DIR)/host-build.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/golang
|
||||
TITLE:=Go programming language (dummy package)
|
||||
BUILDONLY:=1
|
||||
endef
|
||||
|
||||
define Host/Compile
|
||||
endef
|
||||
|
||||
define Host/Install
|
||||
endef
|
||||
|
||||
$(eval $(call HostBuild))
|
||||
$(eval $(call BuildPackage,golang))
|
||||
104
golang/golang1.26/Makefile
Normal file
104
golang/golang1.26/Makefile
Normal file
@ -0,0 +1,104 @@
|
||||
#
|
||||
# Copyright (C) 2018-2023 Jeffery To
|
||||
# Copyright (C) 2025-2026 George Sapkin
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=golang1.26
|
||||
GO_VERSION_MAJOR_MINOR:=1.26
|
||||
GO_VERSION_PATCH:=4
|
||||
GO_VERSION_RC:=
|
||||
GO_BOOTSTRAP_VERSION:=bootstrap
|
||||
PKG_HASH:=4f668a32fbfc1132e6a881fb968c2f1dada631492a339211735fbb255a42602d
|
||||
|
||||
PKG_VERSION:=$(GO_VERSION_MAJOR_MINOR)$(if $(GO_VERSION_RC),.0)$(if $(GO_VERSION_PATCH),.$(GO_VERSION_PATCH))
|
||||
PKG_FILE_VERSION:=$(GO_VERSION_MAJOR_MINOR)$(if $(GO_VERSION_RC),rc$(GO_VERSION_RC))$(if $(GO_VERSION_PATCH),.$(GO_VERSION_PATCH))
|
||||
PKG_RELEASE:=1
|
||||
|
||||
GO_SOURCE_URLS:=https://go.dev/dl/ \
|
||||
https://golang.google.cn/dl/ \
|
||||
https://mirrors.nju.edu.cn/golang/ \
|
||||
https://mirrors.ustc.edu.cn/golang/
|
||||
|
||||
PKG_SOURCE:=go$(PKG_FILE_VERSION).src.tar.gz
|
||||
PKG_SOURCE_URL:=$(GO_SOURCE_URLS)
|
||||
|
||||
PKG_MAINTAINER:=George Sapkin <george@sapk.in>
|
||||
PKG_LICENSE:=BSD-3-Clause
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
PKG_CPE_ID:=cpe:/a:golang:go
|
||||
|
||||
PKG_BUILD_DEPENDS:=$(PKG_NAME)/host
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/go-$(PKG_VERSION)
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_BUILD_FLAGS:=no-mips16
|
||||
|
||||
PKG_GO_PREFIX:=/usr
|
||||
PKG_GO_VERSION_ID:=$(GO_VERSION_MAJOR_MINOR)
|
||||
|
||||
HOST_BUILD_DEPENDS:=golang$(if $(filter bootstrap,$(GO_BOOTSTRAP_VERSION)),-)$(GO_BOOTSTRAP_VERSION)/host
|
||||
HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/go-$(PKG_VERSION)
|
||||
HOST_BUILD_PARALLEL:=1
|
||||
|
||||
# From go tool dist list
|
||||
HOST_GO_VALID_OS_ARCH:= \
|
||||
aix/ppc64 \
|
||||
android/386 \
|
||||
android/amd64 \
|
||||
android/arm \
|
||||
android/arm64 \
|
||||
darwin/amd64 \
|
||||
darwin/arm64 \
|
||||
dragonfly/amd64 \
|
||||
freebsd/386 \
|
||||
freebsd/amd64 \
|
||||
freebsd/arm \
|
||||
freebsd/arm64 \
|
||||
illumos/amd64 \
|
||||
ios/amd64 \
|
||||
ios/arm64 \
|
||||
js/wasm \
|
||||
linux/386 \
|
||||
linux/amd64 \
|
||||
linux/arm \
|
||||
linux/arm64 \
|
||||
linux/loong64 \
|
||||
linux/mips \
|
||||
linux/mips64 \
|
||||
linux/mips64le \
|
||||
linux/mipsle \
|
||||
linux/ppc64 \
|
||||
linux/ppc64le \
|
||||
linux/riscv64 \
|
||||
linux/s390x \
|
||||
netbsd/386 \
|
||||
netbsd/amd64 \
|
||||
netbsd/arm \
|
||||
netbsd/arm64 \
|
||||
openbsd/386 \
|
||||
openbsd/amd64 \
|
||||
openbsd/arm \
|
||||
openbsd/arm64 \
|
||||
openbsd/ppc64 \
|
||||
openbsd/riscv64 \
|
||||
plan9/386 \
|
||||
plan9/amd64 \
|
||||
plan9/arm \
|
||||
solaris/amd64 \
|
||||
wasip1/wasm \
|
||||
windows/386 \
|
||||
windows/amd64 \
|
||||
windows/arm64
|
||||
|
||||
include $(INCLUDE_DIR)/host-build.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include ../golang-version.mk
|
||||
|
||||
$(eval $(call HostBuild))
|
||||
$(eval $(call BuildPackage,$(PKG_NAME)))
|
||||
$(eval $(call BuildPackage,$(PKG_NAME)-doc))
|
||||
$(eval $(call BuildPackage,$(PKG_NAME)-misc))
|
||||
$(eval $(call BuildPackage,$(PKG_NAME)-src))
|
||||
$(eval $(call BuildPackage,$(PKG_NAME)-tests))
|
||||
23
golang/golang1.26/test-version.sh
Executable file
23
golang/golang1.26/test-version.sh
Executable file
@ -0,0 +1,23 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
# shellcheck shell=busybox
|
||||
|
||||
case "$PKG_NAME" in
|
||||
golang?.??-doc|\
|
||||
golang?.??-misc|\
|
||||
golang?.??-src|\
|
||||
golang?.??-tests)
|
||||
exit 0
|
||||
;;
|
||||
|
||||
golang?.??)
|
||||
go version | grep -F " go$PKG_VERSION "
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Untested package: $PKG_NAME" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
21
golang/golang1.26/test.sh
Executable file
21
golang/golang1.26/test.sh
Executable file
@ -0,0 +1,21 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
case "$1" in
|
||||
golang*doc|golang*misc|golang*src|golang*tests) exit ;;
|
||||
esac
|
||||
|
||||
cat <<'EOF' > hello.go
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
fmt.Println("Hello, World!")
|
||||
}
|
||||
|
||||
EOF
|
||||
|
||||
go run hello.go
|
||||
rm hello.go
|
||||
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=gost
|
||||
PKG_VERSION:=3.2.6
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/go-gost/gost/tar.gz/v$(PKG_VERSION)?
|
||||
@ -25,7 +25,7 @@ GO_PKG_BUILD_PKG:=$(GO_PKG)/cmd/gost
|
||||
GO_PKG_LDFLAGS_X:=main.version=$(PKG_VERSION)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/gost
|
||||
SECTION:=net
|
||||
|
||||
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=gotop
|
||||
PKG_VERSION:=4.2.0
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/xxxserxxx/gotop/tar.gz/v$(PKG_VERSION)?
|
||||
@ -24,7 +24,7 @@ GO_PKG:=github.com/xxxserxxx/gotop
|
||||
GO_PKG_LDFLAGS_X:=main.Version=$(PKG_VERSION)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/gotop
|
||||
SECTION:=admin
|
||||
|
||||
@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=gowebdav
|
||||
PKG_VERSION:=5.11.10
|
||||
PKG_RELEASE:=10
|
||||
PKG_RELEASE:=11
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/hacdias/webdav/tar.gz/v$(PKG_VERSION)?
|
||||
@ -26,7 +26,7 @@ GO_PKG:=github.com/hacdias/webdav
|
||||
GO_PKG_LDFLAGS:=-s -w
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/gowebdav
|
||||
SECTION:=net
|
||||
|
||||
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=grpcurl
|
||||
PKG_VERSION:=1.9.3
|
||||
PKG_RELEASE:=3
|
||||
PKG_RELEASE:=4
|
||||
|
||||
PKG_SOURCE:=v$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://github.com/fullstorydev/grpcurl/archive/refs/tags/
|
||||
@ -32,7 +32,7 @@ GO_PKG_LDFLAGS:=-s -w
|
||||
GO_PKG_TAGS:=master
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/grpcurl
|
||||
TITLE:=grpcurl is a command-line tool that lets you interact with gRPC servers
|
||||
|
||||
@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=headscale
|
||||
PKG_VERSION:=0.28.0
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/juanfont/headscale/tar.gz/v$(PKG_VERSION)?
|
||||
@ -27,7 +27,7 @@ GO_PKG_LDFLAGS+= \
|
||||
-X '$(GO_PKG_BUILD_PKG)/cli.Version=v$(PKG_VERSION)'
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/headscale
|
||||
SECTION:=net
|
||||
|
||||
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=hysteria
|
||||
PKG_VERSION:=2.9.2
|
||||
PKG_RELEASE:=7
|
||||
PKG_RELEASE:=8
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)?
|
||||
@ -31,7 +31,7 @@ GO_PKG_LDFLAGS_X = \
|
||||
$(GO_PKG)/app/v2/cmd.appArch=$(GO_ARCH)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/hysteria
|
||||
SECTION:=net
|
||||
|
||||
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=lux
|
||||
PKG_VERSION:=0.24.1
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/iawia002/lux/tar.gz/v$(PKG_VERSION)?
|
||||
@ -25,7 +25,7 @@ GO_PKG_BUILD_PKG:=$$(GO_PKG)
|
||||
GO_PKG_LDFLAGS:=-s -w
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/lux
|
||||
SECTION:=multimedia
|
||||
|
||||
@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=mihomo-alpha
|
||||
PKG_VERSION:=2026.06.12
|
||||
PKG_RELEASE:=13
|
||||
PKG_RELEASE:=14
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||
@ -29,7 +29,7 @@ GO_PKG_TAGS:=with_gvisor
|
||||
GO_PKG_INSTALL_BIN_PATH:=/usr/libexec
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/mihomo-alpha
|
||||
SECTION:=net
|
||||
|
||||
@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=mihomo-meta
|
||||
PKG_VERSION:=1.19.27
|
||||
PKG_RELEASE:=8
|
||||
PKG_RELEASE:=9
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||
@ -29,7 +29,7 @@ GO_PKG_TAGS:=with_gvisor
|
||||
GO_PKG_INSTALL_BIN_PATH:=/usr/libexec
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/mihomo-meta
|
||||
SECTION:=net
|
||||
|
||||
@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=mihomo
|
||||
PKG_VERSION:=1.19.27
|
||||
PKG_RELEASE:=25
|
||||
PKG_RELEASE:=26
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/MetaCubeX/mihomo.git
|
||||
@ -27,7 +27,7 @@ GO_PKG_TAGS:=with_gvisor
|
||||
GO_PKG_INSTALL_BIN_PATH:=/usr/libexec
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/mihomo
|
||||
SECTION:=net
|
||||
|
||||
@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=mnh
|
||||
PKG_VERSION:=0.7.3
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/hzyitc/mnh/tar.gz/v${PKG_VERSION}?
|
||||
@ -19,7 +19,7 @@ PKG_USE_MIPS16:=0
|
||||
GO_PKG:=github.com/hzyitc/mnh
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/mnh
|
||||
SECTION:=net
|
||||
|
||||
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=mosdns
|
||||
PKG_VERSION:=5.3.4
|
||||
PKG_RELEASE:=9
|
||||
PKG_RELEASE:=10
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/IrineSistiana/mosdns/tar.gz/v$(PKG_VERSION)?
|
||||
@ -24,7 +24,7 @@ GO_PKG:=github.com/IrineSistiana/mosdns
|
||||
GO_PKG_LDFLAGS_X:=main.version=v$(PKG_VERSION)-$(PKG_RELEASE)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/mosdns
|
||||
SECTION:=net
|
||||
|
||||
@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=nexttrace
|
||||
PKG_VERSION:=1.6.2
|
||||
PKG_RELEASE:=8
|
||||
PKG_RELEASE:=9
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/nxtrace/NTrace-core/tar.gz/v$(PKG_VERSION)?
|
||||
@ -22,7 +22,7 @@ GO_PKG_LDFLAGS:=-checklinkname=0
|
||||
GO_PKG_LDFLAGS_X:=$(GO_PKG)/config.Version=v$(PKG_VERSION)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/nexttrace
|
||||
SECTION:=net
|
||||
|
||||
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=nps
|
||||
PKG_VERSION:=0.26.34
|
||||
PKG_RELEASE:=6
|
||||
PKG_RELEASE:=7
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/yisier/nps/tar.gz/v$(PKG_VERSION)?
|
||||
@ -24,7 +24,7 @@ GO_PKG:=ehang.io/nps
|
||||
GO_PKG_BUILD_PKG:=$(GO_PKG)/cmd/...
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define nps/templates
|
||||
define Package/$(1)
|
||||
|
||||
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=ooniprobe
|
||||
PKG_VERSION:=3.29.1
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE:=probe-cli-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/ooni/probe-cli/tar.gz/v$(PKG_VERSION)?
|
||||
@ -27,7 +27,7 @@ PKG_USE_MIPS16:=0
|
||||
GO_PKG:=github.com/ooni/probe-cli
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/ooniprobe
|
||||
SECTION:=net
|
||||
|
||||
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
PKG_NAME:=openlist2
|
||||
PKG_VERSION:=4.2.2
|
||||
PKG_WEB_VERSION:=4.2.2
|
||||
PKG_RELEASE:=4
|
||||
PKG_RELEASE:=5
|
||||
|
||||
PKG_SOURCE:=openlist-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/OpenListTeam/OpenList/tar.gz/v$(PKG_VERSION)?
|
||||
@ -45,7 +45,7 @@ ifneq ($(CONFIG_ARCH_64BIT),y)
|
||||
endif
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/openlist2
|
||||
SECTION:=net
|
||||
|
||||
@ -8,7 +8,7 @@ PKG_NAME:=alwaysonline
|
||||
PKG_UPSTREAM_VERSION:=1.2.1
|
||||
PKG_UPSTREAM_GITHASH:=206292ca68e4d6c81b215163a7bbd0cd2eb36860
|
||||
PKG_VERSION:=$(PKG_UPSTREAM_VERSION)~$(call version_abbrev,$(PKG_UPSTREAM_GITHASH))
|
||||
PKG_RELEASE:=3
|
||||
PKG_RELEASE:=4
|
||||
UCI_VERSION:=0.2025.01.25
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
@ -41,7 +41,7 @@ GO_PKG_LDFLAGS_X:=\
|
||||
main.versionGitStatus=clean
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/$(PKG_NAME)
|
||||
SECTION:=net
|
||||
|
||||
@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=caddy
|
||||
PKG_VERSION:=2.11.4
|
||||
PKG_RELEASE:=3
|
||||
PKG_RELEASE:=4
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/caddyserver/caddy.git
|
||||
@ -29,7 +29,7 @@ GO_PKG_LDFLAGS:=-s -w
|
||||
GO_PKG_LDFLAGS_X:=github.com/caddyserver/caddy/v2.CustomVersion=v$(PKG_VERSION)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/$(PKG_NAME)
|
||||
TITLE:=Caddy is an open source web server
|
||||
|
||||
@ -8,7 +8,7 @@ PKG_NAME:=go-stun
|
||||
PKG_UPSTREAM_VERSION:=0.1.4
|
||||
PKG_UPSTREAM_GITHASH:=d32c135f5e509d278e95ba9945849903f966a91f
|
||||
PKG_VERSION:=$(PKG_UPSTREAM_VERSION)~$(call version_abbrev,$(PKG_UPSTREAM_GITHASH))
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/ccding/go-stun.git
|
||||
@ -32,7 +32,7 @@ PKG_BUILD_FLAGS:=no-mips16
|
||||
GO_PKG:=github.com/ccding/go-stun
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/$(PKG_NAME)
|
||||
SECTION:=net
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=pcat-mgr
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://gitlab.com/CoiaPrant/pcat-mgr.git
|
||||
@ -25,7 +25,7 @@ PKG_BUILD_FLAGS:=no-mips16
|
||||
GO_PKG:=pcat-mgr
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/pcat-mgr
|
||||
SECTION:=utils
|
||||
|
||||
@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=q
|
||||
PKG_VERSION:=0.19.12
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/natesales/q/tar.gz/v$(PKG_VERSION)?
|
||||
@ -20,7 +20,7 @@ GO_PKG:=github.com/natesales/q
|
||||
GO_PKG_LDFLAGS_X:= main.version=$(PKG_VERSION)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/q
|
||||
SECTION:=net
|
||||
|
||||
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=sing-box
|
||||
PKG_VERSION:=1.13.13
|
||||
PKG_RELEASE:=17
|
||||
PKG_RELEASE:=18
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/SagerNet/sing-box/tar.gz/v$(PKG_VERSION)?
|
||||
@ -38,7 +38,7 @@ GO_PKG_BUILD_PKG:=$(GO_PKG)/cmd/sing-box
|
||||
GO_PKG_LDFLAGS_X:=$(GO_PKG)/constant.Version=$(PKG_VERSION)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/sing-box
|
||||
SECTION:=net
|
||||
|
||||
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=speedtest-web
|
||||
PKG_VERSION:=1.1.5
|
||||
PKG_RELEASE:=3
|
||||
PKG_RELEASE:=4
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/ZeaKyX/speedtest-go.git
|
||||
@ -29,7 +29,7 @@ GO_PKG_LDFLAGS:=-s -w
|
||||
GO_PKG_LDFLAGS_X:=main.VersionString=v$(PKG_VERSION)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/speedtest-web/config
|
||||
config SPEEDTEST_WEB_COMPRESS_GOPROXY
|
||||
|
||||
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=tor-fw-helper
|
||||
PKG_VERSION:=0.3
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://git.torproject.org/tor-fw-helper.git
|
||||
@ -28,7 +28,7 @@ PKG_USE_MIPS16:=0
|
||||
GO_PKG:=git.torproject.org/tor-fw-helper.git
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/tor-fw-helper/Default
|
||||
TITLE:=Firewall helper for tor
|
||||
|
||||
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=transfer
|
||||
PKG_VERSION:=0.4.17
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/Mikubill/transfer/tar.gz/v$(PKG_VERSION)?
|
||||
@ -23,7 +23,7 @@ PKG_BUILD_FLAGS:=no-mips16
|
||||
GO_PKG:=github.com/Mikubill/transfer
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/transfer
|
||||
SECTION:=net
|
||||
|
||||
@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=tun2socks
|
||||
PKG_VERSION:=2.6.0
|
||||
PKG_RELEASE:=4
|
||||
PKG_RELEASE:=5
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/xjasonlyu/tun2socks.git
|
||||
@ -19,7 +19,7 @@ PKG_BUILD_FLAGS:=no-mips16
|
||||
GO_PKG=github.com/xjasonlyu/tun2socks
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
# --- UPX support ---
|
||||
UPX:=$(STAGING_DIR_HOST)/bin/upx
|
||||
|
||||
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
PKG_NAME:=v2dat
|
||||
PKG_SOURCE_DATE:=2022-12-15
|
||||
PKG_SOURCE_VERSION:=47b8ee51fb528e11e1a83453b7e767a18d20d1f7
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_DATE).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/urlesistiana/v2dat/tar.gz/$(PKG_SOURCE_VERSION)?
|
||||
@ -28,7 +28,7 @@ PKG_BUILD_FLAGS:=no-mips16
|
||||
GO_PKG:=github.com/urlesistiana/v2dat
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/v2dat
|
||||
SECTION:=utils
|
||||
|
||||
@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=v2ray-plugin
|
||||
PKG_VERSION:=5.49.0
|
||||
PKG_RELEASE:=3
|
||||
PKG_RELEASE:=4
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)?
|
||||
@ -26,7 +26,7 @@ GO_PKG:=github.com/teddysun/v2ray-plugin
|
||||
GO_PKG_LDFLAGS_X:=main.VERSION=v$(PKG_VERSION)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/v2ray-plugin
|
||||
SECTION:=net
|
||||
|
||||
@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=webdav2
|
||||
PKG_VERSION:=4.3.2
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/jjm2473/webdav/tar.gz/v$(PKG_VERSION)?
|
||||
@ -23,7 +23,7 @@ GO_PKG_LDFLAGS_X:= \
|
||||
github.com/hacdias/webdav/cmd.version=$(PKG_VERSION)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
TAR_OPTIONS:=--strip-components 1 $(TAR_OPTIONS)
|
||||
TAR_CMD=$(HOST_TAR) -C $(PKG_BUILD_DIR) $(TAR_OPTIONS)
|
||||
|
||||
@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=Xray-core
|
||||
PKG_VERSION:=26.6.1
|
||||
PKG_RELEASE:=13
|
||||
PKG_RELEASE:=14
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)?
|
||||
@ -24,7 +24,7 @@ GO_PKG_LDFLAGS_X:= \
|
||||
$(GO_PKG)/core.version=$(PKG_VERSION)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/xray/template
|
||||
TITLE:=A platform for building proxies to bypass network restrictions
|
||||
|
||||
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=xray-plugin
|
||||
PKG_VERSION:=1.8.24
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)?
|
||||
@ -24,7 +24,7 @@ PKG_BUILD_FLAGS:=no-mips16
|
||||
GO_PKG:=github.com/teddysun/xray-plugin
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
||||
include $(TOPDIR)/feeds/packages/kiddin9/golang/golang-package.mk
|
||||
|
||||
define Package/xray-plugin
|
||||
SECTION:=net
|
||||
|
||||
Loading…
Reference in New Issue
Block a user