Skip to content

Commit

Permalink
Check if yasm supports a nasm-specific syntax we use (it doesn't in 0…
Browse files Browse the repository at this point in the history
….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.
  • Loading branch information
icculus committed Jun 4, 2007
1 parent 04ee23e commit cc5bb94
Showing 1 changed file with 40 additions and 22 deletions.
62 changes: 40 additions & 22 deletions configure.in
Expand Up @@ -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)
Expand Down

0 comments on commit cc5bb94

Please sign in to comment.