small-packages/npc/Makefile
2026-05-10 09:48:30 +08:00

101 lines
2.9 KiB
Makefile

# Copyright (C) 2024-2025 Duan <duan@d-jy.net>
include $(TOPDIR)/rules.mk
PKG_NAME:=npc
PKG_VERSION:=0.34.7
PKG_RELEASE:=1
PKG_LICENSE:=Apache-2.0
PKG_MAINTAINER:=Duan <duan@d-jy.net>
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
NPS_URL=https://github.com/djylb/nps
NPC_ARCH:=
ifeq ($(ARCH),x86_64)
NPC_ARCH:=amd64
endif
ifeq ($(ARCH),i386)
NPC_ARCH:=386
endif
ifeq ($(ARCH),aarch64)
NPC_ARCH:=arm64
endif
ifeq ($(findstring armv8,$(BOARD)),armv8)
NPC_ARCH:=arm64
endif
ifeq ($(ARCH),arm)
ifeq ($(BOARD),bcm53xx)
NPC_ARCH:=arm_v6
else ifeq ($(BOARD),kirkwood)
NPC_ARCH:=arm_v5
else
NPC_ARCH:=arm_v7
endif
endif
ifeq ($(filter mipsel,$(ARCH)),mipsel)
NPC_ARCH:=mipsle_softfloat
endif
ifeq ($(filter mips64el,$(ARCH)),mips64el)
NPC_ARCH:=mips64le
endif
ifeq ($(filter mips64,$(ARCH)),mips64)
NPC_ARCH:=mips64
endif
ifeq ($(filter mips,$(ARCH)),mips)
NPC_ARCH:=mips_softfloat
endif
ifeq ($(filter loongarch64,$(ARCH)),loongarch64)
NPC_ARCH:=loong64
endif
ifeq ($(filter riscv64,$(ARCH)),riscv64)
NPC_ARCH:=riscv64
endif
PKG_SOURCE:=linux_$(NPC_ARCH)_client.tar.gz
PKG_SOURCE_URL:=$(NPS_URL)/releases/download/v$(PKG_VERSION)/
# === NPC_HASH_TABLE_START ===
NPC_HASHES:= \
amd64=7d9cfa0b1ab31a61d208e64914aaa78e03d2daa7780578d2e3ebf7209e64fa09 \
386=9d4ccceeaa392658a155d31f686efbf1b85694692f568f0985e929c31ccf0229 \
arm64=7300df22608b1617b95a939284c32a8d9f57defbebfe774280bb3c800c5bd3c9 \
arm_v7=97fbfa4a961db5978cb3f25ca141580cea0e4e758fa15806c45fcd39856c9de4 \
arm_v6=74e376909b7c8932cc7c2d467c755bdc8603e02d59abb01ec7fadfbb3d59584c \
arm_v5=7039b037eee7a4ac6698ade3cbb1f28c927aa7b153bfba1ed566a42843d5c0b9 \
mips_softfloat=b29cd8c359e752eae4a2be3fbea1d3924f0f41e9b091b0570a61866085926ffb \
mipsle_softfloat=511d590131f8e13c8157f36bc7e0cf863a65e8b363b06d8e1a4e6b74ed21995d \
mips64=7cfd3c45442cf7abe220452f8bf1856d1a6f0c6886c71fd2e6abf03d445c7e7e \
mips64le=47fd0a0e9567e57901f8210ac475d21a4363e1b26808e1eb1f37caa8d00143c2 \
loong64=8ca20e2a178bcecd3965243df18404a0b6d378c884de856c59654c684d51a09a \
riscv64=1a954dd318cacf416ca83529e595f017f54f3239813b8a33c0fd095e5b3ffd7c
# === NPC_HASH_TABLE_END ===
PKG_HASH:=$(strip $(foreach pair,$(NPC_HASHES), $(if $(findstring $(NPC_ARCH),$(pair)),$(word 2, $(subst =, ,$(pair))))))
include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
SECTION:=net
CATEGORY:=Network
TITLE:=NPC Client (precompiled for $(NPC_ARCH))
URL:=$(NPS_URL)
endef
define Package/$(PKG_NAME)/description
NPC is a fast reverse proxy client to expose local servers through NAT/firewall.
This package uses the precompiled binary for the $(NPC_ARCH) architecture.
endef
define Build/Compile
mkdir -p $(PKG_BUILD_DIR)
tar -xzf $(DL_DIR)/$(PKG_SOURCE) -C $(PKG_BUILD_DIR)
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/usr/bin/$(PKG_NAME)
endef
$(eval $(call BuildPackage,$(PKG_NAME)))