This commit is contained in:
2026-03-29 14:01:52 +03:00
commit 0611279128
210 changed files with 60454 additions and 0 deletions

229
scripts/configure.sh Normal file
View File

@@ -0,0 +1,229 @@
#!/bin/sh
#
# Copyright 2005 Timo Hirvonen
#
# This file is licensed under the GPLv2.
. scripts/utils.sh || exit 1
. scripts/checks.sh || exit 1
# Usage: parse_command_line "$@"
# USAGE string must be defined in configure (used for --help)
parse_command_line()
{
while test $# -gt 0
do
case $1 in
--help)
show_usage
;;
--prefix=*|--bindir=*|--datadir=*|--libdir=*|--mandir=*|--docdir=*)
# aliases for compatibility with common autoconf options
# https://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/Installation-Directory-Variables.html
_var=`echo "$1" | sed "s/--//" | sed "s/=.*//"`
_val=`echo "$1" | sed "s/--${_var}=//"`
set_var "$_var" "$_val"
;;
-f)
shift
test $# -eq 0 && die "-f requires an argument"
. "$1"
;;
-*)
die "unrecognized option \`$1'"
;;
*=*)
_var=`echo "$1" | sed "s/=.*//"`
_val=`echo "$1" | sed "s/${_var}=//"`
set_var "$_var" "$_val"
;;
*)
die "unrecognized argument \`$1'"
;;
esac
shift
done
}
# check function [variable]
#
# Example:
# check check_cc
# check check_vorbis CONFIG_VORBIS
check()
{
argc check $# 1 2
if test $# -eq 1
then
$1 || die "configure failed."
return
fi
# optional feature
case `get_var $2` in
n)
;;
y)
$1 || die "configure failed."
;;
a|'')
if $1
then
set_var $2 y
else
set_var $2 n
fi
;;
*)
die "invalid value for $2. 'y', 'n', 'a' or '' expected"
;;
esac
}
# Set and register variable to be added to config.mk
#
# @name name of the variable
# @value value of the variable
makefile_var()
{
argc makefile_var $# 2 2
set_var $1 "$2"
makefile_vars $1
}
# Register variables to be added to config.mk
makefile_vars()
{
makefile_variables="$makefile_variables $*"
}
# generate config.mk
generate_config_mk()
{
CFLAGS="$CFLAGS $EXTRA_CFLAGS"
CXXFLAGS="$CXXFLAGS $EXTRA_CXXFLAGS"
if test -z "$GINSTALL"
then
GINSTALL=`path_find ginstall`
test "$GINSTALL" || GINSTALL=install
fi
# $PWD is useless!
topdir=`pwd`
makefile_vars GINSTALL topdir
__tmp=`tmp_file config.mk`
for __i in $makefile_variables
do
echo "$__i = `get_var $__i`"
done > $__tmp
update_file $__tmp config.mk
}
# -----------------------------------------------------------------------------
# Config header generation
# Simple interface
#
# Guesses variable types:
# y or n -> bool
# [0-9]+ -> int
# anything else -> str
#
# Example:
# CONFIG_FOO=y # bool
# VERSION=2.0.1 # string
# DEBUG=1 # int
# config_header config.h CONFIG_FOO VERSION DEBUG
config_header()
{
argc config_header $# 2
config_header_begin "$1"
shift
while test $# -gt 0
do
__var=`get_var $1`
case "$__var" in
[yn])
config_bool $1
;;
*)
if test "$__var" && test "$__var" = "`echo $__var | sed 's/[^0-9]//g'`"
then
config_int $1
else
config_str $1
fi
;;
esac
shift
done
config_header_end
}
# Low-level interface
#
# Example:
# config_header_begin config.h
# config_str PACKAGE VERSION
# config_bool CONFIG_ALSA
# config_header_end
config_header_begin()
{
argc config_header_begin $# 1 1
config_header_file="$1"
config_header_tmp=`tmp_file config_header`
__def=`echo $config_header_file | to_upper | sed 's/[-\.\/]/_/g'`
cat <<EOF > "$config_header_tmp"
#ifndef $__def
#define $__def
EOF
}
config_str()
{
while test $# -gt 0
do
echo "#define $1 \"`get_var $1`\"" >> "$config_header_tmp"
shift
done
}
config_int()
{
while test $# -gt 0
do
echo "#define $1 `get_var $1`" >> "$config_header_tmp"
shift
done
}
config_bool()
{
while test $# -gt 0
do
case "`get_var $1`" in
n)
echo "/* #define $1 */" >> "$config_header_tmp"
;;
y)
echo "#define $1 1" >> "$config_header_tmp"
;;
*)
die "bool '$1' has invalid value '`get_var $1`'"
;;
esac
shift
done
}
config_header_end()
{
argc config_header_end $# 0 0
echo "" >> "$config_header_tmp"
echo "#endif" >> "$config_header_tmp"
mkdir -p `dirname "$config_header_file"`
update_file "$config_header_tmp" "$config_header_file"
}