Packages
nerves_system_br
1.0.0-rc.3
1.34.0
1.33.9
1.33.8
1.33.7
1.33.6
1.33.5
1.33.4
1.33.3
1.33.2
1.33.1
1.33.0
1.32.5
1.32.4
1.32.3
1.32.2
1.32.1
1.32.0
1.31.7
1.31.6
1.31.5
1.31.4
1.31.3
1.31.2
1.31.1
1.31.0
1.30.1
1.30.0
1.29.3
1.29.2
1.29.1
1.29.0
1.28.3
1.28.2
1.28.1
1.28.0
1.27.3
1.27.2
1.27.1
1.27.0
1.26.1
1.26.0
1.25.3
1.25.2
1.25.1
1.25.0
1.24.1
1.24.0
1.23.3
1.23.2
1.23.1
1.23.0
1.22.8
1.22.7
1.22.6
1.22.5
1.22.4
1.22.3
1.22.2
1.22.1
1.22.0
1.21.6
1.21.5
1.21.4
1.21.3
1.21.2
1.21.1
1.21.0
1.20.6
1.20.5
1.20.4
1.20.3
1.20.2
1.20.1
1.20.0
1.19.1
1.19.0
1.18.6
1.18.5
1.18.4
1.18.3
1.18.2
1.18.1
1.18.0
1.17.4
1.17.3
1.17.2
1.17.1
1.17.0
1.16.5
1.16.4
1.16.3
1.16.2
1.16.1
1.16.0
1.15.2
1.15.1
1.15.0
1.14.5
1.14.4
1.14.3
1.14.2
1.14.1
1.14.0
1.13.8
1.13.7
1.13.6
1.13.5
1.13.4
1.13.3
1.13.2
1.13.1
1.13.0
1.12.4
1.12.3
1.12.2
1.12.1
1.12.0
1.12.0-rc.0
1.11.4
1.11.3
1.11.2
1.11.1
1.11.0
1.10.3
1.10.2
1.10.1
1.10.0
1.9.5
1.9.4
1.9.3
1.9.2
1.9.1
1.9.0
1.8.6
1.8.5
1.8.4
1.8.3
1.8.2
1.8.1
1.8.0
1.7.3
1.7.2
1.7.1
1.7.0
1.6.8
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.6
1.5.5
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.2
1.3.1
1.3.0
1.2.2
1.2.1
1.2.0
1.1.0
1.0.1
1.0.0
1.0.0-rc.4
1.0.0-rc.3
1.0.0-rc.2
1.0.0-rc.1
1.0.0-rc.0
0.17.0
0.16.4
0.16.3
0.16.2
0.16.1-2017-11
0.16.0-2017-11
0.15.1
0.15.0
0.14.1
0.14.0
0.13.9
0.13.8
0.13.7
0.13.6
0.13.5
0.13.4
retired
0.13.3
0.13.2
0.13.0
0.12.1
0.12.0
0.11.1
0.11.0
0.10.1
0.10.0
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.0
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.2
0.4.1
Nerves System BR - Buildroot based build platform for Nerves Systems
Current section
Files
Jump to
Current section
Files
scripts/nerves-elixir.mk
#
# Include this in your project's Makefile as a quick way of
# building a Nerves project
#
ifeq ($(NERVES_SYSTEM),)
$(error Make sure that you source nerves-env.sh first)
endif
ERL_LIB = $(NERVES_SDK_SYSROOT)/usr/lib/erlang/lib
REL2FW = $(NERVES_SYSTEM)/scripts/rel2fw.sh
# This should get the one built by nerves assuming that the Nerves
# environment is loaded.
FWUP ?= $(shell which fwup)
ELIXIR_APP_NAME ?= $(shell basename $(shell pwd))
all: elixir-first-time-setup deps compile release
help:
@echo '-------------------------------------------------'
@echo '$(ELIXIR_APP_NAME) help'
@echo '-------------------------------------------------'
@echo
@echo 'Targets:'
@echo ' all - Build everything'
@echo ' deps - Run mix deps.get'
@echo ' compile - Run mix compile'
@echo ' release - Run mix release and package the firmware'
@echo ' burn - Burn the most recent build to an SDCard (requires sudo)'
@echo ' clean - Clean up the release and build directories'
@echo ' distclean - Clean up everything'
@echo
release:
rm -fr rel/$(ELIXIR_APP_NAME) # Clean up unused apps
mix release
$(REL2FW) -f _images/$(ELIXIR_APP_NAME).fw -a rel/rootfs-additions rel/$(ELIXIR_APP_NAME)
@echo
@echo The firmware is in the _images directory and can be loaded onto the target.
@echo E.g., run \"make burn\" to program the image to an SDCard.
compile:
mix compile
deps:
mix deps.get
# Replace everything on the SDCard with new bits
burn:
sudo $(FWUP) -a -i $(firstword $(wildcard _images/*.fw)) -t complete
burn-complete: burn
# Upgrade the image on the SDCard (app data won't be removed)
# This is usually the fastest way to update an SDCard that's already
# been programmed. It won't update bootloaders, so if something is
# really messed up, do a "make burn".
burn-upgrade:
sudo $(FWUP) -a -i $(firstword $(wildcard _images/*.fw)) -t upgrade
if [ -e /tmp/finalize.fw ]; then \
sudo $(FWUP) -y -a -i /tmp/finalize.fw -t on-reboot; \
sudo rm /tmp/finalize.fw; \
fi
# Helper tasks for creating a base set of files needed to build Nerves
# images. If they already exist, they aren't overwritten.
elixir-first-time-setup: rel/relx.config rel/vm.args rel/nerves_system_libs
@if ! grep nerves .gitignore >/dev/null ; then \
echo "_images" >> .gitignore ; \
echo "rel/nerves_system_libs" >> .gitignore ; \
echo "rel/$(ELIXIR_APP_NAME)" >> .gitignore ; \
fi
rel/vm.args rel/relx.config:
@echo $@ not found. Creating a default version...
@mkdir -p rel
@sed "s/APP_NAME/$(ELIXIR_APP_NAME)/" \
< $(NERVES_SYSTEM)/scripts/project-skel/elixir/$@ > $@
rel/nerves_system_libs:
rm -f $@
ln -s $(ERL_LIB) $@
clean:
mix clean; rm -fr _build _images rel/$(ELIXIR_APP_NAME)
distclean: clean
-rm -fr ebin deps
.PHONY: deps burn burn-complete burn-upgrade clean distclean all elixir-first-time-setup compile release help