Check if yasm supports a nasm-specific syntax we use (it doesn't in 0.5.0,
which is still common in Linux distros, and does in 0.6.0). Disable it if we don't, attempting to fallback to using nasm. Thanks to Mike Frysinger for the patch. Fixes Bugzilla #393. --HG-- branch : SDL-1.2 extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402328
This commit is contained in:
parent
a0395a876c
commit
f1107d9179
1 changed files with 40 additions and 22 deletions
62
configure.in
62
configure.in
|
@ -662,38 +662,56 @@ CheckNASM()
|
|||
AC_HELP_STRING([--enable-nasm], [use nasm assembly blitters on x86 [[default=yes]]]),
|
||||
, enable_nasm=yes)
|
||||
if test x$enable_video = xyes -a x$enable_assembly = xyes -a x$enable_nasm = xyes; then
|
||||
CompileNASM()
|
||||
{
|
||||
# Usage: CompileNASM <filename>
|
||||
AC_MSG_CHECKING(to see if $NASM supports $1)
|
||||
if $NASM $NASMFLAGS $1 -o $1.o >&AS_MESSAGE_LOG_FD 2>&1; then
|
||||
CompileNASM_ret="yes"
|
||||
else
|
||||
CompileNASM_ret="no"
|
||||
fi
|
||||
rm -f $1 $1.o
|
||||
AC_MSG_RESULT($CompileNASM_ret)
|
||||
test "$CompileNASM_ret" = "yes"
|
||||
}
|
||||
|
||||
if test x"$NASMFLAGS" = x; then
|
||||
case $ARCH in
|
||||
win32)
|
||||
NASMFLAGS="-f win32"
|
||||
;;
|
||||
openbsd)
|
||||
NASMFLAGS="-f aoutb"
|
||||
;;
|
||||
macosx)
|
||||
NASMFLAGS="-f macho"
|
||||
;;
|
||||
*)
|
||||
NASMFLAGS="-f elf"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
AC_PATH_PROG(NASM, yasm)
|
||||
echo "%ifidn __OUTPUT_FORMAT__,elf" > unquoted-sections
|
||||
echo "section .note.GNU-stack noalloc noexec nowrite progbits" >> unquoted-sections
|
||||
echo "%endif" >> unquoted-sections
|
||||
CompileNASM unquoted-sections || NASM=""
|
||||
|
||||
if test "x$NASM" = x -o "x$NASM" = x'"$NASM"'; then
|
||||
$as_unset ac_cv_path_NASM
|
||||
AC_PATH_PROG(NASM, nasm)
|
||||
fi
|
||||
if test "x$NASM" != x -a "x$NASM" != x'"$NASM"'; then
|
||||
AC_DEFINE(SDL_HERMES_BLITTERS)
|
||||
SOURCES="$SOURCES $srcdir/src/hermes/*.asm"
|
||||
if test x"$NASMFLAGS" = x; then
|
||||
case $ARCH in
|
||||
win32)
|
||||
NASMFLAGS="-f win32"
|
||||
;;
|
||||
openbsd)
|
||||
NASMFLAGS="-f aoutb"
|
||||
;;
|
||||
macosx)
|
||||
NASMFLAGS="-f macho"
|
||||
;;
|
||||
*)
|
||||
NASMFLAGS="-f elf"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
NASMFLAGS="$NASMFLAGS -i $srcdir/src/hermes/"
|
||||
|
||||
dnl See if hidden visibility is supported
|
||||
echo "GLOBAL _bar:function hidden" > nasm_vis.asm
|
||||
echo "_bar:" >>nasm_vis.asm
|
||||
if $NASM $NASMFLAGS nasm_vis.asm -o nasm_vis.o >&AS_MESSAGE_LOG_FD 2>&1; then
|
||||
NASMFLAGS="$NASMFLAGS -DHIDDEN_VISIBILITY"
|
||||
fi
|
||||
rm -f nasm_vis.asm nasm_vis.o
|
||||
echo "GLOBAL _bar:function hidden" > symbol-visibility
|
||||
echo "_bar:" >> symbol-visibility
|
||||
CompileNASM symbol-visibility && NASMFLAGS="$NASMFLAGS -DHIDDEN_VISIBILITY"
|
||||
|
||||
AC_SUBST(NASM)
|
||||
AC_SUBST(NASMFLAGS)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue