From a18b73adad8a72c2ceb3782477f946b70ca6eeea Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Fri, 19 Aug 2022 23:50:54 +0300 Subject: Add compile and link options to build scripts --- build.sh.in | 51 ++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 11 deletions(-) (limited to 'build.sh.in') diff --git a/build.sh.in b/build.sh.in index 2260b1f..f9279b7 100644 --- a/build.sh.in +++ b/build.sh.in @@ -3,7 +3,7 @@ # file : build.sh.in # license : MIT; see accompanying LICENSE file -usage="Usage: $0 [-h|--help] [] []" +usage="Usage: $0 [-h|--help] [] [--] [] [-- ]" # Package repository URL (or path). # @@ -68,8 +68,6 @@ make= make_options= verbose= -cxx= - while test $# -ne 0; do case "$1" in -h|--help) @@ -287,24 +285,53 @@ while test $# -ne 0; do verbose="$1" shift ;; - *) - cxx="$1" + --) shift break ;; + *) + break + ;; esac done -if test -z "$cxx"; then +# Compiler. +# +if test $# -eq 0; then diag "error: compiler executable expected" diag "$usage" exit 1 +else + cxx="$1" + shift fi -# Place default into the $@ array. +# Compile and link options. # -if test $# -eq 0; then - set -- -O3 +compile_ops= +link_ops= + +while test $# -ne 0; do + if test "$1" != "--"; then + compile_ops="$compile_ops $1" + shift + else + shift + break + fi +done + +while test $# -ne 0; do + link_ops="$link_ops $1" + shift +done + +if test -z "$compile_ops"; then + compile_ops=-O3 +fi + +if test -z "$link_ops"; then + link_ops="[null]" fi # Merge jobs and make_options into make. @@ -597,7 +624,8 @@ if test "$local" = true; then run build2/build2/b-boot $verbose configure \ config.config.hermetic=true \ config.cxx="$cxx" \ -config.cc.coptions="$*" \ +config.cc.coptions="${compile_ops# }" \ +config.cc.loptions="${link_ops# }" \ config.bin.lib=shared \ config.bin.rpath="$conf_rpath" \ config.install.root="$idir" \ @@ -687,7 +715,8 @@ run "$bpkg_stage" $verbose create \ cc \ config.config.hermetic=true \ config.cxx="$cxx" \ -config.cc.coptions="$*" \ +config.cc.coptions="${compile_ops# }" \ +config.cc.loptions="${link_ops# }" \ config.bin.lib=shared \ config.bin.rpath="$conf_rpath" \ config.install.root="$idir" \ -- cgit v1.1