summaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure64
1 files changed, 64 insertions, 0 deletions
diff --git a/configure b/configure
new file mode 100755
index 0000000..4fe0876
--- /dev/null
+++ b/configure
@@ -0,0 +1,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