From: Charles McGarvey Date: Thu, 24 Sep 2009 05:51:31 +0000 (-0600) Subject: new win32 resource file; better dependency checks X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=commitdiff_plain;h=9351bfa7871c88a5ad6e63f1d9c4483f50e4fed1 new win32 resource file; better dependency checks --- diff --git a/configure.ac b/configure.ac index 11fbb55..3912932 100644 --- a/configure.ac +++ b/configure.ac @@ -6,7 +6,7 @@ AC_PREREQ([2.60]) -AC_INIT([Yoink], [0.1], [onefriedrice@brokenzipper.com], [yoink]) +AC_INIT([Yoink], [0.1], [chaz@dogcows.com], [yoink]) AC_CANONICAL_TARGET @@ -34,18 +34,27 @@ AM_PROG_CC_C_O case "${host}" in *mingw32*) - MINGW32=yes - WIN32=yes + MINGW32=yes + WIN32=yes + AC_PATH_PROGS([WINDRES], [windres $host_alias-windres $host_os-windres]) + if test "x$WINDRES" = x + then + AC_MSG_ERROR([windres could not be found]) + fi + AC_SUBST(WINDRES) ;; *cygwin*) - CYGWIN=yes - WIN32=yes + CYGWIN=yes + WIN32=yes ;; *-apple-darwin*) - MACOSX=yes - LIBS="$LIBS -Wl,-framework" + MACOSX=yes + LIBS="$LIBS -Wl,-framework" + ;; esac +AM_CONDITIONAL([WIN32], test "$WIN32" = "yes") + # # Checks for configuration arguments. @@ -85,14 +94,15 @@ then if test x$WIN32 != xyes then +# i haven't had much success with gprof profiling on win32 profile=yes fi fi if test x$debug = xyes then - CFLAGS="$CFLAGS -Wall -O0 -gstabs -DDEBUG" - CXXFLAGS="$CXXFLAGS -Wall -O0 -gstabs -DDEBUG" + CFLAGS="$CFLAGS -Wall -O0 -DDEBUG" + CXXFLAGS="$CXXFLAGS -Wall -O0 -DDEBUG" else CFLAGS="$CFLAGS -O2 -DNDEBUG" CXXFLAGS="$CXXFLAGS -O2 -DNDEBUG" @@ -114,7 +124,6 @@ AC_DEFINE_UNQUOTED([YOINK_LOGLEVEL], [$log_level], [Define to detail level of logging.]) - if test "x$prefix" = xNONE then prefix="$ac_default_prefix" @@ -143,7 +152,27 @@ AC_DEFINE_UNQUOTED([YOINK_CONFIGFILES], ["$CONFIGFILES"], # -# Checks for typedefs, structures, and compiler characteristics. +# Split the version number into components. +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +VERSION_MAJOR=$(echo $VERSION | cut -d. -f1) +VERSION_MINOR=$(echo $VERSION | cut -d. -f2) +VERSION_REVISION=$(echo $VERSION | cut -d. -f3) + +AC_DEFINE_UNQUOTED([VERSION_MAJOR], [${VERSION_MAJOR:-0}], + [Define to major version number component.]) + +AC_DEFINE_UNQUOTED([VERSION_MINOR], [${VERSION_MINOR:-0}], + [Define to minor version number component.]) + +AC_DEFINE_UNQUOTED([VERSION_REVISION], [${VERSION_REVISION:-0}], + [Define to revision version number component.]) + +# these are used in src/yoink.rc + + +# +# Checks for system functions/headers and compiler characteristics. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ AC_C_STRINGIZE @@ -155,98 +184,91 @@ AC_TYPE_UINT32_T AC_TYPE_SIZE_T AC_TYPE_SSIZE_T - -# -# Checks for system functions. -#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - AC_FUNC_ERROR_AT_LINE AC_FUNC_STRTOD AC_CHECK_FUNCS([nanosleep strchr strcspn strrchr strstr]) - -# -# Checks for header files. -#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - AC_HEADER_STDBOOL AC_HEADER_STDC AC_CHECK_HEADERS([stddef.h stdint.h stdlib.h string.h unistd.h]) + +# +# Checks for build dependencies. +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +##### boost ##### +website="http://www.boost.org/" BOOST_SMART_PTR BOOST_STRING_ALGO BOOST_BIND BOOST_FUNCTION +##### SDL ##### +website="http://www.libsdl.org/" AM_PATH_SDL([1.2.10], [CFLAGS="$CFLAGS $SDL_CFLAGS" CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" LIBS="$LIBS $SDL_LIBS"]) +##### opengl, glu ##### +website="http://www.mesa3d.org/" AC_CHECK_HEADERS([GL/gl.h GL/glu.h],, - [missing="$missing OpenGL"]) - -AC_CHECK_HEADERS([AL/al.h AL/alut.h],, - [missing="$missing OpenAL"]) - -AC_CHECK_HEADERS([SDL/SDL_image.h],, - [missing="$missing SDL_image"]) - -AC_CHECK_HEADERS([vorbis/codec.h vorbis/vorbisfile.h],, - [missing="$missing libvorbis"]) - -if test "x$missing" != x -then - echo "** Required header files from these libraries are missing:" - for header in $missing - do - echo "** $header" - done - AC_MSG_ERROR([please install missing dependencies]) -fi - - -# -# Checks for libraries. -#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - + [missing=yes + echo "***** Missing GL headers ($website) *****"]) if test x$WIN32 == xyes then # autoconf library search macro doesn't find opengl32 on windows because it uses # different name hashing, but it links fine; assume it's there LIBS="$LIBS -lglu32 -lopengl32" else - AC_SEARCH_LIBS([gluDisk], [GLU MesaGLU],, - [missing="$missing GLU"]) - AC_SEARCH_LIBS([glEnable], [GL MesaGL],, - [missing="$missing OpenGL"]) + [missing=yes + echo "***** Missing libGL ($website) *****"]) + AC_SEARCH_LIBS([gluDisk], [GLU MesaGLU],, + [missing=yes + echo "***** Missing libGLU ($website) *****"]) fi +##### openal, alut ##### +website="http://connect.creativelabs.com/openal/" +AC_CHECK_HEADERS([AL/al.h AL/alut.h],, + [missing=yes + echo "***** Missing OpenAL headers ($website) *****"]) AC_SEARCH_LIBS([alEnable], [openal openal32],, - [missing="$missing OpenAL"]) - + [missing=yes + echo "***** Missing libopenal ($website) *****"]) AC_SEARCH_LIBS([alutInit], [alut],, - [missing="$missing ALUT"]) + [missing=yes + echo "***** Missing libalut ($website) *****"]) +##### SDL_image ##### +website="http://www.libsdl.org/projects/SDL_image/" +AC_CHECK_HEADERS([SDL/SDL_image.h],, + [missing=yes + echo "***** Missing SDL_image header ($website) *****"]) AC_SEARCH_LIBS([IMG_Load], [SDL_image],, - [missing="$missing SDL_image"]) + [missing=yes + echo "***** Missing libSDL_image ($website) *****"]) +##### libvorbis ##### +website="http://www.xiph.org/downloads/" +AC_CHECK_HEADERS([vorbis/codec.h vorbis/vorbisfile.h],, + [missing=yes + echo "***** Missing vorbis headers ($website) *****"]) AC_SEARCH_LIBS([ov_open], [vorbisfile],, - [missing="$missing libvorbis"]) + [missing=yes + echo "***** Missing libvorbisfile ($website) *****"]) +##### librt (optional) ##### AC_SEARCH_LIBS([clock_gettime], [rt], [AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [Define to 1 if you have the 'clock_gettime' function.])]) -if test "x$missing" != x + +if test x$missing == xyes then - echo "** One or more required libraries are missing:" - for library in $missing - do - echo "** $library" - done - AC_MSG_ERROR([please install missing dependencies]) + AC_MSG_ERROR([please install missing dependencies (see messages above)]) fi @@ -274,7 +296,6 @@ AC_CONFIG_FILES([Makefile extra/Makefile extra/yoink.spec src/Makefile]) - #src/Moof/yajl/Makefile]) AC_CONFIG_HEADERS([src/config.h]) diff --git a/doc/yoink.6.in b/doc/yoink.6.in index 99c48fa..d9e90bf 100644 --- a/doc/yoink.6.in +++ b/doc/yoink.6.in @@ -284,7 +284,7 @@ artifacts which are more obvious on certain OpenGL implementations. .PP Send bug reports, patches, and love notes to: .br -Charles McGarvey +Charles McGarvey <@PACKAGE_BUGREPORT@> .SH AUTHOR .PP Neil Carter was the original creator of Yoink, his winning entry in the diff --git a/extra/yoink.ebuild b/extra/yoink.ebuild index f4730c1..ca287ba 100644 --- a/extra/yoink.ebuild +++ b/extra/yoink.ebuild @@ -27,10 +27,6 @@ DEPEND="${RDEPEND} dev-util/pkgconfig" src_prepare() { - sed -i \ - -e "s/-Werror//g" \ - configure.ac \ - || die "sed failed" sed -i \ -e "/apps/d" \ -e "/pixmap/d" \ diff --git a/src/Makefile.am b/src/Makefile.am index 30f2bae..384fa0a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -119,6 +119,12 @@ yoink_SOURCES = \ YoinkApp.hh \ $(ENDLIST) +if WIN32 +yoink_SOURCES += yoink.rc yoink.ico +.rc.o: + @WINDRES@ -o $@ -i $< +endif + yoink_CPPFLAGS = -I$(top_srcdir)/src/Moof yoink_LDADD = libmoof.a diff --git a/src/yoink.ico b/src/yoink.ico new file mode 100644 index 0000000..71b63c0 Binary files /dev/null and b/src/yoink.ico differ diff --git a/src/yoink.rc b/src/yoink.rc new file mode 100644 index 0000000..6bc5b36 --- /dev/null +++ b/src/yoink.rc @@ -0,0 +1,41 @@ + +// +// Yoink +// Compile this file with windres and link the object with the executable. +// + +#include +#include "config.h" + +1 VERSIONINFO + +FILEVERSION VERSION_MAJOR,VERSION_MINOR,VERSION_REVISION,0 +PRODUCTVERSION VERSION_MAJOR,VERSION_MINOR,VERSION_REVISION,0 +#if !defined(NDEBUG) + FILEFLAGS VS_FF_DEBUG +#endif +FILEOS VOS_NT_WINDOWS32 +FILETYPE VFT_APP +{ + BLOCK "StringFileInfo" + { + BLOCK "000004b0" + { + VALUE "CompanyName", "\000" + VALUE "FileDescription", "Alien-smashing action game" + VALUE "FileVersion", PACKAGE_VERSION + VALUE "InternalName", "Yoink" + VALUE "LegalCopyright", "Copyright (C) 2009 Charles McGarvey et al." + VALUE "OriginalFilename", "Yoink.exe" + VALUE "ProductName", "Yoink" + VALUE "ProductVersion", PACKAGE_VERSION + } + } + BLOCK "VarFileInfo" + { + VALUE "Translation", 0x0409, 1200 + } +} + +1000 ICON "yoink.ico" +