summaryrefslogtreecommitdiffstats
path: root/ltnasm.sh
blob: 92c3c42ab41f8bf240f7e03a4c967b1ac2f8f491 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/sh

# Translate libtool supplied C-compiler options for NASM.
# libtool treats NASM like the C compiler, and may supply -f… options
# which are interpreted as the output file format by NASM, causing errors.
# Notably libtool will set -DPIC -fPIC and -fno-common;
# we want to use -DPIC by translating it to -DPIC=1, but remove everything else
#
# Theoretically the way the filtering is done here in a plain POSIX shell script,
# does mess up if there were spaces in any argument. However this will never happen
# since neither our filenames nor options do not contain spaces and source paths
# are not allowed to contain spaces by configure.

cmd=""
while [ "$#" -gt 0 ] ; do
    case "$1" in
        # NASM accepts both -f format and -fformat,
        # we always use the former, and libtool supplied
        # C-compiler options will always use the latter.
        -f) cmd="$cmd $1" ;;
        -f*) : ;;
        -DPIC) cmd="$cmd -DPIC=1" ;;
        *) cmd="$cmd $1" ;;
    esac
    shift
done

exec $cmd