Packages
nerves_system_br
0.4.1
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
package/nerves-config/nerves-config.mk
#############################################################
#
# nerves-config
#
#############################################################
# Remember to bump the version when anything changes in this
# directory.
NERVES_CONFIG_SOURCE =
NERVES_CONFIG_VERSION = 0.3
NERVES_CONFIG_DEPENDENCIES = erlinit erlang host-erlang-relx
NERVES_CONFIG_PACKAGE_DIR = $(TOPDIR)/../package/nerves-config
NERVES_CONFIG_ERLANG_RELEASE_DIR = $(TARGET_DIR)/srv/erlang
ifeq ($(BR2_PACKAGE_NERVES_CONFIG_ERLANG),y)
NERVES_CONFIG_EXTRA_APPS += stdlib
endif
ifeq ($(BR2_PACKAGE_NERVES_CONFIG_ELIXIR),y)
NERVES_CONFIG_DEPENDENCIES += host-elixir
NERVES_CONFIG_RELX_LIBDIRS = -l $(HOST_DIR)/usr/lib/elixir/lib/elixir -l $(HOST_DIR)/usr/lib/elixir/lib/iex
NERVES_CONFIG_EXTRA_APPS += iex
endif
ifeq ($(BR2_PACKAGE_NERVES_CONFIG_LFE),y)
NERVES_CONFIG_DEPENDENCIES += lfe host-lfe
NERVES_CONFIG_EXTRA_APPS += lfe
endif
NERVES_CONFIG_ALL_APPS = $(subst $(space),$(comma),$(call qstrip,$(BR2_PACKAGE_NERVES_CONFIG_APPS) $(NERVES_CONFIG_EXTRA_APPS)))
define NERVES_CONFIG_BUILD_CMDS
# Create the relx configuration file
m4 -DAPPS="$(NERVES_CONFIG_ALL_APPS)" \
-DIS_ELIXIR=$(BR2_PACKAGE_NERVES_CONFIG_ELIXIR) \
$(NERVES_CONFIG_PACKAGE_DIR)/relx.config.m4 > $(@D)/relx.config
# Create the vm.args file for starting the Erlang runtime
m4 -DIS_ELIXIR=$(BR2_PACKAGE_NERVES_CONFIG_ELIXIR) \
-DIS_LFE=$(BR2_PACKAGE_NERVES_CONFIG_LFE) \
-DDISTRIBUTION=$(BR2_PACKAGE_NERVES_CONFIG_DISTRIBUTION) \
-DSNAME=$(BR2_PACKAGE_NERVES_CONFIG_SNAME) \
-DCOOKIE=$(BR2_PACKAGE_NERVES_CONFIG_COOKIE) \
$(NERVES_CONFIG_PACKAGE_DIR)/vm.args.m4 > $(@D)/vm.args
# Run relx to create a sample release. Real projects will have
# their own relx.config scripts and be in a separate repo, but
# this release is a good one for playing around with Nerves.
NERVES_SDK_SYSROOT=$(HOST_DIR) $(RELX) $(NERVES_CONFIG_RELX_LIBDIRS) --vm_args $(@D)/vm.args -c $(@D)/relx.config
endef
define NERVES_CONFIG_INSTALL_TARGET_CMDS
# Install an erlinit.config script based on the user's configuration
m4 -DVERBOSE_INIT=$(BR2_PACKAGE_NERVES_CONFIG_VERBOSE_INIT) \
-DHANG_ON_EXIT=$(BR2_PACKAGE_NERVES_CONFIG_HANG_ON_EXIT) \
-DPOWEROFF_ON_EXIT=$(BR2_PACKAGE_NERVES_CONFIG_POWEROFF_ON_EXIT) \
-DPORT=$(BR2_PACKAGE_NERVES_CONFIG_PORT) \
-DRELEASE_PATHS=$(BR2_PACKAGE_NERVES_CONFIG_RELEASE_PATHS) \
-DEXTRA_MOUNTS=$(BR2_PACKAGE_NERVES_CONFIG_EXTRA_MOUNTS) \
-DUNIQUEID_PROG=$(BR2_PACKAGE_NERVES_CONFIG_UNIQUEID_PROG) \
-DHOSTNAME_PATTERN=$(BR2_PACKAGE_NERVES_CONFIG_HOSTNAME_PATTERN) \
$(NERVES_CONFIG_PACKAGE_DIR)/erlinit.config.m4 > $(TARGET_DIR)/etc/erlinit.config
# Copy the release that starts the shell over to the target
rm -fr $(NERVES_CONFIG_ERLANG_RELEASE_DIR)
mkdir -p $(NERVES_CONFIG_ERLANG_RELEASE_DIR)
cp -r $(@D)/_rel/*/* $(NERVES_CONFIG_ERLANG_RELEASE_DIR)
endef
# This is tricky. We want the squashfs created by Buildroot to have everything
# except for the OTP release. The squashfs tools can only append to filesystems,
# so we'll want to append OTP releases frequently. If it were possible to modify
# a squashfs after the fact, then we could skip this part, but this isn't possible
# on non-Linux platforms (i.e. no fakeroot).
ROOTFS_SQUASHFS_ARGS += -e srv
$(eval $(generic-package))