2013-02-17 15:30:59 +00:00
all :
LC_ALL := C
LANG := C
export LC_ALL LANG
2016-03-22 12:01:18 +00:00
2016-11-16 02:44:04 +00:00
GLUON_SITEDIR ?= $( CURDIR) /site
GLUON_TMPDIR ?= $( CURDIR) /tmp
2016-04-02 02:31:50 +00:00
2016-11-16 02:44:04 +00:00
GLUON_OUTPUTDIR ?= $( CURDIR) /output
GLUON_IMAGEDIR ?= $( GLUON_OUTPUTDIR) /images
GLUON_MODULEDIR ?= $( GLUON_OUTPUTDIR) /modules
2013-02-17 20:29:20 +00:00
2016-11-16 02:44:04 +00:00
export GLUON_TMPDIR GLUON_IMAGEDIR GLUON_MODULEDIR
2013-02-17 15:30:59 +00:00
2016-11-16 02:44:04 +00:00
GLUON_VERSION := $( shell git describe --always --dirty= + 2>/dev/null || echo unknown)
GLUON_SITE_VERSION := $( shell ( cd $( GLUON_SITEDIR) && git --git-dir= .git describe --always --dirty= + ) 2>/dev/null || echo unknown)
2013-02-11 03:52:16 +00:00
2016-11-16 02:44:04 +00:00
$(GLUON_SITEDIR)/site.mk :
$( error No site configuration was found. Please check out a site configuration to $( GLUON_SITEDIR) )
2013-02-17 15:30:59 +00:00
2016-11-16 02:44:04 +00:00
- i n c l u d e $( GLUON_SITEDIR ) / s i t e . m k
2013-12-28 13:54:49 +00:00
2016-11-16 02:44:04 +00:00
i f e q ( $( GLUON_RELEASE ) , )
$( error GLUON_RELEASE not set . GLUON_RELEASE can be set in site .mk or on the command line .)
e n d i f
2013-02-11 22:06:19 +00:00
2016-11-16 02:44:04 +00:00
GLUON_LANGS ?= en
2014-05-11 08:43:10 +00:00
2016-11-16 02:44:04 +00:00
export GLUON_RELEASE GLUON_ATH10K_MESH GLUON_REGION
2013-02-11 03:52:16 +00:00
2013-02-17 15:30:59 +00:00
2016-11-16 02:44:04 +00:00
update : FORCE
@scripts/update.sh
@scripts/patch.sh
@scripts/feeds.sh
2013-02-17 23:39:44 +00:00
2016-11-16 02:44:04 +00:00
update-patches : FORCE
@scripts/update.sh
@scripts/update-patches.sh
@scripts/patch.sh
2013-02-11 22:06:19 +00:00
2016-11-16 02:44:04 +00:00
update-feeds : FORCE
@scripts/feeds.sh
2013-10-08 01:57:08 +00:00
2013-02-17 15:30:59 +00:00
2016-11-16 02:44:04 +00:00
GLUON_TARGETS :=
2013-10-08 01:57:08 +00:00
2016-11-16 02:44:04 +00:00
d e f i n e G l u o n T a r g e t
gluon_target := $( 1) $$ ( if $( 2) ,-$( 2) )
GLUON_TARGETS += $$ ( gluon_target)
GLUON_TARGET_$$(gluon_target)_BOARD := $( 1)
GLUON_TARGET_$$(gluon_target)_SUBTARGET := $( if $( 3) ,$( 3) ,$( 2) )
2014-02-05 21:12:50 +00:00
e n d e f
2016-11-16 02:44:04 +00:00
i n c l u d e t a r g e t s / t a r g e t s . m k
2015-01-03 03:40:18 +00:00
2013-02-12 06:14:18 +00:00
2016-11-16 02:44:04 +00:00
LEDEMAKE = $( MAKE) -C lede
2015-10-14 18:12:52 +00:00
BOARD := $( GLUON_TARGET_$( GLUON_TARGET) _BOARD)
2016-11-16 02:44:04 +00:00
SUBTARGET := $( GLUON_TARGET_$( GLUON_TARGET) _SUBTARGET)
LEDE_TARGET := $( BOARD) $( if $( SUBTARGET) ,-$( SUBTARGET) )
2015-10-14 18:12:52 +00:00
2016-11-16 02:44:04 +00:00
export LEDE_TARGET
2015-05-28 00:45:19 +00:00
2014-05-11 08:43:10 +00:00
2016-11-16 02:44:04 +00:00
CheckTarget := [ -n '$(GLUON_TARGET)' -a -n '$(LEDE_TARGET)' ] \
|| ( echo 'Please set GLUON_TARGET to a valid target. Gluon supports the following targets:' ; $( foreach target,$( GLUON_TARGETS) ,echo ' * $(target)' ; ) false )
2015-03-07 17:12:52 +00:00
2016-11-16 02:44:04 +00:00
CheckExternal := test -d lede || ( echo 'You don' "'" 't seem to have obtained the external repositories needed by Gluon; please call `make update` first!' ; false )
2015-03-07 17:12:52 +00:00
2014-05-11 08:43:10 +00:00
2016-11-16 02:44:04 +00:00
GLUON_DEFAULT_PACKAGES := -odhcpd -ppp -ppp-mod-pppoe -uboot-envtools -wpad-mini gluon-core ip6tables hostapd-mini
2014-05-11 08:43:10 +00:00
2016-11-16 02:44:04 +00:00
GLUON_PACKAGES :=
d e f i n e m e r g e _ p a c k a g e s
$( foreach pkg,$( 1) ,
GLUON_PACKAGES := $$ ( strip $$ ( filter-out -$$ ( patsubst -%,%,$( pkg) ) $$ ( patsubst -%,%,$( pkg) ) ,$$ ( GLUON_PACKAGES) ) $( pkg) )
)
e n d e f
$( eval $ ( call merge_packages ,$ ( GLUON_DEFAULT_PACKAGES ) $ ( GLUON_SITE_PACKAGES ) ) )
2013-02-12 01:03:37 +00:00
2016-11-16 02:44:04 +00:00
GLUON_PACKAGES_YES := $( filter-out -%,$( GLUON_PACKAGES) )
GLUON_PACKAGES_NO := $( patsubst -%,%,$( filter -%,$( GLUON_PACKAGES) ) )
2013-02-11 22:06:19 +00:00
2013-04-05 20:53:09 +00:00
2016-11-16 02:44:04 +00:00
prepare-target : FORCE
@$( CheckExternal)
@$( CheckTarget)
@( \
echo 'CONFIG_TARGET_$(BOARD)=y' \
$( if $( SUBTARGET) ,&& echo 'CONFIG_TARGET_$(BOARD)_$(SUBTARGET)=y' ) \
$( foreach pkg,$( GLUON_PACKAGES_NO) ,&& echo '# CONFIG_PACKAGE_$(pkg) is not set' ) \
&& scripts/target_config.sh generic \
&& scripts/target_config.sh '$(GLUON_TARGET)' \
$( foreach pkg,$( GLUON_PACKAGES_YES) ,&& echo 'CONFIG_PACKAGE_$(pkg)=y' ) \
$( foreach lang,$( GLUON_LANGS) ,&& echo 'CONFIG_LUCI_LANG_$(lang)=y' ) \
&& echo 'CONFIG_GLUON_VERSION="$(GLUON_VERSION)"' \
&& echo 'CONFIG_GLUON_SITE_VERSION="$(GLUON_SITE_VERSION)"' \
&& echo 'CONFIG_GLUON_RELEASE="$(GLUON_RELEASE)"' \
&& echo 'CONFIG_GLUON_SITEDIR="$(GLUON_SITEDIR)"' \
&& echo 'CONFIG_GLUON_BRANCH="$(GLUON_BRANCH)"' \
) > lede/.config
+@$( LEDEMAKE) defconfig
# FIXME: check config
# FIXME: opkg config
2013-02-17 15:30:59 +00:00
2016-11-16 02:44:04 +00:00
all : prepare -target
+@$( LEDEMAKE) tools/install
+@$( LEDEMAKE) package/lua/host/install
# FIXME: early site check
+@$( LEDEMAKE)
@scripts/copy_output.sh '$(GLUON_TARGET)'
clean download : prepare -target
+@$( LEDEMAKE) $@
dirclean : FORCE
+@$( LEDEMAKE) defconfig
+@$( LEDEMAKE) dirclean
rm -rf $( GLUON_TMPDIR) $( GLUON_OUTPUTDIR)
#manifest: FORCE
# @[ -n '$(GLUON_BRANCH)' ] || (echo 'Please set GLUON_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)
# @$(CheckExternal)
#
# ( \
# echo 'BRANCH=$(GLUON_BRANCH)' && \
# echo 'DATE=$(shell $(GLUON_ORIGOPENWRTDIR)/staging_dir/host/bin/lua scripts/rfc3339date.lua)' && \
# echo 'PRIORITY=$(GLUON_PRIORITY)' && \
# echo \
# ) > $(GLUON_BUILDDIR)/$(GLUON_BRANCH).manifest.tmp
#
# +($(foreach GLUON_TARGET,$(GLUON_TARGETS), \
# ( [ ! -e $(BOARD_BUILDDIR)/prepared ] || ( $(GLUONMAKE) manifest GLUON_TARGET='$(GLUON_TARGET)' V=s$(OPENWRT_VERBOSE) ) ) && \
# ) :)
#
# mkdir -p $(GLUON_IMAGEDIR)/sysupgrade
# mv $(GLUON_BUILDDIR)/$(GLUON_BRANCH).manifest.tmp $(GLUON_IMAGEDIR)/sysupgrade/$(GLUON_BRANCH).manifest
FORCE : ;
.PHONY : FORCE
.NOTPARALLEL :