#3962: Cross-compile (mxe) fails at wzconfig_moc.cpp
-------------------------------------------------+-------------------------
 Reporter:  hannaj1@…                            |             Owner:
     Type:  bug                                  |            Status:  new
 Priority:  normal                               |         Milestone:
Component:  Build System Issues                  |  unspecified
 Keywords:  wzconfig_moc.cpp i686-pc-            |           Version:
  mingw32-g++                                    |  3.1.0
                                                 |  Operating System:
                                                 |  GNU/Linux 32bit
-------------------------------------------------+-------------------------
 When cross compiling following the instructions here:
 http://developer.wz2100.net/wiki/CompileGuideWindows/MingwCrossEnv

 Using Debian Sid for build environment

 1. Install MXE, etc.
 2. Extract Warzone source, cd to main directory.
 3. Enter at prompt: ./autogen.sh
 4. Configure:

 {{{
 ./configure --host=i686-pc-mingw32 --enable-static PKG_CONFIG=i686-pc-
 mingw32-pkg-config CC_FOR_BUILD="gcc" CXX_FOR_BUILD="g++" CFLAGS="-pipe
 -m32 -march=i686 -O2 -g -gstabs -g3" CXXFLAGS="-pipe -m32 -march=i686 -O2
 -g -gstabs -g3 -fno-exceptions" --enable-installer --with-installer-
 extdir="/opt/mingw/usr/i686-pc-mingw32" --with-installer-
 version="2.46.0.0" --disable-debug
 }}}
 4. Make

 The build always fails in ./lib/framework:

 {{{
 ...
 i686-pc-mingw32-g++ -DHAVE_CONFIG_H -I. -I../..  -DYY_NO_INPUT
 -D_GNU_SOURCE=1 -Dmain=SDL_main -I/opt/mingw/usr/i686-pc-
 mingw32/include/SDL   -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
 -DNDEBUG -DWZ_DATADIR="\"/usr/local/share/warzone2100\""
 -DLOCALEDIR="\"/usr/local/share/locale\"" -I../.. -I../../3rdparty
 -I../../3rdparty/quesoglc -DQT_THREAD_SUPPORT -I/opt/mingw/usr/i686-pc-
 mingw32/include -I/opt/mingw/usr/i686-pc-mingw32/include/QtCore
 -I/opt/mingw/usr/i686-pc-mingw32/include/QtGui -I/opt/mingw/usr/i686-pc-
 mingw32/include/QtNetwork -I/opt/mingw/usr/i686-pc-
 mingw32/include/QtScript    -g -Wno-enum-compare -Wall -Wextra -Wno-
 unused-parameter -Wno-sign-compare -Wcast-align -Wwrite-strings -Wpointer-
 arith -Wno-format-security -DQT_THREAD_SUPPORT -I/opt/mingw/usr/i686-pc-
 mingw32/include -I/opt/mingw/usr/i686-pc-mingw32/include/QtCore
 -I/opt/mingw/usr/i686-pc-mingw32/include/QtGui -I/opt/mingw/usr/i686-pc-
 mingw32/include/QtNetwork -I/opt/mingw/usr/i686-pc-
 mingw32/include/QtScript   -pipe -m32 -march=i686 -O2 -g -gstabs -g3 -fno-
 exceptions -fstack-protector -MT wzconfig.o -MD -MP -MF .deps/wzconfig.Tpo
 -c -o wzconfig.o wzconfig.cpp
 mv -f .deps/wzconfig.Tpo .deps/wzconfig.Po
 o wzconfig_moc.cpp wzconfig.h
 /bin/bash: o: command not found
 make[2]: [wzconfig_moc.cpp] Error 127 (ignored)
 i686-pc-mingw32-g++ -DHAVE_CONFIG_H -I. -I../..  -DYY_NO_INPUT
 -D_GNU_SOURCE=1 -Dmain=SDL_main -I/opt/mingw/usr/i686-pc-
 mingw32/include/SDL   -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
 -DNDEBUG -DWZ_DATADIR="\"/usr/local/share/warzone2100\""
 -DLOCALEDIR="\"/usr/local/share/locale\"" -I../.. -I../../3rdparty
 -I../../3rdparty/quesoglc -DQT_THREAD_SUPPORT -I/opt/mingw/usr/i686-pc-
 mingw32/include -I/opt/mingw/usr/i686-pc-mingw32/include/QtCore
 -I/opt/mingw/usr/i686-pc-mingw32/include/QtGui -I/opt/mingw/usr/i686-pc-
 mingw32/include/QtNetwork -I/opt/mingw/usr/i686-pc-
 mingw32/include/QtScript    -g -Wno-enum-compare -Wall -Wextra -Wno-
 unused-parameter -Wno-sign-compare -Wcast-align -Wwrite-strings -Wpointer-
 arith -Wno-format-security -DQT_THREAD_SUPPORT -I/opt/mingw/usr/i686-pc-
 mingw32/include -I/opt/mingw/usr/i686-pc-mingw32/include/QtCore
 -I/opt/mingw/usr/i686-pc-mingw32/include/QtGui -I/opt/mingw/usr/i686-pc-
 mingw32/include/QtNetwork -I/opt/mingw/usr/i686-pc-
 mingw32/include/QtScript   -pipe -m32 -march=i686 -O2 -g -gstabs -g3 -fno-
 exceptions -fstack-protector -MT wzconfig_moc.o -MD -MP -MF
 .deps/wzconfig_moc.Tpo -c -o wzconfig_moc.o wzconfig_moc.cpp
 i686-pc-mingw32-g++: error: wzconfig_moc.cpp: No such file or directory
 i686-pc-mingw32-g++: fatal error: no input files
 compilation terminated.
 make[2]: *** [wzconfig_moc.o] Error 1
 make[2]: Leaving directory `/usr/src/warzone/warzone2100/lib/framework'
 make[1]: *** [all-recursive] Error 1
 make[1]: Leaving directory `/usr/src/warzone/warzone2100'
 make: *** [all] Error 2
 }}}

 Workaround:
 Change directory to ./lib/framework: cd lib/framework
 Enter at prompt: i686-pc-mingw32-moc -o wzconfig_moc.cpp wzconfig.h
 Change directory back: cd ../..

 After that, again enter: make

 Build continues, then fails one more time at ./src:

 {{{
 ...
 i686-pc-mingw32-g++ -DHAVE_CONFIG_H -I. -I..  -DYY_NO_INPUT
 -D_GNU_SOURCE=1 -Dmain=SDL_main -I/opt/mingw/usr/i686-pc-
 mingw32/include/SDL    -I/opt/mingw/usr/i686-pc-mingw32/include/libpng15
 -I/opt/mingw/usr/i686-pc-mingw32/include   -I/opt/mingw/usr/i686-pc-
 mingw32/include   -DAL_LIBTYPE_STATIC -I/opt/mingw/usr/i686-pc-
 mingw32/include     -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DNDEBUG
 -DWZ_DATADIR="\"/usr/local/share/warzone2100\""
 -DLOCALEDIR="\"/usr/local/share/locale\"" -I.. -I../3rdparty
 -I../3rdparty/quesoglc -DGLEW_STATIC -I/opt/mingw/usr/i686-pc-
 mingw32/include/GL    -g -Wno-enum-compare -Wall -Wextra -Wno-unused-
 parameter -Wno-sign-compare -Wcast-align -Wwrite-strings -Wpointer-arith
 -Wno-format-security -DQT_THREAD_SUPPORT -I/opt/mingw/usr/i686-pc-
 mingw32/include -I/opt/mingw/usr/i686-pc-mingw32/include/QtCore
 -I/opt/mingw/usr/i686-pc-mingw32/include/QtGui -I/opt/mingw/usr/i686-pc-
 mingw32/include/QtNetwork -I/opt/mingw/usr/i686-pc-
 mingw32/include/QtScript   -pipe -m32 -march=i686 -O2 -g -gstabs -g3 -fno-
 exceptions -fstack-protector -MT wrappers.o -MD -MP -MF .deps/wrappers.Tpo
 -c -o wrappers.o wrappers.cpp
 mv -f .deps/wrappers.Tpo .deps/wrappers.Po
 o qtscriptdebug_moc.cpp qtscriptdebug.h
 /bin/bash: o: command not found
 make[3]: [qtscriptdebug_moc.cpp] Error 127 (ignored)
 i686-pc-mingw32-g++ -DHAVE_CONFIG_H -I. -I..  -DYY_NO_INPUT
 -D_GNU_SOURCE=1 -Dmain=SDL_main -I/opt/mingw/usr/i686-pc-
 mingw32/include/SDL    -I/opt/mingw/usr/i686-pc-mingw32/include/libpng15
 -I/opt/mingw/usr/i686-pc-mingw32/include   -I/opt/mingw/usr/i686-pc-
 mingw32/include   -DAL_LIBTYPE_STATIC -I/opt/mingw/usr/i686-pc-
 mingw32/include     -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DNDEBUG
 -DWZ_DATADIR="\"/usr/local/share/warzone2100\""
 -DLOCALEDIR="\"/usr/local/share/locale\"" -I.. -I../3rdparty
 -I../3rdparty/quesoglc -DGLEW_STATIC -I/opt/mingw/usr/i686-pc-
 mingw32/include/GL    -g -Wno-enum-compare -Wall -Wextra -Wno-unused-
 parameter -Wno-sign-compare -Wcast-align -Wwrite-strings -Wpointer-arith
 -Wno-format-security -DQT_THREAD_SUPPORT -I/opt/mingw/usr/i686-pc-
 mingw32/include -I/opt/mingw/usr/i686-pc-mingw32/include/QtCore
 -I/opt/mingw/usr/i686-pc-mingw32/include/QtGui -I/opt/mingw/usr/i686-pc-
 mingw32/include/QtNetwork -I/opt/mingw/usr/i686-pc-
 mingw32/include/QtScript   -pipe -m32 -march=i686 -O2 -g -gstabs -g3 -fno-
 exceptions -fstack-protector -MT qtscriptdebug_moc.o -MD -MP -MF
 .deps/qtscriptdebug_moc.Tpo -c -o qtscriptdebug_moc.o
 qtscriptdebug_moc.cpp
 i686-pc-mingw32-g++: error: qtscriptdebug_moc.cpp: No such file or
 directory
 i686-pc-mingw32-g++: fatal error: no input files
 compilation terminated.
 make[3]: *** [qtscriptdebug_moc.o] Error 1
 make[3]: Leaving directory `/usr/src/warzone/warzone2100/src'
 make[2]: *** [all] Error 2
 make[2]: Leaving directory `/usr/src/warzone/warzone2100/src'
 make[1]: *** [all-recursive] Error 1
 make[1]: Leaving directory `/usr/src/warzone/warzone2100'
 make: *** [all] Error 2
 }}}

 Workaround:
 Change directory to src: cd ./src
 Enter command: i686-pc-mingw32-moc -o qtscriptdebug_moc.cpp
 qtscriptdebug.h
 Change directory back: cd ..
 Enter command: make

 The build continues...

 This issue is ''not'' a result of me not following the instructions.  My
 Debian build environment is a base install plus build-essential, and a few
 other packages installed to meet build dependencies, etc.

 It's not a big problem to use the workarounds I figured out, but I think
 the build should work "out of the box" to developers who follow the
 instructions provided by the official devs, so I made a ticket.

-- 
Ticket URL: <http://developer.wz2100.net/ticket/3962>
Warzone 2100 Trac <http://developer.wz2100.net/>
The Warzone 2100 Project
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Warzone2100-project mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/warzone2100-project

Reply via email to