Skip to content
Snippets Groups Projects
Select Git revision
  • 83968bacbe43ca289e3b45a543cc6847a5c7582e
  • experimental default protected
  • v2023.2.5-ffs
  • nrb/ex400-remove-wps
  • nrb/airmax-test
  • v2023.2.4-ffs
  • nrb/ar9344-reset-sequence
  • autinerd/experimental-openwrt-24.10
  • v2023.2.3-ffs
  • v2023.2.2-ffs
  • v2023.2-ffs
  • v2023.1-ffs
  • v2022.1.4-ffs
  • feature/addMikrotikwAP
  • v2022.1.3-ffs
  • v2021.1.2-ffs
  • v2022.1.1-ffs
  • master protected
  • v2021.1.1-ffs
  • nrb/gluon-master-cpe510
  • v2021.1-ffs
  • experimental-2025-07-04
  • experimental-2025-07-04-base
  • experimental-2025-07-01
  • experimental-2025-07-01-base
  • experimental-2025-06-25
  • experimental-2025-06-25-base
  • experimental-2025-06-24
  • experimental-2025-06-24-base
  • experimental-2025-06-22
  • experimental-2025-06-22-base
  • v2023.2.5-ffs0.1
  • experimental-2025-06-08
  • experimental-2025-06-08-base
  • experimental-2025-06-06
  • experimental-2025-06-06-base
  • experimental-2025-05-27
  • experimental-2025-05-27-base
  • experimental-2025-05-18
  • experimental-2025-05-18-base
  • experimental-2025-05-15
41 results

kernel-vermagic

