build: add option "GLUON_BUILDTYPE" to support other firmwares-types
This change adds the option "GLUON_BUILDTYPE", to support building other types of firmware with the framework. With the generalization some of the gluon specific setup can be disabled and it will become more easy to use the framework for other projects. These gluon-specific settings include: * setup of "CONFIG_TARGET_DEVICE_" in scripts/target_config_lib.lua * setup of "CONFIG_TARGET_DEVICE_PACKAGES_" in scripts/target_config_lib.lua * most of the settings in targets/generic The targets/generic file is split into targets/generic and targets/generic_gluon. The CONFIG_TARGET_DEVICE_ options of scripts/target_config_lib.lua will only be setup when GLUON_BUILDTYPE is set to "gluon". By default GLUON_BUILDTYPE is "gluon" and the framework will do as before. Setting GLUON_BUILDTYPE to something different via environment/commandline, e.g. "ffberlin", will skip the gluon-section in scripts/target_config_lib.lua and include targets/generic_ffberlin in place of targets/generic_gluon.
This commit is contained in:
parent
163427649c
commit
7d9bab9a8d
5
Makefile
5
Makefile
@ -56,6 +56,7 @@ GLUON_MULTIDOMAIN ?= 0
|
||||
GLUON_AUTOREMOVE ?= 0
|
||||
GLUON_DEBUG ?= 0
|
||||
GLUON_MINIFY ?= 1
|
||||
GLUON_BUILDTYPE ?= gluon
|
||||
|
||||
# Can be overridden via environment/command line/... to use the Gluon
|
||||
# build system for non-Gluon builds
|
||||
@ -66,8 +67,8 @@ endef
|
||||
GLUON_VARS = \
|
||||
GLUON_RELEASE GLUON_REGION GLUON_MULTIDOMAIN GLUON_AUTOREMOVE GLUON_DEBUG GLUON_MINIFY GLUON_DEPRECATED \
|
||||
GLUON_DEVICES GLUON_TARGETSDIR GLUON_PATCHESDIR GLUON_TMPDIR GLUON_IMAGEDIR GLUON_PACKAGEDIR GLUON_DEBUGDIR \
|
||||
GLUON_SITEDIR GLUON_RELEASE GLUON_AUTOUPDATER_BRANCH GLUON_AUTOUPDATER_ENABLED GLUON_LANGS GLUON_BASE_FEEDS \
|
||||
GLUON_TARGET BOARD SUBTARGET
|
||||
GLUON_SITEDIR GLUON_BUILDTYPE GLUON_RELEASE GLUON_AUTOUPDATER_BRANCH GLUON_AUTOUPDATER_ENABLED GLUON_LANGS \
|
||||
GLUON_BASE_FEEDS GLUON_TARGET BOARD SUBTARGET
|
||||
|
||||
unexport $(GLUON_VARS)
|
||||
GLUON_ENV = $(foreach var,$(GLUON_VARS),$(var)=$(call escape,$($(var))))
|
||||
|
@ -147,6 +147,7 @@ local function handle_target_pkgs(pkgs)
|
||||
end
|
||||
|
||||
lib.include('generic')
|
||||
lib.include('generic_' .. env.GLUON_BUILDTYPE)
|
||||
lib.include(target)
|
||||
|
||||
lib.check_devices()
|
||||
@ -179,15 +180,17 @@ if #lib.devices > 0 then
|
||||
handle_pkgs(dev.options.packages or {})
|
||||
handle_pkgs(site_packages(dev.image))
|
||||
|
||||
local profile_config = string.format('%s_DEVICE_%s', openwrt_config_target, profile)
|
||||
lib.config(
|
||||
'TARGET_DEVICE_' .. profile_config, true,
|
||||
string.format("unable to enable device '%s'", profile)
|
||||
)
|
||||
lib.config(
|
||||
'TARGET_DEVICE_PACKAGES_' .. profile_config,
|
||||
table.concat(device_pkgs, ' ')
|
||||
)
|
||||
if env.GLUON_BUILDTYPE == 'gluon' then
|
||||
local profile_config = string.format('%s_DEVICE_%s', openwrt_config_target, profile)
|
||||
lib.config(
|
||||
'TARGET_DEVICE_' .. profile_config, true,
|
||||
string.format("unable to enable device '%s'", profile)
|
||||
)
|
||||
lib.config(
|
||||
'TARGET_DEVICE_PACKAGES_' .. profile_config,
|
||||
table.concat(device_pkgs, ' ')
|
||||
)
|
||||
end
|
||||
end
|
||||
else
|
||||
-- x86 fallback: no devices
|
||||
|
@ -1,24 +1,8 @@
|
||||
assert(env.GLUON_LANGS)
|
||||
|
||||
|
||||
config('GLUON_SITEDIR', env.GLUON_SITEDIR)
|
||||
config('GLUON_RELEASE', env.GLUON_RELEASE)
|
||||
|
||||
try_config('GLUON_AUTOUPDATER_BRANCH', env.GLUON_AUTOUPDATER_BRANCH)
|
||||
try_config('GLUON_AUTOUPDATER_ENABLED', istrue(env.GLUON_AUTOUPDATER_ENABLED))
|
||||
|
||||
for lang in string.gmatch(env.GLUON_LANGS, '%S+') do
|
||||
try_config('GLUON_WEB_LANG_' .. lang, true)
|
||||
end
|
||||
|
||||
config('TARGET_' .. env.BOARD, true)
|
||||
if env.SUBTARGET ~= '' then
|
||||
config(string.format('TARGET_%s_%s', env.BOARD, env.SUBTARGET), true)
|
||||
end
|
||||
|
||||
-- Disable non-default feeds in distfeeds.conf
|
||||
config('FEED_gluon_base', false)
|
||||
|
||||
local default_feeds = {}
|
||||
for feed in string.gmatch(exec_capture_raw('. scripts/default_feeds.sh && echo "$DEFAULT_FEEDS"'), '%S+') do
|
||||
default_feeds[feed] = true
|
||||
@ -30,34 +14,6 @@ for feed in string.gmatch(exec_capture_raw('. scripts/modules.sh && echo -n "$FE
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
config('TARGET_ROOTFS_INITRAMFS', false)
|
||||
|
||||
config('DEVEL', true)
|
||||
config('ALL_NONSHARED', true)
|
||||
|
||||
config('PACKAGE_usbip', false) -- fails to build
|
||||
config('PACKAGE_kmod-jool', false) -- fails to build
|
||||
|
||||
config('BUSYBOX_CUSTOM', true)
|
||||
config('BUSYBOX_CONFIG_FEATURE_PREFER_IPV4_ADDRESS', false)
|
||||
|
||||
try_config('PACKAGE_ATH_DEBUG', true)
|
||||
|
||||
try_config('TARGET_SQUASHFS_BLOCK_SIZE', 256)
|
||||
|
||||
config('KERNEL_IP_MROUTE', false)
|
||||
config('KERNEL_IPV6_MROUTE', false)
|
||||
|
||||
config('COLLECT_KERNEL_DEBUG', true)
|
||||
|
||||
try_config('TARGET_MULTI_PROFILE', true)
|
||||
try_config('TARGET_PER_DEVICE_ROOTFS', true)
|
||||
|
||||
config('GLUON_MULTIDOMAIN', istrue(env.GLUON_MULTIDOMAIN))
|
||||
|
||||
config('AUTOREMOVE', istrue(env.GLUON_AUTOREMOVE))
|
||||
|
||||
if istrue(env.GLUON_DEBUG) then
|
||||
config('DEBUG', true)
|
||||
config('NO_STRIP', true)
|
||||
@ -66,16 +22,3 @@ if istrue(env.GLUON_DEBUG) then
|
||||
|
||||
try_config('TARGET_ROOTFS_PARTSIZE', 500)
|
||||
end
|
||||
|
||||
config('GLUON_MINIFY', istrue(env.GLUON_MINIFY))
|
||||
|
||||
packages {
|
||||
'-kmod-ipt-offload',
|
||||
'-odhcpd-ipv6only',
|
||||
'-ppp',
|
||||
'-ppp-mod-pppoe',
|
||||
'-wpad-mini',
|
||||
'-wpad-basic',
|
||||
'gluon-core',
|
||||
'ip6tables',
|
||||
}
|
||||
|
183
targets/generic_ffberlin
Normal file
183
targets/generic_ffberlin
Normal file
@ -0,0 +1,183 @@
|
||||
config('TARGET_ROOTFS_INITRAMFS', false)
|
||||
|
||||
config('TARGET_MULTI_PROFILE', true)
|
||||
config('TARGET_ALL_PROFILES', true)
|
||||
config('TARGET_PER_DEVICE_ROOTFS', true)
|
||||
|
||||
config('DEVEL', true)
|
||||
config('TOOLCHAINOPTS', true)
|
||||
config('ALFRED_NEEDS_lua', true)
|
||||
--config('ATH_USER_REGD', true)
|
||||
config('IB', true)
|
||||
config('IMAGEOPT', true)
|
||||
config('BUILD_LOG', true)
|
||||
config('KERNEL_DEBUG_INFO', false)
|
||||
config('KERNEL_DEBUG_KERNEL', false)
|
||||
config('KERNEL_KALLSYMS', false)
|
||||
--config('KMOD_BATMAN_ADV_DAT', true)
|
||||
--config('KMOD_BATMAN_ADV_MCAST', true)
|
||||
config('BUSYBOX_CUSTOM', true)
|
||||
config('BUSYBOX_CONFIG_MKSWAP', false)
|
||||
config('BUSYBOX_CONFIG_SWAPON', false)
|
||||
config('BUSYBOX_CONFIG_SWAPOFF', false)
|
||||
config('BUSYBOX_CONFIG_TELNET', true)
|
||||
config('BUSYBOX_CONFIG_FEATURE_TELNET_TTYPE', true)
|
||||
config('BUSYBOX_CONFIG_FEATURE_TRACEROUTE_USE_ICMP', true)
|
||||
config('PREINITOPT', true)
|
||||
config('SDK', true)
|
||||
config('STRIP_KERNEL_EXPORTS', true)
|
||||
config('TARGET_PREINIT_IP="192.168.42.1"')
|
||||
config('TARGET_PREINIT_NETMASK="255.255.255.0"')
|
||||
config('TARGET_PREINIT_BROADCAST="192.168.42.255"')
|
||||
config('VERSIONOPT', true)
|
||||
config('VERSION_FILENAMES', true)
|
||||
config('VERSION_CODE_FILENAMES', true)
|
||||
config('VERSION_DIST="Freifunk Berlin"')
|
||||
config('VERSION_HWREV=""')
|
||||
config('VERSION_MANUFACTURER=""')
|
||||
config('VERSION_NUMBER="Dev-daily-1907"')
|
||||
config('VERSION_CODE=""')
|
||||
config('VERSION_PRODUCT=""')
|
||||
config('LUCI_SRCDIET', true)
|
||||
--config('LUCI_LANG_de=m'
|
||||
--config('LUCI_LANG_en=m'
|
||||
|
||||
--config('PACKAGE_kmod-batman-adv=m'
|
||||
--config('PACKAGE_kmod-crypto-crc32c=m'
|
||||
--config('PACKAGE_kmod-crypto-hash=m'
|
||||
--config('PACKAGE_kmod-fs-cifs=m'
|
||||
--config('PACKAGE_kmod-fs-ext4=m'
|
||||
--config('PACKAGE_kmod-fs-vfat=m'
|
||||
--config('PACKAGE_kmod-ifb=m'
|
||||
--config('PACKAGE_kmod-ipip=m'
|
||||
--config('PACKAGE_kmod-ipt-conntrack-extra=m'
|
||||
--config('PACKAGE_kmod-ipt-filter=m'
|
||||
--config('PACKAGE_kmod-ipt-ipopt=m'
|
||||
--config('PACKAGE_kmod-iptunnel=m'
|
||||
--config('PACKAGE_kmod-iptunnel4=m'
|
||||
--config('PACKAGE_kmod-lib-crc-itu-t=m'
|
||||
--config('PACKAGE_kmod-lib-crc16=m'
|
||||
--config('PACKAGE_kmod-lib-crc32c=m'
|
||||
--config('PACKAGE_kmod-lib-textsearch=m'
|
||||
--config('PACKAGE_kmod-nf-nathelper-extra=m'
|
||||
--config('PACKAGE_kmod-nls-utf8=m'
|
||||
--config('PACKAGE_kmod-nls-iso8859-1=m'
|
||||
--config('PACKAGE_kmod-nls-iso8859-15=m'
|
||||
--config('PACKAGE_kmod-ppp=m'
|
||||
--config('PACKAGE_kmod-rt2800-lib=m'
|
||||
--config('PACKAGE_kmod-rt2800-usb=m'
|
||||
--config('PACKAGE_kmod-rt2x00-lib=m'
|
||||
--config('PACKAGE_kmod-rt2x00-usb=m'
|
||||
--config('PACKAGE_kmod-sched-connmark=m'
|
||||
--config('PACKAGE_kmod-sched-core=m'
|
||||
--config('PACKAGE_kmod-sit=m'
|
||||
--config('PACKAGE_kmod-tun=m'
|
||||
--config('PACKAGE_kmod-usb-acm=m'
|
||||
--config('PACKAGE_kmod-usb-net=m'
|
||||
--config('PACKAGE_kmod-usb-net-cdc-ether=m'
|
||||
--config('PACKAGE_kmod-usb-net-rndis=m'
|
||||
--config('PACKAGE_kmod-usb-ohci=m'
|
||||
--config('PACKAGE_kmod-usb-serial=m'
|
||||
--config('PACKAGE_kmod-usb-serial-option=m'
|
||||
--config('PACKAGE_kmod-usb-serial-wwan=m'
|
||||
--config('PACKAGE_kmod-usb-storage=m'
|
||||
--config('PACKAGE_kmod-usb-uhci=m'
|
||||
--config('PACKAGE_kmod-veth=m'
|
||||
|
||||
--config('PACKAGE_ALFRED_BATHOSTS', true)
|
||||
--config('PACKAGE_ALFRED_VIS', true)
|
||||
--config('PACKAGE_ATH_DFS', true)
|
||||
--config('PACKAGE_luci-mod-failsafe', true)
|
||||
--config('PACKAGE_luci-theme-bootstrap', true)
|
||||
--config('PACKAGE_uhttpd', true)
|
||||
|
||||
try_config('TARGET_MULTI_PROFILE', true)
|
||||
try_config('TARGET_PER_DEVICE_ROOTFS', true)
|
||||
|
||||
packages {
|
||||
'-hostapd-mini',
|
||||
'-odhcpd-ipv6only',
|
||||
'-ppp',
|
||||
'-ppp-mod-pppoe',
|
||||
'wpad-basic',
|
||||
'freifunk-berlin-system-defaults',
|
||||
'alfred',
|
||||
'batctl-default',
|
||||
'collectd',
|
||||
'collectd-mod-conntrack',
|
||||
'collectd-mod-cpu',
|
||||
'collectd-mod-exec',
|
||||
'collectd-mod-interface',
|
||||
'collectd-mod-irq',
|
||||
'collectd-mod-iwinfo',
|
||||
'collectd-mod-load',
|
||||
'collectd-mod-memory',
|
||||
'collectd-mod-network',
|
||||
'collectd-mod-olsrd',
|
||||
'collectd-mod-ping',
|
||||
'collectd-mod-routeros',
|
||||
'collectd-mod-rrdtool',
|
||||
'collectd-mod-snmp',
|
||||
'collectd-mod-uptime',
|
||||
'collectd-mod-wireless',
|
||||
'collectd-snmp-templates',
|
||||
'community-profiles',
|
||||
'ethtool',
|
||||
'freifunk-berlin-dhcp-defaults',
|
||||
'freifunk-berlin-firewall-defaults',
|
||||
'freifunk-berlin-freifunk-defaults',
|
||||
'freifunk-berlin-lib-guard',
|
||||
'freifunk-berlin-migration',
|
||||
'freifunk-berlin-network-defaults',
|
||||
'freifunk-berlin-olsrd-defaults',
|
||||
'freifunk-berlin-system-defaults',
|
||||
'freifunk-berlin-statistics-defaults',
|
||||
'freifunk-berlin-tunneldigger',
|
||||
'freifunk-berlin-uhttpd-defaults',
|
||||
'freifunk-common',
|
||||
'freifunk-firewall',
|
||||
'freifunk-gwcheck',
|
||||
'freifunk-policyrouting',
|
||||
'horst',
|
||||
'ipip',
|
||||
'iptables-mod-conntrack-extra',
|
||||
'iptables-mod-filter',
|
||||
'iptables-mod-ipopt',
|
||||
'iwinfo',
|
||||
'libiwinfo-lua',
|
||||
'libubus-lua',
|
||||
'libuci-lua',
|
||||
'libustream-mbedtls',
|
||||
'luci-app-ffwizard-berlin',
|
||||
'luci-app-firewall',
|
||||
'luci-app-opkg',
|
||||
'luci-app-olsr',
|
||||
'luci-app-olsr-services',
|
||||
'luci-app-olsr-viz',
|
||||
'luci-app-owm',
|
||||
'luci-app-owm-ant',
|
||||
'luci-app-owm-cmd',
|
||||
'luci-app-owm-gui',
|
||||
'luci-app-statistics',
|
||||
'luci-mod-admin-full',
|
||||
'luci-proto-ipip',
|
||||
'mtr',
|
||||
'olsrd',
|
||||
'olsrd-mod-arprefresh',
|
||||
'olsrd-mod-dyn-gw',
|
||||
'olsrd-mod-dyn-gw-plain',
|
||||
'olsrd-mod-jsoninfo',
|
||||
'olsrd-mod-nameservice',
|
||||
'olsrd-mod-netjson',
|
||||
'olsrd-mod-txtinfo',
|
||||
'olsrd-mod-watchdog',
|
||||
'om-watchdog',
|
||||
'px5g-mbedtls',
|
||||
'qos-scripts',
|
||||
'rssileds',
|
||||
'tc',
|
||||
'terminfo',
|
||||
'tmux',
|
||||
'uhttpd-mod-ubus',
|
||||
'vnstat',
|
||||
}
|
57
targets/generic_gluon
Normal file
57
targets/generic_gluon
Normal file
@ -0,0 +1,57 @@
|
||||
assert(env.GLUON_LANGS)
|
||||
|
||||
|
||||
config('GLUON_SITEDIR', env.GLUON_SITEDIR)
|
||||
config('GLUON_RELEASE', env.GLUON_RELEASE)
|
||||
|
||||
try_config('GLUON_AUTOUPDATER_BRANCH', env.GLUON_AUTOUPDATER_BRANCH)
|
||||
try_config('GLUON_AUTOUPDATER_ENABLED', istrue(env.GLUON_AUTOUPDATER_ENABLED))
|
||||
|
||||
for lang in string.gmatch(env.GLUON_LANGS, '%S+') do
|
||||
try_config('GLUON_WEB_LANG_' .. lang, true)
|
||||
end
|
||||
|
||||
|
||||
-- Disable non-default feeds in distfeeds.conf
|
||||
config('FEED_gluon_base', false)
|
||||
|
||||
|
||||
config('TARGET_ROOTFS_INITRAMFS', false)
|
||||
|
||||
config('DEVEL', true)
|
||||
config('ALL_NONSHARED', true)
|
||||
|
||||
config('PACKAGE_usbip', false) -- fails to build
|
||||
config('PACKAGE_kmod-jool', false) -- fails to build
|
||||
|
||||
config('BUSYBOX_CUSTOM', true)
|
||||
config('BUSYBOX_CONFIG_FEATURE_PREFER_IPV4_ADDRESS', false)
|
||||
|
||||
try_config('PACKAGE_ATH_DEBUG', true)
|
||||
|
||||
try_config('TARGET_SQUASHFS_BLOCK_SIZE', 256)
|
||||
|
||||
config('KERNEL_IP_MROUTE', false)
|
||||
config('KERNEL_IPV6_MROUTE', false)
|
||||
|
||||
config('COLLECT_KERNEL_DEBUG', true)
|
||||
|
||||
try_config('TARGET_MULTI_PROFILE', true)
|
||||
try_config('TARGET_PER_DEVICE_ROOTFS', true)
|
||||
|
||||
config('GLUON_MULTIDOMAIN', istrue(env.GLUON_MULTIDOMAIN))
|
||||
|
||||
config('AUTOREMOVE', istrue(env.GLUON_AUTOREMOVE))
|
||||
|
||||
config('GLUON_MINIFY', istrue(env.GLUON_MINIFY))
|
||||
|
||||
packages {
|
||||
'-kmod-ipt-offload',
|
||||
'-odhcpd-ipv6only',
|
||||
'-ppp',
|
||||
'-ppp-mod-pppoe',
|
||||
'-wpad-mini',
|
||||
'-wpad-basic',
|
||||
'gluon-core',
|
||||
'ip6tables',
|
||||
}
|
Loading…
Reference in New Issue
Block a user