diff --git a/Makefile b/Makefile index 4ff9f0c6..c8cb554c 100644 --- a/Makefile +++ b/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)))) diff --git a/scripts/target_config_lib.lua b/scripts/target_config_lib.lua index 4b107e2b..022c5215 100644 --- a/scripts/target_config_lib.lua +++ b/scripts/target_config_lib.lua @@ -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 diff --git a/targets/generic b/targets/generic index 8b1d484f..8f72674c 100644 --- a/targets/generic +++ b/targets/generic @@ -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', -} diff --git a/targets/generic_ffberlin b/targets/generic_ffberlin new file mode 100644 index 00000000..bf9c2f28 --- /dev/null +++ b/targets/generic_ffberlin @@ -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', +} diff --git a/targets/generic_gluon b/targets/generic_gluon new file mode 100644 index 00000000..dfbf693a --- /dev/null +++ b/targets/generic_gluon @@ -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', +}