| |
| |
| |
| |
| BUILD_ARGS_SPEC=" |
| ARG_IPV4_ONLY:-4: |
| ARG_IPV6_ONLY:-6: |
| ARCH:arg:-a: |
| BUILD:arg:-b: |
| ARG_CLEAN:-c: |
| ARG_CLEAN_BUILDS:arg:-C: |
| ARG_AS_NEEDED:--as-needed: |
| ARG_DEBUG_MINIPIX:--debug-minipix: |
| ARG_RPM:--rpm: |
| ARG_OFFLINE:-N: |
| ARG_PACKAGE:-p: |
| ARG_PARALLEL:optarg:-P:auto |
| ARG_RELAXED:-R: |
| ARG_RESTART:arg:-r: |
| ARG_TARBALL:selfarg:-t: |
| ARG_TARBALL:selfarg:-t.bz2; |
| ARG_TARBALL:selfarg:-t.gz: |
| ARG_TARBALL:selfarg:-t.xz: |
| ARG_VERBOSE:selfarg:-v: |
| ARG_VERBOSE:selfarg:-vv: |
| ARG_VERBOSE:selfarg:-vvv: |
| ARG_XTRACE:-x:"; |
| |
| build_args() { |
| local _spec="${BUILD_ARGS_SPEC}" _spec_arg="" _found=""; |
| while [ ${#} -gt 0 ]; do |
| if [ "${1#-}" = "${1}" ]; then |
| break; |
| fi; |
| for _spec_arg in ${_spec}; do |
| case "${_spec_arg}" in |
| *:${1}:*) |
| case "${_spec_arg#*:}" in |
| arg:*) |
| ex_rtl_set_var_unsafe "${_spec_arg%%:*}" "${2}"; shift; ;; |
| optarg:*) |
| if [ -n "${2}" ]\ |
| && [ "x${2#-}" = "x${2}" ]; then |
| ex_rtl_set_var_unsafe "${_spec_arg%%:*}" "${2}"; |
| shift; |
| else |
| ex_rtl_set_var_unsafe "${_spec_arg%%:*}" \ |
| "${_spec_arg##*:}"; |
| fi; ;; |
| selfarg:*) |
| ex_rtl_set_var_unsafe "${_spec_arg%%:*}" "${1}"; ;; |
| *) |
| ex_rtl_set_var_unsafe "${_spec_arg%%:*}" 1; ;; |
| esac; _found=1; break; ;; |
| *) _found=0; ;; |
| esac; |
| done; |
| if [ "${_found:-0}" -eq 0 ]; then |
| exec cat etc/build.usage; |
| else |
| shift; |
| fi; |
| done; |
| if [ -n "${ARG_CLEAN_BUILDS}" ]; then |
| ARG_CLEAN_BUILDS="$(echo "${ARG_CLEAN_BUILDS}" | sed "s/,/ /g")"; |
| fi; |
| if [ -n "${ARG_CLEAN_BUILDS}" ]\ |
| || [ "${ARG_PACKAGE:-0}" -eq 1 ]\ |
| && [ -n "${ARG_TARBALL}" ]; then |
| unset ARG_TARBALL; |
| elif [ -n "${ARG_TARBALL}" ]; then |
| if [ "${ARG_TARBALL#-t.}" != "${ARG_TARBALL}" ]; then |
| TARBALL_SUFFIX="${ARG_TARBALL#-t.}"; |
| else |
| TARBALL_SUFFIX=xz; |
| fi; |
| fi; |
| case "${ARG_VERBOSE}" in |
| -v) ARG_VERBOSE=1; ;; |
| -vv) ARG_VERBOSE=2; ;; |
| -vvv) ARG_VERBOSE=3; ;; |
| esac; |
| if [ "${ARG_XTRACE:-0}" -eq 1 ]; then |
| ARG_VERBOSE=2; |
| fi; |
| if [ -n "${ARG_RESTART}" ]; then |
| if [ "${ARG_RESTART%:*}" != "${ARG_RESTART}" ]; then |
| ARG_RESTART_AT="${ARG_RESTART#*:}"; ARG_RESTART="${ARG_RESTART%:*}"; |
| else |
| ARG_RESTART_AT=ALL; |
| fi; |
| ARG_RESTART="$(echo "${ARG_RESTART}" | sed "s/,/ /g")"; |
| fi; |
| while [ ${#} -gt 0 ]; do |
| case "${1}" in |
| *=*) ex_rtl_set_var_unsafe "${1%%=*}" "${1#*=}"; ;; |
| *) BUILD_TARGETS="${BUILD_TARGETS:+${BUILD_TARGETS} }${1}"; ;; |
| esac; shift; done; |
| }; |
| |
| |