summaryrefslogtreecommitdiff
path: root/configure
blob: 4fe08766bfb2ed04d4c7144986a4869367f2044a (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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/bin/sh -e

#
# This file is part of musl-mod: modified version of Musl libc library.
# musl-mod in general and this file specifically are available under
# MIT license. See COPYRIGHT file.
#

defined() {
    [ x"$2" = x ] && echo $1 is undefined && exit 1
    echo $1 = $2
}

pexec() {
    echo $@
    $@
}

print_help() {
    cat <<EOF
$0: configuration script for compiling musl
  --help           print this help
  --prefix=<dir>   directory where to install musl
EOF
    exit 0
}

prefix=/tmp

for arg; do
    case $arg in
    --prefix=*)
        prefix=${arg#--prefix=}
        ;;
    --help)
        print_help
        ;;
    *)
        echo $args: unknown argument && exit 1
        ;;
    esac
done

: ${CC:=gcc}
: ${LD:=ld}

arch=x86_64

gcc_prefix=$(dirname $(gcc -print-libgcc-file-name))

tool_cflags="-Wall -nostdinc -Wno-main \
		-ffreestanding -fno-pic -fno-stack-protector \
		-Igenerated/include -Iarch/$arch \
		-I${gcc_prefix}/include -Iarch/generic"

cflags="$tool_cflags $CFLAGS"

echo prefix = $prefix >config.mk

[ -f tools/musl-make ] && exit 0

pexec $CC $cflags -c -o tools/common.o tools/common.c
pexec $CC $cflags -c -o tools/musl-make.o tools/musl-make.c
pexec $LD -nostdlib -o tools/musl-make tools/musl-make.o tools/common.o