diff --git a/.gitattributes b/.gitattributes index 1c6aad8..0e2cfe5 100644 --- a/.gitattributes +++ b/.gitattributes @@ -79,6 +79,7 @@ freeglut/freeglut/include/GL/freeglut_ext.h svn_keywords=Author+Date+Id+Revision freeglut/freeglut/include/GL/freeglut_std.h svn_keywords=Author+Date+Id+Revision freeglut/freeglut/include/GL/glut.h svn_keywords=Author+Date+Id+Revision freeglut/freeglut/include/Makefile.am svn_keywords=Author+Date+Id+Revision +freeglut/freeglut/mingw_cross_toolchain.cmake -text freeglut/freeglut/progs/Makefile.am svn_keywords=Author+Date+Id+Revision freeglut/freeglut/progs/demos/CallbackMaker/CallbackMaker.c svn_keywords=Author+Date+Id+Revision freeglut/freeglut/progs/demos/CallbackMaker/CallbackMaker.dsp svn_keywords=Author+Date+Id+Revision diff --git a/freeglut/freeglut/README.mingw_cross b/freeglut/freeglut/README.mingw_cross index 65d5c3f..1a80638 100644 --- a/freeglut/freeglut/README.mingw_cross +++ b/freeglut/freeglut/README.mingw_cross @@ -1,24 +1,61 @@ Cross-compilation from GNU/Linux (static and shared DLL) ======================================================== -Install MinGW32 and prepare FreeGLUT on Debian/Ubuntu: +Install MinGW, and specify which MinGW you're using: - apt-get install mingw32 - ./configure --host=i586-mingw32msvc --prefix=/freeglut +- on Debian/Ubuntu, mingw-w64, 32-bit executables: -Install MinGW32 and prepare FreeGLUT on Fedora: + apt-get install mingw-w64 + GNU_HOST=i686-w64-mingw32 + +- on Debian/Ubuntu, mingw-w64, 64-bit executables: + + apt-get install mingw-w64 + GNU_HOST=x86_64-w64-mingw32 + +- on Fedora, mingw32, 32-bit executables: yum install mingw32-gcc - ./configure --host=i686-pc-mingw32 --prefix=/freeglut + GNU_HOST=i686-pc-mingw32 -Cross-compile! +- on Debian/Ubuntu, mingw32 (deprecated): - make + apt-get install mingw32 + GNU_HOST=i586-mingw32msvc + + +With the GNU Autotools +---------------------- + +Cross-compile with: + + ./configure --host=$GNU_HOST --prefix=/freeglut + make -j4 make install DESTDIR=$(pwd) -Everything is in the new freeglut/ directory. -The .dll is in the freeglut/bin/. +Everything is now in the new 'freeglut/' directory. +The .dll is in 'freeglut/bin/'. +With CMake +---------- + +Cross-compile with: + + cmake \ + -D GNU_HOST=$GNU_HOST \ + -D CMAKE_TOOLCHAIN_FILE=mingw_cross_toolchain.cmake \ + -D CMAKE_INSTALL_PREFIX=/freeglut \ + . + make -j4 + make install DESTDIR=$(pwd) + +Everything is now in the new 'freeglut/' directory. +The .dll is in 'freeglut/lib/'. + + +Compiling your code +------------------- + Compilation of your own programs is done as usual. See README.cygwin_mingw for details. diff --git a/freeglut/freeglut/mingw_cross_toolchain.cmake b/freeglut/freeglut/mingw_cross_toolchain.cmake new file mode 100644 index 0000000..f0671b5 --- /dev/null +++ b/freeglut/freeglut/mingw_cross_toolchain.cmake @@ -0,0 +1,9 @@ +# CMake toolchain file, cf. README.mingw_cross +SET(CMAKE_SYSTEM_NAME Windows) +include(CMakeForceCompiler) +IF("${GNU_HOST}" STREQUAL "") + SET(GNU_HOST i586-mingw32msvc) +ENDIF() +# Prefix detection only works with compiler id "GNU" +CMAKE_FORCE_C_COMPILER(${GNU_HOST}-gcc GNU) +SET(CMAKE_RC_COMPILER ${GNU_HOST}-windres)