#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