Blame
    • Nils Schneider's avatar
      6e03d14d
      basic support for VoCore · 6e03d14d
      Nils Schneider authored
      This still needs some work:
      
      - there's no factory image causing `make images` to fail
      - VoCore can not support BSS and IBSS at the same time
      - multi-BSS mode (e.g. mesh + BSS) works if the macs only
        differ in the last 3 bits. Gluon expects to choose both MACs freely,
        though, so after flashing the image one should reset the wifi MACs.
        This is further complicated as VoCores have their MACs assigned
        without gaps making collisions likely.
      - there are no buttons nor ethernet ports (without the dock, that is),
        so config-mode will not be possible as is
      6e03d14d
      History
      basic support for VoCore
      Nils Schneider authored
      This still needs some work:
      
      - there's no factory image causing `make images` to fail
      - VoCore can not support BSS and IBSS at the same time
      - multi-BSS mode (e.g. mesh + BSS) works if the macs only
        differ in the last 3 bits. Gluon expects to choose both MACs freely,
        though, so after flashing the image one should reset the wifi MACs.
        This is further complicated as VoCores have their MACs assigned
        without gaps making collisions likely.
      - there are no buttons nor ethernet ports (without the dock, that is),
        so config-mode will not be possible as is
    Makefile 5.33 KiB
    all:
    
    LC_ALL:=C
    LANG:=C
    export LC_ALL LANG
    
    .SHELLFLAGS = -ec
    
    # check for spaces & resolve possibly relative paths
    define mkabspath
       ifneq (1,$(words [$($(1))]))
         $$(error $(1) must not contain spaces)
       endif
       override $(1) := $(abspath $($(1)))
    endef
    
    escape = '$(subst ','\'',$(1))'
    
    GLUON_SITEDIR ?= site
    $(eval $(call mkabspath,GLUON_SITEDIR))
    
    $(GLUON_SITEDIR)/site.mk:
    	$(error No site configuration was found. Please check out a site configuration to $(GLUON_SITEDIR))
    
    include $(GLUON_SITEDIR)/site.mk
    
    GLUON_RELEASE ?= $(error GLUON_RELEASE not set. GLUON_RELEASE can be set in site.mk or on the command line)
    
    GLUON_DEPRECATED ?= $(error GLUON_DEPRECATED not set. Please consult the documentation)
    
    ifneq ($(GLUON_BRANCH),)
      $(warning *** Warning: GLUON_BRANCH has been deprecated, please set GLUON_AUTOUPDATER_BRANCH and GLUON_AUTOUPDATER_ENABLED instead.)
      GLUON_AUTOUPDATER_BRANCH ?= $(GLUON_BRANCH)
      GLUON_AUTOUPDATER_ENABLED ?= 1
    endif
    
    GLUON_AUTOUPDATER_ENABLED ?= 0
    
    # initialize (possibly already user set) directory variables
    GLUON_TMPDIR ?= tmp
    GLUON_OUTPUTDIR ?= output
    GLUON_IMAGEDIR ?= $(GLUON_OUTPUTDIR)/images
    GLUON_PACKAGEDIR ?= $(GLUON_OUTPUTDIR)/packages
    GLUON_DEBUGDIR ?= $(GLUON_OUTPUTDIR)/debug
    GLUON_TARGETSDIR ?= targets
    GLUON_PATCHESDIR ?= patches
    
    $(eval $(call mkabspath,GLUON_TMPDIR))
    $(eval $(call mkabspath,GLUON_OUTPUTDIR))
    $(eval $(call mkabspath,GLUON_IMAGEDIR))
    $(eval $(call mkabspath,GLUON_PACKAGEDIR))
    $(eval $(call mkabspath,GLUON_TARGETSDIR))
    $(eval $(call mkabspath,GLUON_PATCHESDIR))
    
    GLUON_MULTIDOMAIN ?= 0
    GLUON_AUTOREMOVE ?= 0
    GLUON_DEBUG ?= 0
    GLUON_MINIFY ?= 1
    
    # Can be overridden via environment/command line/... to use the Gluon
    # build system for non-Gluon builds
    define GLUON_BASE_FEEDS ?=
    src-link gluon_base ../../package
    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
    
    unexport $(GLUON_VARS)
    GLUON_ENV = $(foreach var,$(GLUON_VARS),$(var)=$(call escape,$($(var))))
    
    show-release:
    	@echo '$(GLUON_RELEASE)'
    
    
    update: FORCE
    	@
    	export $(GLUON_ENV)
    	scripts/update.sh
    	scripts/patch.sh
    	scripts/feeds.sh
    
    update-patches: FORCE
    	@
    	export $(GLUON_ENV)
    	scripts/update.sh
    	scripts/update-patches.sh
    	scripts/patch.sh
    
    refresh-patches: FORCE
    	@
    	export $(GLUON_ENV)
    	scripts/update.sh
    	scripts/patch.sh
    	scripts/update-patches.sh
    
    update-feeds: FORCE
    	@$(GLUON_ENV) scripts/feeds.sh
    
    
    GLUON_TARGETS :=
    
    define GluonTarget
    gluon_target := $(1)$$(if $(2),-$(2))
    GLUON_TARGETS += $$(gluon_target)
    GLUON_TARGET_$$(gluon_target)_BOARD := $(1)
    GLUON_TARGET_$$(gluon_target)_SUBTARGET := $(2)
    endef
    
    include $(GLUON_TARGETSDIR)/targets.mk
    
    
    OPENWRTMAKE = $(MAKE) -C openwrt
    
    BOARD := $(GLUON_TARGET_$(GLUON_TARGET)_BOARD)
    SUBTARGET := $(GLUON_TARGET_$(GLUON_TARGET)_SUBTARGET)
    
    
    define CheckTarget
    	if [ -z '$(BOARD)' ]; then
    		echo 'Please set GLUON_TARGET to a valid target. Gluon supports the following targets:'
    		for target in $(GLUON_TARGETS); do
    			echo " * $$target"
    		done
    		exit 1
    	fi
    endef
    
    define CheckSite
    	if ! GLUON_SITEDIR='$(GLUON_SITEDIR)' GLUON_SITE_CONFIG='$(1).conf' $(LUA) -e 'assert(dofile("scripts/site_config.lua")(os.getenv("GLUON_SITE_CONFIG")))'; then
    		echo 'Your site configuration ($(1).conf) did not pass validation'
    		exit 1
    	fi
    endef
    
    list-targets: FORCE
    	@for target in $(GLUON_TARGETS); do
    		echo "$$target"
    	done
    
    lint: lint-lua lint-sh
    
    lint-lua: FORCE
    	@scripts/lint-lua.sh
    
    lint-sh: FORCE
    	@scripts/lint-sh.sh
    
    
    LUA := openwrt/staging_dir/hostpkg/bin/lua
    
    $(LUA):
    	+@
    
    	scripts/module_check.sh
    
    	[ -e openwrt/.config ] || $(OPENWRTMAKE) defconfig
    	$(OPENWRTMAKE) tools/install
    	$(OPENWRTMAKE) package/lua/host/compile
    
    
    config: $(LUA) FORCE
    	+@
    
    	scripts/module_check.sh
    	$(CheckTarget)
    	$(foreach conf,site $(patsubst $(GLUON_SITEDIR)/%.conf,%,$(wildcard $(GLUON_SITEDIR)/domains/*.conf)),\
    		$(call CheckSite,$(conf)); \
    	)
    
    	$(GLUON_ENV) $(LUA) scripts/target_config.lua > openwrt/.config
    	$(OPENWRTMAKE) defconfig
    	$(GLUON_ENV) $(LUA) scripts/target_config_check.lua
    
    
    all: config
    	+@
    	$(GLUON_ENV) $(LUA) scripts/clean_output.lua
    	$(OPENWRTMAKE)
    	$(GLUON_ENV) $(LUA) scripts/copy_output.lua
    
    clean download: config
    	+@$(OPENWRTMAKE) $@
    
    dirclean: FORCE
    	+@
    	[ -e openwrt/.config ] || $(OPENWRTMAKE) defconfig
    	$(OPENWRTMAKE) dirclean
    	rm -rf $(GLUON_TMPDIR) $(GLUON_OUTPUTDIR)
    
    manifest: $(LUA) FORCE
    	@
    	[ '$(GLUON_AUTOUPDATER_BRANCH)' ] || (echo 'Please set GLUON_AUTOUPDATER_BRANCH to create a manifest.'; false)
    	echo '$(GLUON_PRIORITY)' | grep -qE '^([0-9]*\.)?[0-9]+$$' || (echo 'Please specify a numeric value for GLUON_PRIORITY to create a manifest.'; false)
    	scripts/module_check.sh
    
    	(
    		export $(GLUON_ENV)
    		echo 'BRANCH=$(GLUON_AUTOUPDATER_BRANCH)'
    		echo "DATE=$$($(LUA) scripts/rfc3339date.lua)"
    		echo 'PRIORITY=$(GLUON_PRIORITY)'
    		echo
    		for target in $(GLUON_TARGETS); do
    			$(LUA) scripts/generate_manifest.lua "$$target"
    		done
    	) > 'tmp/$(GLUON_AUTOUPDATER_BRANCH).manifest.tmp'
    
    	mkdir -p '$(GLUON_IMAGEDIR)/sysupgrade'
    	mv 'tmp/$(GLUON_AUTOUPDATER_BRANCH).manifest.tmp' '$(GLUON_IMAGEDIR)/sysupgrade/$(GLUON_AUTOUPDATER_BRANCH).manifest'
    
    FORCE: ;
    
    .PHONY: FORCE
    .NOTPARALLEL:
    .ONESHELL: