Browse Source

scons: move host build tool to a proper place

This patch aims to move scons host build tool into packages feeds, where
this tools belongs. There are currently no packages in the master tree
which would need scons, yet scons is build always as part of host tools,
just in order to satisfy host build dependency of few packages in the
packages feeeds.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
lilik-openwrt-22.03
Petr Štetiar 5 years ago
parent
commit
7087efd72a
4 changed files with 105 additions and 0 deletions
  1. +56
    -0
      devel/scons/Makefile
  2. +15
    -0
      devel/scons/files/pywrap.sh
  3. +11
    -0
      devel/scons/patches/001-platform_env.patch
  4. +23
    -0
      devel/scons/scons.mk

+ 56
- 0
devel/scons/Makefile View File

@ -0,0 +1,56 @@
#
# Copyright (C) 2011-2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=scons
PKG_VERSION:=3.1.1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/scons \
https://fossies.org/linux/misc/
PKG_HASH:=4cea417fdd7499a36f407923d03b4b7000b0f9e8fd7b31b316b9ce7eba9143a5
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/host-build.mk
define Package/scons
SECTION:=devel
CATEGORY:=Development
TITLE:=scons
HIDDEN:=1
endef
define Package/scons/description
SCons is an Open Source software construction tool—that is, a
next-generation build tool. Think of SCons as an improved, cross-platform
substitute for the classic Make utility with integrated functionality
similar to autoconf/automake and compiler caches such as ccache. In short,
SCons is an easier, more reliable and faster way to build software.
endef
define Host/Configure
endef
define Host/Compile
endef
define Host/Install
./files/pywrap.sh $(HOST_BUILD_DIR)/setup.py install --prefix=$(STAGING_DIR_HOST)
rm -f $(STAGING_DIR_HOST)/bin/scons*.py
for bin in $(STAGING_DIR_HOST)/bin/scons*; do \
mv "$$$$bin" "$$$$bin.py"; \
cp ./files/pywrap.sh "$$$$bin"; \
done
endef
$(eval $(call BuildPackage,scons))
$(eval $(call HostBuild))

+ 15
- 0
devel/scons/files/pywrap.sh View File

@ -0,0 +1,15 @@
#!/bin/sh
case "${0##*/}" in
pywrap.sh) arg1="";;
*) arg1="$0.py" ;;
esac
for bin in python python3; do
case "$($bin -V 2>&1)" in
"Python 3"*) exec $bin $arg1 "$@" ;;
esac
done
echo "Unable to find a Python 3.x interpreter for executing ${arg1:+$arg1 }$* !" >&2
exit 1

+ 11
- 0
devel/scons/patches/001-platform_env.patch View File

@ -0,0 +1,11 @@
--- a/engine/SCons/Platform/__init__.py
+++ b/engine/SCons/Platform/__init__.py
@@ -65,6 +65,8 @@ def platform_default():
care about the machine architecture.
"""
osname = os.name
+ if 'PLATFORM' in os.environ:
+ return os.environ['PLATFORM']
if osname == 'java':
osname = os._osType
if osname == 'posix':

+ 23
- 0
devel/scons/scons.mk View File

@ -0,0 +1,23 @@
export PLATFORM=posix
SCONS_VARS = \
CC="$(TARGET_CC_NOCACHE)" \
CXX="$(TARGET_CXX_NOCACHE)" \
CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \
CXXFLAGS="$(TARGET_CXXFLAGS) $(EXTRA_CXXFLAGS)" \
CPPFLAGS="$(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)" \
DESTDIR="$(PKG_INSTALL_DIR)"
define Build/Configure/Default
(cd $(PKG_BUILD_DIR); \
$(SCONS_VARS) \
scons \
prefix=/usr \
$(SCONS_OPTIONS) \
install \
)
endef
define Build/Compile
endef

Loading…
Cancel
Save