mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-09-29 12:12:18 +00:00
57 lines
804 B
Bash
Executable File
57 lines
804 B
Bash
Executable File
#!/bin/sh
|
|
|
|
# This is designed to compile a single package to a single binary
|
|
# so it makes some assumptions about things to simplify config
|
|
# to output a single binary (in a tarball) just use -o file
|
|
# use --docker to output a tarball for input to docker build -
|
|
|
|
set -e
|
|
|
|
usage() {
|
|
echo "Usage: -o file"
|
|
exit 1
|
|
}
|
|
|
|
[ $# = 0 ] && usage
|
|
|
|
while [ $# -gt 0 ]
|
|
do
|
|
flag="$1"
|
|
case "$flag" in
|
|
-o)
|
|
[ $# -eq 1 ] && usage
|
|
out="$2"
|
|
mkdir -p "$(dirname $2)"
|
|
shift
|
|
;;
|
|
-l*)
|
|
LIBS="$LIBS $1"
|
|
shift
|
|
;;
|
|
*)
|
|
echo "Unknown option $1"
|
|
exit 1
|
|
esac
|
|
shift
|
|
done
|
|
|
|
[ -z "$out" ] && usage
|
|
|
|
package=$(basename "$out")
|
|
|
|
dir="/src/$package"
|
|
|
|
mkdir -p $dir
|
|
|
|
# untar input
|
|
tar xf - -C $dir
|
|
|
|
(
|
|
cd $dir
|
|
CFILES=$(find . -name '*.c')
|
|
cc -static -O2 -Wall -Werror -o ../../$out $CFILES $LIBS
|
|
)
|
|
|
|
tar cf - $out
|
|
exit 0
|