multilib-fix: simplify interface
Don't use --basename && --destdir but rather --file only.
This commit is contained in:
parent
51d455d0ea
commit
ccd34dc8ab
67
multilib-fix
67
multilib-fix
@ -15,15 +15,13 @@ opt_arch=$(uname -i)
|
|||||||
# See rhbz#1242873 for more info.
|
# See rhbz#1242873 for more info.
|
||||||
test "$opt_arch" = ppc64p7 && opt_arch=ppc64
|
test "$opt_arch" = ppc64p7 && opt_arch=ppc64
|
||||||
|
|
||||||
opt_destdir=
|
|
||||||
opt_basename=
|
|
||||||
opt_buildroot=$(pwd)
|
opt_buildroot=$(pwd)
|
||||||
opt_verbose=:
|
opt_verbose=:
|
||||||
opt_additional_suffix=
|
opt_additional_suffix=
|
||||||
|
|
||||||
# TODO: we could pretty easily implement other then 'cpp-header' stubs, if the
|
# TODO: we could pretty easily implement other then 'cpp-header' stubs, if the
|
||||||
# target file type allows some kind of "transparent" file inclusion. For
|
# target file type allows some kind of "transparent" file inclusion. For
|
||||||
# example shell scripts might use '. "${opt_destdir}/${opt_basename}_x86_64.sh'.
|
# example shell scripts might use '. "${destdir}/${filename}_x86_64.sh'.
|
||||||
print_stub ()
|
print_stub ()
|
||||||
{
|
{
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
@ -40,21 +38,21 @@ cat <<EOF
|
|||||||
* But that option is deprecated anyway.
|
* But that option is deprecated anyway.
|
||||||
*/
|
*/
|
||||||
#if defined(__x86_64__)
|
#if defined(__x86_64__)
|
||||||
#include "${opt_basename}${opt_additional_suffix}_x86_64.h"
|
#include "${filename}${opt_additional_suffix}_x86_64.h"
|
||||||
#elif defined(__i386__)
|
#elif defined(__i386__)
|
||||||
#include "${opt_basename}${opt_additional_suffix}_i386.h"
|
#include "${filename}${opt_additional_suffix}_i386.h"
|
||||||
#elif defined(__ppc64__) || defined(__powerpc64__)
|
#elif defined(__ppc64__) || defined(__powerpc64__)
|
||||||
#include "${opt_basename}${opt_additional_suffix}_ppc64.h"
|
#include "${filename}${opt_additional_suffix}_ppc64.h"
|
||||||
#elif defined(__ppc__) || defined(__powerpc__)
|
#elif defined(__ppc__) || defined(__powerpc__)
|
||||||
#include "${opt_basename}${opt_additional_suffix}_ppc.h"
|
#include "${filename}${opt_additional_suffix}_ppc.h"
|
||||||
#elif defined(__s390x__)
|
#elif defined(__s390x__)
|
||||||
#include "${opt_basename}${opt_additional_suffix}_s390x.h"
|
#include "${filename}${opt_additional_suffix}_s390x.h"
|
||||||
#elif defined(__s390__)
|
#elif defined(__s390__)
|
||||||
#include "${opt_basename}${opt_additional_suffix}_s390.h"
|
#include "${filename}${opt_additional_suffix}_s390.h"
|
||||||
#elif defined(__sparc__) && defined(__arch64__)
|
#elif defined(__sparc__) && defined(__arch64__)
|
||||||
#include "${opt_basename}${opt_additional_suffix}_sparc64.h"
|
#include "${filename}${opt_additional_suffix}_sparc64.h"
|
||||||
#elif defined(__sparc__)
|
#elif defined(__sparc__)
|
||||||
#include "${opt_basename}${opt_additional_suffix}_sparc.h"
|
#include "${filename}${opt_additional_suffix}_sparc.h"
|
||||||
#endif
|
#endif
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
@ -72,15 +70,13 @@ original file is moved to unique architecture-specific location. This should be
|
|||||||
absolutely safe operation (effects of '#include <HEADER.h>' are unchanged.
|
absolutely safe operation (effects of '#include <HEADER.h>' are unchanged.
|
||||||
|
|
||||||
To allow us to do incompatible changes in this script, packagers should use this
|
To allow us to do incompatible changes in this script, packagers should use this
|
||||||
script only through %ml_fix_c_header wrapping macro.
|
script only through available RPM macros.
|
||||||
|
|
||||||
--destdir absolute path name where the old header file is stored, e.g.
|
|
||||||
/some/pat
|
|
||||||
--basename when you deal with '/some/path/test.h', specify 'test'
|
|
||||||
--buildroot prefix (directory where we play with installed files, usually
|
--buildroot prefix (directory where we play with installed files, usually
|
||||||
after 'make install DESTDIR=buildroot')
|
after 'make install DESTDIR=buildroot')
|
||||||
|
--file for example /some/path/test.h
|
||||||
--additional-suffix we usually move 'test.h' to 'test_\$ARCH.h'. However
|
--additional-suffix we usually move 'test.h' to 'test_\$ARCH.h'. However
|
||||||
this file could already exit. With this option the multilib
|
this file could already exist. With this option the multilib
|
||||||
file will be named 'test_\$ARCH\$SUFFIX.h'
|
file will be named 'test_\$ARCH\$SUFFIX.h'
|
||||||
--verbose print some useful information
|
--verbose print some useful information
|
||||||
--help show this help
|
--help show this help
|
||||||
@ -112,20 +108,10 @@ while test $# -gt 0
|
|||||||
do
|
do
|
||||||
_opt=$1 ; shift
|
_opt=$1 ; shift
|
||||||
case $_opt in
|
case $_opt in
|
||||||
--destdir)
|
--buildroot|--arch|--additional-suffix|--file)
|
||||||
opt_destdir=$1 ; shift || die "$_opt requires argument"
|
_raw_opt=$(echo "$_opt" | sed -e 's/^--//' -e 's/-/_/g')
|
||||||
;;
|
eval "opt_$_raw_opt=\$1"
|
||||||
--basename)
|
shift || die "$_opt requires argument"
|
||||||
opt_basename=$1 ; shift || die "$_opt require argument"
|
|
||||||
;;
|
|
||||||
--buildroot)
|
|
||||||
opt_buildroot=$1 ; shift || die "$_opt require argument"
|
|
||||||
;;
|
|
||||||
--arch)
|
|
||||||
opt_arch=$1 ; shift || die "$_opt require argument"
|
|
||||||
;;
|
|
||||||
--additional-suffix)
|
|
||||||
opt_additional_suffix=$1 ; shift || die "$_opt require argument"
|
|
||||||
;;
|
;;
|
||||||
--help)
|
--help)
|
||||||
print_help 0
|
print_help 0
|
||||||
@ -137,14 +123,29 @@ do
|
|||||||
done
|
done
|
||||||
$error_occurred && print_help 1
|
$error_occurred && print_help 1
|
||||||
|
|
||||||
for i in arch buildroot destdir basename
|
for i in arch buildroot file
|
||||||
do
|
do
|
||||||
eval "test -z \"\$opt_$i\"" && error "--$i needs to be set"
|
eval "test -z \"\$opt_$i\"" && error "--$i needs to be set"
|
||||||
done
|
done
|
||||||
$error_occurred && print_help 1
|
$error_occurred && print_help 1
|
||||||
|
|
||||||
original_file="$opt_buildroot$opt_destdir/$opt_basename".h
|
# --> /buildroot/usr/include/test.h
|
||||||
multilib_file="$opt_buildroot$opt_destdir/$opt_basename${opt_additional_suffix}_$opt_arch".h
|
original_file="$opt_buildroot$opt_file"
|
||||||
|
|
||||||
|
# --> /buildroot/usr/include
|
||||||
|
destdir=$(dirname "$original_file")
|
||||||
|
|
||||||
|
# --> test.h
|
||||||
|
orig_basename=$(basename "$original_file")
|
||||||
|
|
||||||
|
# --> test
|
||||||
|
filename=${orig_basename%%.[a-zA-Z0-9_]}
|
||||||
|
|
||||||
|
# --> .h
|
||||||
|
suffix=${orig_basename##${filename}}
|
||||||
|
|
||||||
|
# --> ../test_x86_64.h (on x86_64)
|
||||||
|
multilib_file="$destdir/$filename${opt_additional_suffix}_$opt_arch$suffix"
|
||||||
|
|
||||||
test -f "$original_file" || die "can't find '$original_file'"
|
test -f "$original_file" || die "can't find '$original_file'"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user