diff options
author | midipix <writeonce@midipix.org> | 2021-06-05 14:49:41 +0000 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2021-06-05 15:11:53 +0000 |
commit | 43fa717197aa3fc7dc2cddc44191da7ec89e013b (patch) | |
tree | f0727e36ec03768843d07d44ec3000e4e01283d7 /sofort/cfgtest | |
parent | bfa291c1b3bb4619c258b7c10d14a4a3261b27b5 (diff) | |
download | pemagine-43fa717197aa3fc7dc2cddc44191da7ec89e013b.tar.bz2 pemagine-43fa717197aa3fc7dc2cddc44191da7ec89e013b.tar.xz |
build system: cfgtest_compiler_switch(): distinguish 'switch' from 'ldflag'.
Diffstat (limited to 'sofort/cfgtest')
-rw-r--r-- | sofort/cfgtest/cfgtest.sh | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/sofort/cfgtest/cfgtest.sh b/sofort/cfgtest/cfgtest.sh index 692bfec..f66dde5 100644 --- a/sofort/cfgtest/cfgtest.sh +++ b/sofort/cfgtest/cfgtest.sh @@ -213,6 +213,8 @@ cfgtest_common_init() if [ "$mb_cfgtest_stdin_input" = 'no' ]; then if [ "$cfgtest_type" = 'lib' ]; then cfgtest_fmt='%s cfgtest_c3RyaWN0X21vZGUK.c -o a.out' + elif [ "$cfgtest_type" = 'ldflag' ]; then + cfgtest_fmt='%s cfgtest_c3RyaWN0X21vZGUK.c -o a.out' else cfgtest_fmt='%s -c cfgtest_c3RyaWN0X21vZGUK.c -o a.out' fi @@ -220,6 +222,8 @@ cfgtest_common_init() cfgtest_fmt='%s -c -xc - -o a.out' elif [ "$cfgtest_type" = 'lib' ]; then cfgtest_fmt='%s -xc - -o a.out' + elif [ "$cfgtest_type" = 'ldflag' ]; then + cfgtest_fmt='%s -xc - -o a.out' else cfgtest_fmt='%s -S -xc - -o -' fi @@ -232,6 +236,13 @@ cfgtest_common_init() "$mb_cfgtest_ldflags" \ "$cfgtest_libs") + elif [ "$cfgtest_type" = 'ldflag' ]; then + cfgtest_cmd=$(printf "$cfgtest_fmt %s %s %s" \ + "$mb_cfgtest_cc" \ + "$mb_cfgtest_cflags" \ + "$mb_cfgtest_ldflags" \ + "$cfgtest_switches") + elif [ "$cfgtest_type" = 'switch' ]; then cfgtest_cmd=$(printf "$cfgtest_fmt %s %s" \ "$mb_cfgtest_cc" \ @@ -248,6 +259,10 @@ cfgtest_common_init() cfgtest_inc= cfgtest_src="$cfgtest_code_snippet" + elif [ "$cfgtest_type" = 'ldflag' ]; then + cfgtest_inc= + cfgtest_src= + elif [ "$cfgtest_type" = 'switch' ]; then cfgtest_inc= cfgtest_src= @@ -270,7 +285,7 @@ cfgtest_common_init() printf ' \\\n\t%s' "$cfgtest_lib" >&3 done - elif [ "$cfgtest_type" = 'switch' ]; then + elif [ "$cfgtest_type" = 'switch' ] || [ "$cfgtest_type" = 'ldflag' ]; then for cfgtest_switch in $(printf '%s' "$cfgtest_switches"); do printf ' \\\n\t%s' "$cfgtest_switch" >&3 done @@ -583,9 +598,17 @@ cfgtest_compiler_switch() cfgtest_prolog 'compiler switch combination' "$cfgtest_switches" fi - cfgtest_code_snippet= - - cfgtest_common_init 'switch' + case "${1}" in + -Wl,*) + cfgtest_code_snippet='int main(void){return 0;}' + cfgtest_common_init 'ldflag' + ;; + + *) + cfgtest_code_snippet= + cfgtest_common_init 'switch' + ;; + esac # execute printf '%s' "$cfgtest_src" \ |