Major update to the autoconf script: cleanup and a nifty cpu detection code by Nach to optimize architecture properly with most cpus. OpenBSD guys, test this - I changed the frame pointer params along the way.

This commit is contained in:
grinvader
2005-10-23 19:17:00 +00:00
parent 1a54764bb5
commit adfa6806b0
3 changed files with 433 additions and 217 deletions

View File

@@ -92,7 +92,7 @@ PSR=parsegen
@CXX@ @CFLAGS@ -o $@ $< @CXX@ @CFLAGS@ -o $@ $<
%.o: %.c %.o: %.c
@CC@ @CFLAGS@ -I. -o $@ -c $< @CC@ @CFLAGS@ -o $@ -c $<
%.o: %.asm %.o: %.asm
@NASMPATH@ @NFLAGS@ -o $@ $< @NASMPATH@ @NFLAGS@ -o $@ $<
@@ -289,4 +289,4 @@ clean:
rm -f *.o ${CHIPDIR}/*.o ${CPUDIR}/*.o ${DOSDIR}/*.o ${EFFECTSDIR}/*.o ${GUIDIR}/*.o ${JMADIR}/*.o ${NETDIR}/*.o ${TOOLSDIR}/*.o ${VIDEODIR}/*.o ${WINDIR}/*.o ${ZIPDIR}/*.o ${PSR} temppsr.c @ZSNESEXE@ rm -f *.o ${CHIPDIR}/*.o ${CPUDIR}/*.o ${DOSDIR}/*.o ${EFFECTSDIR}/*.o ${GUIDIR}/*.o ${JMADIR}/*.o ${NETDIR}/*.o ${TOOLSDIR}/*.o ${VIDEODIR}/*.o ${WINDIR}/*.o ${ZIPDIR}/*.o ${PSR} temppsr.c @ZSNESEXE@
distclean: distclean:
rm -f *.o ${CHIPDIR}/*.o ${CPUDIR}/*.o ${DOSDIR}/*.o ${EFFECTSDIR}/*.o ${GUIDIR}/*.o ${JMADIR}/*.o ${NETDIR}/*.o ${TOOLSDIR}/*.o ${VIDEODIR}/*.o ${WINDIR}/*.o ${ZIPDIR}/*.o ${PSR} temppsr.c @ZSNESEXE@ Makefile config.cache config.log config.status config.h rm -f *.o ${CHIPDIR}/*.o ${CPUDIR}/*.o ${DOSDIR}/*.o ${EFFECTSDIR}/*.o ${GUIDIR}/*.o ${JMADIR}/*.o ${NETDIR}/*.o ${TOOLSDIR}/*.o ${VIDEODIR}/*.o ${WINDIR}/*.o ${ZIPDIR}/*.o ${PSR} temppsr.c @ZSNESEXE@ Makefile aclocal.m4 configure config.cache config.log config.status config.h

View File

@@ -31,8 +31,7 @@ AC_TRY_RUN([
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
char* char* my_strdup (char *str)
my_strdup (char *str)
{ {
char *new_str; char *new_str;
@@ -41,8 +40,7 @@ my_strdup (char *str)
new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char));
strcpy (new_str, str); strcpy (new_str, str);
} }
else else new_str = NULL;
new_str = NULL;
return new_str; return new_str;
} }
@@ -51,26 +49,26 @@ int main (int argc, char *argv[])
{ {
int major, minor, micro, zlib_major_version, zlib_minor_version, zlib_micro_version; int major, minor, micro, zlib_major_version, zlib_minor_version, zlib_micro_version;
char *zlibver; char *zlibver, *tmp_version;
char *tmp_version;
zlibver = ZLIB_VERSION; zlibver = ZLIB_VERSION;
{ FILE *fp = fopen("conf.zlibtest", "a"); FILE *fp = fopen("conf.zlibtest", "a");
if ( fp ) { if ( fp ) {
fprintf(fp, "%s", zlibver); fprintf(fp, "%s", zlibver);
fclose(fp); fclose(fp);
} }
}
/* HP/UX 9 (%@#!) writes to sscanf strings */ /* HP/UX 9 (%@#!) writes to sscanf strings */
tmp_version = my_strdup("$min_zlib_version"); tmp_version = my_strdup("$min_zlib_version");
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) { if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
printf("%s, bad version string for min_zlib_version.\n", "$min_zlib_version"); printf("%s, bad version string for\n\tmin_zlib_version... ", "$min_zlib_version");
exit(1); exit(1);
} }
if (sscanf(zlibver, "%d.%d.%d", &zlib_major_version, &zlib_minor_version, &zlib_micro_version) != 3) { if (sscanf(zlibver, "%d.%d.%d", &zlib_major_version, &zlib_minor_version, &zlib_micro_version) != 3) {
printf("%s, bad version string given by zlib, sometimes due to very old zlibs \n didnt correctly define their version. Please upgrade if you are running \n an old zlib.\n", "zlibver"); printf("%s, bad version string given\n", zlibver);
puts("\tby zlib, sometimes due to very old zlibs that didnt correctly");
printf("\tdefine their version. Please upgrade if you are running an\n\told zlib... ");
exit(1); exit(1);
} }
@@ -158,8 +156,7 @@ AC_TRY_RUN([
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
char* char* my_strdup (char *str)
my_strdup (char *str)
{ {
char *new_str; char *new_str;
@@ -168,8 +165,7 @@ my_strdup (char *str)
new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char));
strcpy (new_str, str); strcpy (new_str, str);
} }
else else new_str = NULL;
new_str = NULL;
return new_str; return new_str;
} }
@@ -178,29 +174,28 @@ int main (int argc, char *argv[])
{ {
int major, minor, micro, libpng_major_version, libpng_minor_version, libpng_micro_version; int major, minor, micro, libpng_major_version, libpng_minor_version, libpng_micro_version;
char *libpngver; char *libpngver, *tmp_version;
char *tmp_version;
libpngver = PNG_LIBPNG_VER_STRING; libpngver = PNG_LIBPNG_VER_STRING;
{ FILE *fp = fopen("conf.libpngtest", "a"); FILE *fp = fopen("conf.libpngtest", "a");
if ( fp ) { if ( fp ) {
fprintf(fp, "%s", libpngver); fprintf(fp, "%s", libpngver);
fclose(fp); fclose(fp);
} }
}
/* HP/UX 9 (%@#!) writes to sscanf strings */ /* HP/UX 9 (%@#!) writes to sscanf strings */
tmp_version = my_strdup("$min_libpng_version"); tmp_version = my_strdup("$min_libpng_version");
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) { if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
printf("%s, bad version string for min_libpng_version.\n", "$min_libpng_version"); printf("%s, bad version string for\n\tmin_libpng_version... ", "$min_libpng_version");
exit(1); exit(1);
} }
if (sscanf(libpngver, "%d.%d.%d", &libpng_major_version, &libpng_minor_version, &libpng_micro_version) != 3) { if (sscanf(libpngver, "%d.%d.%d", &libpng_major_version, &libpng_minor_version, &libpng_micro_version) != 3) {
printf("%s, bad version string given by libpng, sometimes due to very old libpngs \n didnt correctly define their version. Please upgrade if you are running \n an old libpng.\n", "libpngver"); printf("%s, bad version string given\n", libpngver);
puts("\tby libpng, sometimes due to very old libpngs that didnt correctly");
printf("\tdefine their version. Please upgrade if you are running an\n\told libpng... ");
exit(1); exit(1);
} }
if ((libpng_major_version > major) || if ((libpng_major_version > major) ||
((libpng_major_version == major) && (libpng_minor_version > minor)) || ((libpng_major_version == major) && (libpng_minor_version > minor)) ||
((libpng_major_version == major) && (libpng_minor_version == minor) && (libpng_micro_version >= micro))) ((libpng_major_version == major) && (libpng_minor_version == minor) && (libpng_micro_version >= micro)))
@@ -239,3 +234,215 @@ fi
dnl ---> dnl --->
]) ])
dnl -- End libpng autoconf macro dnl -- End libpng autoconf macro
dnl ----
dnl -- Begin custom cpu detection autoconf macro
dnl Copyright (c) 2005 Nach, grinvader
dnl Under the GPL License
dnl When copying, include from Begin to End custom cpu detection autoconf macro,
dnl including those tags, so others can easily copy it too.
dnl
dnl AM_CPU_DETECT([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
dnl Tests and reads the first entry in /proc/cpuinfo, outputs CPU_INFO
AC_DEFUN(AM_CPU_DETECT,
[
CPU_INFO=""
AC_MSG_CHECKING(for cpu info)
AC_ARG_ENABLE(cpucheck, [ --disable-cpucheck Do not try to autodetect cpu ],,enable_cpucheck=yes)
if test x$enable_cpucheck != xno; then
AC_TRY_RUN([
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char line[256], key[40], arg[216], *cpu = 0;
const char *pattern = " %39[^:]: %215[ -~]"; // for sscanf
char model_name[216], flags[216], cpu_family[216], vendor_id[216], model[216];
FILE *fp;
*model_name = 0;
*flags = 0;
*cpu_family = 0;
*vendor_id = 0;
*model = 0;
if ((fp = fopen("/proc/cpuinfo", "r")))
{
while (fgets(line, sizeof(line), fp) && sscanf(line, pattern, key, arg) == 2)
{
if (!strncmp(key, "model name", strlen("model name")) && !*model_name)
{ strcpy(model_name, arg); }
else if (!strncmp(key, "flags", strlen("flags")) && !*flags)
{ strcpy(flags, arg); }
else if (!strncmp(key, "cpu family", strlen("cpu family")) && !*cpu_family)
{ strcpy(cpu_family, arg); }
else if (!strncmp(key, "vendor_id", strlen("vendor_id")) && !*vendor_id)
{ strcpy(vendor_id, arg); }
else if (!strncmp(key, "model", strlen("model")) && !*model)
{ strcpy(model, arg); }
}
fclose(fp);
if (!strcmp(vendor_id, "AuthenticAMD") || strstr(model_name, "AMD"))
{
if (strstr(flags, "mmx"))
{
#if __GNUC__ > 2
if (strstr(flags, "3dnow"))
{
if (strstr(flags, "3dnowext"))
{
#if __GNUC__ > 3 || __GNUC_MINOR__ > 0
if (strstr(flags, "sse"))
{
#if __GNUC__ > 3 || __GNUC_MINOR__ > 3
if (strstr(flags, "sse2") && strstr(flags, "lm")) //Need two checks to protect Semprons
{
if (strstr(model_name, "Opteron")) { cpu = "opteron"; }
else { cpu = (strstr(model_name, "Athlon(tm) 64")) ? cpu = "athlon64" : "k8"; }
}
#endif
if (!cpu)
{
if (strstr(model_name, "Athlon(tm) 4")) { cpu = "athlon-4"; }
else { cpu = (strstr(model_name, "Athlon(tm) MP")) ? "athlon-mp" : "athlon-xp"; }
}
}
if (!cpu && (atoi(model) > 3)) { cpu = "athlon-tbird"; }
#endif
if (!cpu) { cpu = "athlon"; }
}
#if __GNUC__ > 3 || __GNUC_MINOR__ > 0
if (!cpu)
{
int model_num = atoi(model);
cpu = ((model_num == 9) || (model_num >= 13)) ? "k6-3" : "k6-2";
}
#endif
}
#endif
if (!cpu && (atoi(cpu_family) > 5)) { cpu = "k6"; }
}
}
else if (!strcmp(vendor_id, "GenuineIntel") || strstr(model_name, "Intel"))
{
#if __GNUC__ > 2
if (strstr(flags, "mmx"))
{
if (strstr(flags, "sse"))
{
if (strstr(flags, "sse2"))
{
#if __GNUC__ > 3 || __GNUC_MINOR__ > 2
if (strstr(flags, "pni"))
{
cpu = (strstr(flags, "lm")) ? "nocona" : "prescott";
}
#endif
if (!cpu)
{
if (strstr(model_name, "Pentium(R) M"))
{
#if __GNUC__ > 3 || __GNUC_MINOR__ > 3
cpu = "pentium-m";
#else
cpu = "pentium3";
#endif
}
else
{
#if __GNUC__ > 3 || __GNUC_MINOR__ > 2
if (strstr(model_name, "Mobile")) { cpu = "pentium4m"; }
#endif
if (!cpu) { cpu = "pentium4"; }
}
}
}
else { cpu = "pentium3"; }
}
else { cpu = (!strcmp(cpu_family, "6")) ? "pentium2" : "pentium-mmx"; }
}
if (!cpu)
{
int family = atoi(cpu_family);
if (family > 5) { cpu = "pentiumpro"; }
else if (family == 5) { cpu = "pentium"; }
}
#endif
}
#if __GNUC__ > 2
else if (strstr(model_name, "VIA"))
{
if (strstr(flags, "mmx"))
{
#if __GNUC__ > 3 || __GNUC_MINOR__ > 2
if (strstr(flags, "3dnow")) { cpu = "c3"; }
#if __GNUC__ > 3 || __GNUC_MINOR__ > 3
else if (strstr(flags, "sse")) { cpu = "c3-2"; }
#endif
#endif
}
}
else if (strstr(model_name, "WinChip"))
{
#if __GNUC__ > 3 || __GNUC_MINOR__ > 2
if (strstr(flags, "mmx"))
{
cpu = (strstr(flags, "3dnow")) ? "winchip2" : "winchip-c6";
}
#endif
}
#endif
if (!cpu)
{
int family = atoi(cpu_family);
if (family > 5) { cpu = "i686"; }
else if (family == 5) { cpu = "i586"; }
else if (family == 4) { cpu = "i486"; }
else { cpu = "i386"; }
}
if ((fp = fopen("conf.cpuchk", "a")))
{
fprintf(fp, "%s", (cpu) ? cpu : "");
fclose(fp);
return 0;
}
}
return 1;
}
],cpu_found=yes)
if test x$cpu_found = xyes; then
AC_MSG_RESULT(found)
CPU_INFO=$(<conf.cpuchk)
ifelse([$1], , :, [$1])
else
AC_MSG_RESULT(not found)
ifelse([$2], , :, [$2])
fi
rm conf.cpuchk
AC_SUBST(CPU_INFO)
else
AC_MSG_RESULT(disabled by user)
fi
])
dnl -- End custom cpu detection autoconf macro

View File

@@ -4,14 +4,14 @@ AC_INIT(init.asm)
AC_CONFIG_HEADER(config.h) AC_CONFIG_HEADER(config.h)
ISODATE=`date +%Y-%m-%d` ISODATE=`date +%Y-%m-%d`
AC_SUBST(ISODATE) AC_SUBST(ISODATE)
VERSION=1.42 VERSION=pre1.43
AC_SUBST(VERSION) AC_SUBST(VERSION)
X8664="false" X8664="false"
AC_SUBST(X8664) AC_SUBST(X8664)
AC_ARG_WITH(nasm-prefix,[ --with-nasm-prefix=PFX Prefix where nasm is installed (optional)], nasm_prefix="$withval", nasm_prefix="") AC_ARG_WITH(nasm-prefix,[ --with-nasm-prefix=PFX Prefix where nasm is installed (optional)], nasm_prefix="$withval", nasm_prefix="")
dnl -- Where is our compiler, and who are we compiling for? dnl -- Where is our compiler, and who are we compiling for?
CFLAGS="$CFLAGS -pipe -I. -Wall -I/usr/local/include -I/usr/include" CFLAGS="$CFLAGS -pipe -I. -I/usr/local/include -I/usr/include"
dnl -- You might wanna change -I/usr/include if you're trying to do this with dnl -- You might wanna change -I/usr/include if you're trying to do this with
dnl Mingw, because it doesnt have a standard file tree. Maybe if ming do this dnl Mingw, because it doesnt have a standard file tree. Maybe if ming do this
@@ -39,10 +39,6 @@ case "$target" in
CFLAGS="$CFLAGS -D__UNIXSDL__ -D__BEOS__" CFLAGS="$CFLAGS -D__UNIXSDL__ -D__BEOS__"
NFLAGS="$NFLAGS -D__UNIXSDL__ -D__BEOS__ -f elf -DELF" NFLAGS="$NFLAGS -D__UNIXSDL__ -D__BEOS__ -f elf -DELF"
;; ;;
*-*-*openbsd*)
CFLAGS="$CFLAGS -D__UNIXSDL__ -D__BSDSDL__"
NFLAGS="$NFLAGS -D__UNIXSDL__ -D__BSDSDL__ -DELF -f elf"
;;
*-*-*bsd*) *-*-*bsd*)
CFLAGS="$CFLAGS -D__UNIXSDL__ -D__BSDSDL__" CFLAGS="$CFLAGS -D__UNIXSDL__ -D__BSDSDL__"
NFLAGS="$NFLAGS -D__UNIXSDL__ -D__BSDSDL__ -DELF -f elf" NFLAGS="$NFLAGS -D__UNIXSDL__ -D__BSDSDL__ -DELF -f elf"
@@ -52,12 +48,11 @@ case "$target" in
NFLAGS="$NFLAGS -D__UNIXSDL__ -f win32" NFLAGS="$NFLAGS -D__UNIXSDL__ -f win32"
;; ;;
*) *)
AC_MSG_ERROR(This Target is Not Supported) AC_MSG_ERROR(This target is not supported)
;; ;;
esac esac
dnl Checks for libraries. dnl Checks for libraries.
dnl -- Where is libSDL and zlib, and do we want/have libPNG and OpenGL support? dnl -- Where is libSDL and zlib, and do we want/have libPNG and OpenGL support?
AM_PATH_SDL(1.2.0,,[AC_MSG_ERROR(SDL >= 1.2.0 is required)]) AM_PATH_SDL(1.2.0,,[AC_MSG_ERROR(SDL >= 1.2.0 is required)])
@@ -77,6 +72,7 @@ else
fi fi
dnl -- opengl stuff dnl -- opengl stuff
AC_ARG_ENABLE(opengl,[ --disable-opengl Build without opengl support],,enable_opengl=yes) AC_ARG_ENABLE(opengl,[ --disable-opengl Build without opengl support],,enable_opengl=yes)
AC_ARG_WITH(opengl-prefix,[ --with-opengl-prefix=PFX Prefix where opengl is installed (optional)], opengl_prefix="$withval", opengl_prefix="") AC_ARG_WITH(opengl-prefix,[ --with-opengl-prefix=PFX Prefix where opengl is installed (optional)], opengl_prefix="$withval", opengl_prefix="")
@@ -90,71 +86,84 @@ if test x$x_libraries != x; then
LDFLAGS="$LDFLAGS -L$x_libraries" LDFLAGS="$LDFLAGS -L$x_libraries"
fi fi
AC_CHECK_LIB(GL, glGetError,found_opengl="yes",,) AC_CHECK_LIB(GL, glGetError,found_opengl="yes",,)
fi
AC_MSG_CHECKING(for OpenGL)
if test x$enable_opengl != xno; then
if test x$found_opengl = xyes; then if test x$found_opengl = xyes; then
echo checking for OpenGL... yes AC_MSG_RESULT(yes)
LDFLAGS="$LDFLAGS -lGL" LDFLAGS="$LDFLAGS -lGL"
CFLAGS="$CFLAGS -D__OPENGL__" CFLAGS="$CFLAGS -D__OPENGL__"
NFLAGS="$NFLAGS -D__OPENGL__" NFLAGS="$NFLAGS -D__OPENGL__"
GL_DRAW="\${WINDIR}/gl_draw.o" GL_DRAW="\${WINDIR}/gl_draw.o"
else else
echo checking for OpenGL... no AC_MSG_RESULT(no)
fi fi
else else
echo checking for OpenGL... disabled by user AC_MSG_RESULT(disabled by user)
fi fi
dnl -- dnl --
dnl -- Various debug and optimization option checks dnl -- Various debug and optimization option checks
AC_ARG_ENABLE(debug, [ --enable-debug Build GDB Friendly binary (zsnesd) ],debug=yes) AC_ARG_ENABLE(debug, [ --enable-debug Build GDB friendly binary (zsnesd) ],debug=$enableval)
AC_MSG_CHECKING(if you want gdb friendly executable) AC_MSG_CHECKING(if you want gdb friendly executable)
if test x$debug = xyes; then if test x$debug = xyes; then
AC_MSG_RESULT(yes) AC_MSG_RESULT(yes)
dnl It is actually easier to debug zsnes with no optimization dnl It is easier to debug zsnes with no optimization enabled.
dnl enabled. CFLAGS="$CFLAGS -Wall -W -DDEBUG -O0 -fno-omit-frame-pointer -gstabs3"
NFLAGS="$NFLAGS -DDEBUG -g -F stabs -s -O0"
CFLAGS="$CFLAGS -DDEBUG -O0 -fomit-frame-pointer -ggdb3"
NFLAGS="$NFLAGS -DDEBUG -s -O0" dnl it works now
ZSNESEXE="zsnesd" ZSNESEXE="zsnesd"
else else
AC_MSG_RESULT(no) AC_MSG_RESULT(no)
CFLAGS="$CFLAGS -O3 -ffast-math -fomit-frame-pointer -fexpensive-optimizations -s"
NFLAGS="$NFLAGS -O1"
ZSNESEXE="zsnes" ZSNESEXE="zsnes"
AC_ARG_ENABLE(release, [ --enable-release Build ultra-optimized binary (zsnes) ],release=$enableval)
AC_MSG_CHECKING(if you want crazy optimizations)
if test x$release = xyes; then
AC_MSG_RESULT(yes)
CFLAGS="$CFLAGS -O3 -pipe -fomit-frame-pointer -ffast-math -fno-exceptions -fprefetch-loop-arrays -fno-rtti -frename-registers -fforce-addr -s"
NFLAGS="$NFLAGS -O99999999"
else
AC_MSG_RESULT(no)
CFLAGS="$CFLAGS -O2 -fomit-frame-pointer -s"
NFLAGS="$NFLAGS -O1"
fi fi
AC_MSG_CHECKING(which processor class to optimize for) AM_CPU_DETECT()
if test x$debug != xyes; then
AC_MSG_CHECKING(which processor arch to optimize for)
if test x$CPU_INFO = x ; then
case "$target" in case "$target" in
i486-*-*) x86_64-*-* | x86_64-*-*-*)
CFLAGS="$CFLAGS -march=i486" AC_MSG_RESULT(guessing x86-64)
AC_MSG_RESULT(486) CFLAGS="$CFLAGS -march=x86-64"
;; X8664="true"
i586-*-*)
CFLAGS="$CFLAGS -march=pentium"
AC_MSG_RESULT(586)
;; ;;
i686-*-*) i686-*-*)
CFLAGS="$CFLAGS -march=pentiumpro" AC_MSG_RESULT(guessing i686)
dnl CFLAGS="$CFLAGS -march=pentium3 -mmmx -msse -mfpmath=sse,387" CFLAGS="$CFLAGS -march=i686"
AC_MSG_RESULT(686)
;; ;;
x86_64-*-* | x86_64-*-*-*) i586-*-*)
CFLAGS="$CFLAGS -march=k8" AC_MSG_RESULT(guessing i586)
X8664="true" CFLAGS="$CFLAGS -march=i586"
AC_MSG_RESULT(x86-64) ;;
i486-*-*)
AC_MSG_RESULT(guessing i486)
CFLAGS="$CFLAGS -march=i486"
;; ;;
*) *)
AC_MSG_RESULT(386) AC_MSG_RESULT(guessing i386)
AC_MSG_WARN(*** This is probably not what you want use --target) CFLAGS="$CFLAGS -march=i386"
AC_MSG_WARN(*** This is probably not what you want *** use --target)
;; ;;
esac esac
else else
AC_MSG_RESULT(no optimization because debug enabled) AC_MSG_RESULT($CPU_INFO)
CFLAGS="$CFLAGS -march=$CPU_INFO"
fi
fi fi
dnl Checks for header files. dnl Checks for header files.
@@ -172,10 +181,10 @@ echo
echo ZSNES v$VERSION echo ZSNES v$VERSION
echo echo
echo "SDL support Version `$SDL_CONFIG --version`" echo "SDL support Version `$SDL_CONFIG --version`"
echo "NASM support `nasm -r`" echo "NASM support `nasm -v`"
echo "ZLib support Version $ZLIB_VERSION" echo "ZLib support Version $ZLIB_VERSION"
if test "$with_libpng" = "yes"; then if test "$with_libpng" = "yes"; then
echo "PNG support (png screenshots) Yes, version $LIBPNG_VERSION" echo "PNG support Yes, version $LIBPNG_VERSION"
elif test "$enable_libpng" = "no"; then elif test "$enable_libpng" = "no"; then
echo "PNG support Disabled by user" echo "PNG support Disabled by user"
else else