diff --git a/make.sh b/make.sh index 6cd8b53af..2f629d73d 100755 --- a/make.sh +++ b/make.sh @@ -313,6 +313,8 @@ exiterror() { } prepareenv() { + local network="false" + # Are we running the right shell? if [ -z "${BASH}" ]; then exiterror "BASH environment variable is not set. You're probably running the wrong shell." @@ -339,6 +341,10 @@ prepareenv() { required_space="${1#--required-space=}" ;; + --network) + network="true" + ;; + *) exiterror "Unknown argument: ${1}" ;; @@ -461,6 +467,26 @@ prepareenv() { # Mount the images directory mount --bind "${IMAGES_DIR}" "${BUILD_DIR}/usr/src/images" + # Bind-mount files requires for networking if requested + if [ "${network}" = "true" ]; then + local file + + for file in /etc/resolv.conf /etc/hosts; do + # Skip if the source files does not exist + if [ ! -e "${file}" ]; then + continue + fi + + # Create the destination if it does not exist + if [ ! -e "${BUILD_DIR}/${file}" ]; then + touch "${BUILD_DIR}/${file}" + fi + + # Mount the file read-only + mount --bind -o ro "${file}" "${BUILD_DIR}/${file}" + done + fi + # Configure the ccache export CCACHE_TEMPDIR="/tmp" export CCACHE_COMPILERCHECK="string:toolchain-${TOOLCHAINVER} ${BUILD_ARCH}" @@ -2329,7 +2355,7 @@ shell) # enter a shell inside LFS chroot # may be used to changed kernel settings - prepareenv + prepareenv --network entershell ;; clean)