1. Building wxEuphoria with 2.9

Matt,

I've started playing around with the wx2.9 branch. I finally got wxWidgets 2.9.2 built (which took forever on my laptop). And now I'm trying to build wxEuphoria but immediately I'm getting this error. I'm using MinGW to build on Windows XP. What happen? Did I do something wrong?

$ ./configure ../wxWidgets-2.9.2 
 
$ make 
g++ -c -o build/wxeu.o -D__WXMSW__     -I.   -I./../wxWidgets-2.9.2/lib/wx/include/msw-unicode-release-2.8 -I./../wxWidgets-2.9.2/include -DWXEUMSW  -DWX_MAJOR=2 -DWX_MINOR=9 -DWX_BUGFIX= -DWX_LIB_BUILD=17 -fPIC    wxeu.cpp 
wxeu.cpp:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default] 
wxeu.cpp:6:22: fatal error: wx/setup.h: No such file or directory 
compilation terminated. 
make: *** [build/wxeu.o] Error 1 

Here's my directory layout:

  • C:\EUPHORIA\wxEuphoria\wx2.9
  • C:\EUPHORIA\wxEuphoria\wxWidgets-2.9.2

-Greg

new topic     » topic index » view message » categorize

2. Re: Building wxEuphoria with 2.9

Well setup.h is definitely not in the include/wx folder. I have these, but not setup.h.

  • setup_gccxml.h
  • setup_inc.h
  • setup_redirect.h

-Greg

new topic     » goto parent     » topic index » view message » categorize

3. Re: Building wxEuphoria with 2.9

ghaberek said...

Matt,

I've started playing around with the wx2.9 branch. I finally got wxWidgets 2.9.2 built (which took forever on my laptop). And now I'm trying to build wxEuphoria but immediately I'm getting this error. I'm using MinGW to build on Windows XP. What happen? Did I do something wrong?

$ ./configure ../wxWidgets-2.9.2 
 
$ make 
g++ -c -o build/wxeu.o -D__WXMSW__     -I.   -I./../wxWidgets-2.9.2/lib/wx/include/msw-unicode-release-2.8 -I./../wxWidgets-2.9.2/include -DWXEUMSW  -DWX_MAJOR=2 -DWX_MINOR=9 -DWX_BUGFIX= -DWX_LIB_BUILD=17 -fPIC    wxeu.cpp 
wxeu.cpp:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default] 
wxeu.cpp:6:22: fatal error: wx/setup.h: No such file or directory 
compilation terminated. 
make: *** [build/wxeu.o] Error 1 

Here's my directory layout:

  • C:\EUPHORIA\wxEuphoria\wx2.9
  • C:\EUPHORIA\wxEuphoria\wxWidgets-2.9.2

The setup.h file should be in wxWidgets-2.9.2/lib/wx/include/msw-unicode-release-2.8/wx. I haven't tried building under msys. I've only done cross compiles of 2.9 so far, and before building wxEuphoria, I installed wxWidgets (under /usr/x86_64-w64-mingw32 and /usr/i686-w64-mingw32).

You might try an absolute path instead of a relative path to wxWidgets.

Matt

new topic     » goto parent     » topic index » view message » categorize

4. Re: Building wxEuphoria with 2.9

mattlewis said...

The setup.h file should be in wxWidgets-2.9.2/lib/wx/include/msw-unicode-release-2.8/wx.

I looks like I have wxWidgets-2.9.2/lib/wx/include/msw-unicode-2.9 instead. Updating CXXFLAGS in Makefile.mingw to match seems to have done the trick!

(well, it's compiling... we'll see)

mattlewis said...

I haven't tried building under msys.

Yay! I'm a guinea pig! grin

-Greg

new topic     » goto parent     » topic index » view message » categorize

5. Re: Building wxEuphoria with 2.9

D'oh!

g++ -shared -o build/libwxeu.2.9.dll ./build/be.o ./build/wxeu.o ./build/wxEuphoria.o ./build/wxAui.o ./build/wxButton.o ./build/wxCalendar.o ./build/wxCaret.o ./build/wxCheckBox.o ./build/wxConfig.o ./build/wxCollapsiblePane.o ./build/wxData.o ./build/wxDialog.o ./build/wxDir.o ./build/wxDisplay.o ./build/wxEvent.o ./build/wxFile.o ./build/wxFileDialog.o ./build/wxGauge.o ./build/wxGraphics.o ./build/wxGrid.o ./build/wxHtml.o ./build/wxList.o ./build/wxLocale.o ./build/wxMDI.o ./build/wxMedia.o ./build/wxMenu.o ./build/wxNet.o ./build/wxNotebook.o ./build/wxPGProperty.o ./build/wxPropertyGrid.o ./build/wxPicker.o ./build/wxPlatform.o ./build/wxPrint.o ./build/wxProcess.o ./build/wxRegEx.o ./build/wxRichText.o ./build/wxScrollBar.o ./build/wxSizer.o ./build/wxSplashScreen.o ./build/wxSprin 
t.o ./build/wxStatic.o ./build/wxStatusBar.o ./build/wxTaskBarIcon.o ./build/wxText.o ./build/wxTimer.o ./build/wxToolBar.o ./build/wxTree.o ./build/wxXml.o ./build/wxXmlResource.o ./build/wxWizard.o  --enable-auto-import --export-all-symbols ./../wxWidgets-2.9.2/lib/libwxexpat-2.8.a ./../wxWidgets-2.9.2/lib/libwxjpeg-2.8.a ./../wxWidgets-2.9.2/lib/libwxpng-2.8.a ./../wxWidgets-2.9.2/lib/libwxregexu-2.8.a ./../wxWidgets-2.9.2/lib/libwxtiff-2.8.a ./../wxWidgets-2.9.2/lib/libwxzlib-2.8.a ./../wxWidgets-2.9.2/lib/libwx_baseu-2.8.dll.a ./../wxWidgets-2.9.2/lib/libwx_baseu_net-2.8.dll.a ./../wxWidgets-2.9.2/lib/libwx_baseu_xml-2.8.dll.a ./../wxWidgets-2.9.2/lib/libwx_mswu_adv-2.8.dll.a ./../wxWidgets-2.9.2/lib/libwx_mswu_aui-2.8.dll.a ./../wxWidgets-2.9.2/lib/libwx_mswu_core-2.8.dll.a ./../wxWidgets-2.9.2/lib/libwx_mswu_html-2.8.dll.a ./../wxWidgets-2.9.2/lib/libwx_mswu_qa-2.8.dll.a ./../wxWidgets-2.9.2/lib/libwx_mswu_richtext-2.8.dll.a ./../wxWidgets-2.9.2/lib/libwx_mswu_xrc-2.8.dll.a ./../wxWidgets-2.9.2/lib/libwx_mswu_media-2.8.dll.a MONOLITHIC= -lrpcrt4 -loleaut32 -lole32 -luuid -lwinspool -lwinmm -lshell32 -lcomctl32 -lcomdlg32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lgdiplus -L --rpath 
g++.exe: error: ./../wxWidgets-2.9.2/lib/libwxexpat-2.8.a: No such file or directory 
g++.exe: error: ./../wxWidgets-2.9.2/lib/libwxjpeg-2.8.a: No such file or directory 
g++.exe: error: ./../wxWidgets-2.9.2/lib/libwxpng-2.8.a: No such file or directory 
g++.exe: error: ./../wxWidgets-2.9.2/lib/libwxregexu-2.8.a: No such file or directory 
g++.exe: error: ./../wxWidgets-2.9.2/lib/libwxtiff-2.8.a: No such file or directory 
g++.exe: error: ./../wxWidgets-2.9.2/lib/libwxzlib-2.8.a: No such file or directory 
g++.exe: error: ./../wxWidgets-2.9.2/lib/libwx_baseu-2.8.dll.a: No such file or directory 
g++.exe: error: ./../wxWidgets-2.9.2/lib/libwx_baseu_net-2.8.dll.a: No such file or directory 
g++.exe: error: ./../wxWidgets-2.9.2/lib/libwx_baseu_xml-2.8.dll.a: No such file or directory 
g++.exe: error: ./../wxWidgets-2.9.2/lib/libwx_mswu_adv-2.8.dll.a: No such file or directory 
g++.exe: error: ./../wxWidgets-2.9.2/lib/libwx_mswu_aui-2.8.dll.a: No such file or directory 
g++.exe: error: ./../wxWidgets-2.9.2/lib/libwx_mswu_core-2.8.dll.a: No such file or directory 
g++.exe: error: ./../wxWidgets-2.9.2/lib/libwx_mswu_html-2.8.dll.a: No such file or directory 
g++.exe: error: ./../wxWidgets-2.9.2/lib/libwx_mswu_qa-2.8.dll.a: No such file or directory 
g++.exe: error: ./../wxWidgets-2.9.2/lib/libwx_mswu_richtext-2.8.dll.a: No such file or directory 
g++.exe: error: ./../wxWidgets-2.9.2/lib/libwx_mswu_xrc-2.8.dll.a: No such file or directory 
g++.exe: error: ./../wxWidgets-2.9.2/lib/libwx_mswu_media-2.8.dll.a: No such file or directory 
g++.exe: error: MONOLITHIC=: No such file or directory 
g++.exe: error: unrecognized option '--enable-auto-import' 
g++.exe: error: unrecognized option '--export-all-symbols' 
make: *** [build/libwxeu.2.9.dll] Error 1 

I suppose I should fix all those other "2.8" references... but what's up with the last couple errors?

-Greg

new topic     » goto parent     » topic index » view message » categorize

6. Re: Building wxEuphoria with 2.9

I realize I keep replying to myself, but I finally go this to build completely. Here are my changes to Makefile.mingw. I renamed all the 2.8's to 2.9 and added missing libraries: gl, propgrid, ribbon, and stc (otherwise I got a bunch of ugly errors about wxPGProperty, etc.).

diff -r df01f1e524fe Makefile.mingw 
--- a/Makefile.mingw	Sun Dec 04 17:19:03 2011 -0500 
+++ b/Makefile.mingw	Wed Dec 14 22:41:31 2011 -0500 
@@ -9,42 +9,45 @@ 
 endif 
  
 WXPREFIX=$(PREFIX) 
-CXXFLAGS = -I./$(PREFIX)/lib/wx/include/$(HOSTDIR)msw-unicode-release-2.8 -I./$(PREFIX)/include -DWXEUMSW 
+CXXFLAGS = -I./$(PREFIX)/lib/wx/include/$(HOSTDIR)msw-unicode-2.9 -I./$(PREFIX)/include -DWXEUMSW 
 WXEUMSW=-DWXEUMSW 
 TOOLKIT = MSW 
 TOOLKIT_LOWERCASE = msw 
  
  
 ifeq "$(MONOLITHIC)" "1" 
-LDFLAGS = --enable-auto-import --export-all-symbols \ 
-	./$(PREFIX)/lib/libwxexpat-2.8$(HOSTLIB).a \ 
-	./$(PREFIX)/lib/libwxjpeg-2.8$(HOSTLIB).a \ 
-	./$(PREFIX)/lib/libwxpng-2.8$(HOSTLIB).a \ 
-	./$(PREFIX)/lib/libwxregexu-2.8$(HOSTLIB).a \ 
-	./$(PREFIX)/lib/libwxtiff-2.8$(HOSTLIB).a \ 
-	./$(PREFIX)/lib/libwxzlib-2.8$(HOSTLIB).a \ 
-	./$(PREFIX)/lib/libwx_mswu-2.8$(HOSTLIB).dll.a \ 
+LDFLAGS = \ 
+	./$(PREFIX)/lib/libwxexpat-2.9$(HOSTLIB).a \ 
+	./$(PREFIX)/lib/libwxjpeg-2.9$(HOSTLIB).a \ 
+	./$(PREFIX)/lib/libwxpng-2.9$(HOSTLIB).a \ 
+	./$(PREFIX)/lib/libwxregexu-2.9$(HOSTLIB).a \ 
+	./$(PREFIX)/lib/libwxtiff-2.9$(HOSTLIB).a \ 
+	./$(PREFIX)/lib/libwxzlib-2.9$(HOSTLIB).a \ 
+	./$(PREFIX)/lib/libwx_mswu-2.9$(HOSTLIB).dll.a \ 
 	-lrpcrt4 -loleaut32 -lole32 -luuid -lwinspool -lwinmm -lshell32 -lcomctl32 -lcomdlg32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lgdiplus 
  
 else 
-LDFLAGS = --enable-auto-import --export-all-symbols \ 
-	./$(PREFIX)/lib/libwxexpat-2.8$(HOSTLIB).a \ 
-	./$(PREFIX)/lib/libwxjpeg-2.8$(HOSTLIB).a \ 
-	./$(PREFIX)/lib/libwxpng-2.8$(HOSTLIB).a \ 
-	./$(PREFIX)/lib/libwxregexu-2.8$(HOSTLIB).a \ 
-	./$(PREFIX)/lib/libwxtiff-2.8$(HOSTLIB).a \ 
-	./$(PREFIX)/lib/libwxzlib-2.8$(HOSTLIB).a \ 
-	./$(PREFIX)/lib/libwx_baseu-2.8$(HOSTLIB).dll.a \ 
-	./$(PREFIX)/lib/libwx_baseu_net-2.8$(HOSTLIB).dll.a \ 
-	./$(PREFIX)/lib/libwx_baseu_xml-2.8$(HOSTLIB).dll.a \ 
-	./$(PREFIX)/lib/libwx_mswu_adv-2.8$(HOSTLIB).dll.a \ 
-	./$(PREFIX)/lib/libwx_mswu_aui-2.8$(HOSTLIB).dll.a \ 
-	./$(PREFIX)/lib/libwx_mswu_core-2.8$(HOSTLIB).dll.a \ 
-	./$(PREFIX)/lib/libwx_mswu_html-2.8$(HOSTLIB).dll.a \ 
-	./$(PREFIX)/lib/libwx_mswu_qa-2.8$(HOSTLIB).dll.a \ 
-	./$(PREFIX)/lib/libwx_mswu_richtext-2.8$(HOSTLIB).dll.a \ 
-	./$(PREFIX)/lib/libwx_mswu_xrc-2.8$(HOSTLIB).dll.a \ 
-	./$(PREFIX)/lib/libwx_mswu_media-2.8$(HOSTLIB).dll.a \ 
-	MONOLITHIC=$(MONOLITHIC) \ 
+LDFLAGS = \ 
+	./$(PREFIX)/lib/libwxexpat-2.9$(HOSTLIB).a \ 
+	./$(PREFIX)/lib/libwxjpeg-2.9$(HOSTLIB).a \ 
+	./$(PREFIX)/lib/libwxpng-2.9$(HOSTLIB).a \ 
+	./$(PREFIX)/lib/libwxregexu-2.9$(HOSTLIB).a \ 
+	./$(PREFIX)/lib/libwxtiff-2.9$(HOSTLIB).a \ 
+	./$(PREFIX)/lib/libwxzlib-2.9$(HOSTLIB).a \ 
+	./$(PREFIX)/lib/libwx_baseu-2.9$(HOSTLIB).dll.a \ 
+	./$(PREFIX)/lib/libwx_baseu_net-2.9$(HOSTLIB).dll.a \ 
+	./$(PREFIX)/lib/libwx_baseu_xml-2.9$(HOSTLIB).dll.a \ 
+	./$(PREFIX)/lib/libwx_mswu_adv-2.9$(HOSTLIB).dll.a \ 
+	./$(PREFIX)/lib/libwx_mswu_aui-2.9$(HOSTLIB).dll.a \ 
+	./$(PREFIX)/lib/libwx_mswu_core-2.9$(HOSTLIB).dll.a \ 
+	./$(PREFIX)/lib/libwx_mswu_html-2.9$(HOSTLIB).dll.a \ 
+	./$(PREFIX)/lib/libwx_mswu_qa-2.9$(HOSTLIB).dll.a \ 
+	./$(PREFIX)/lib/libwx_mswu_richtext-2.9$(HOSTLIB).dll.a \ 
+	./$(PREFIX)/lib/libwx_mswu_xrc-2.9$(HOSTLIB).dll.a \ 
+	./$(PREFIX)/lib/libwx_mswu_media-2.9$(HOSTLIB).dll.a \ 
+	./$(PREFIX)/lib/libwx_mswu_gl-2.9$(HOSTLIB).dll.a \ 
+	./$(PREFIX)/lib/libwx_mswu_propgrid-2.9$(HOSTLIB).dll.a \ 
+	./$(PREFIX)/lib/libwx_mswu_ribbon-2.9$(HOSTLIB).dll.a \ 
+	./$(PREFIX)/lib/libwx_mswu_stc-2.9$(HOSTLIB).dll.a \ 
 	-lrpcrt4 -loleaut32 -lole32 -luuid -lwinspool -lwinmm -lshell32 -lcomctl32 -lcomdlg32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lgdiplus 
 endif 
\ No newline at end of file 

-Greg

new topic     » goto parent     » topic index » view message » categorize

7. Re: Building wxEuphoria with 2.9

ghaberek said...

I realize I keep replying to myself, but I finally go this to build completely. Here are my changes to Makefile.mingw. I renamed all the 2.8's to 2.9 and added missing libraries: gl, propgrid, ribbon, and stc (otherwise I got a bunch of ugly errors about wxPGProperty, etc.).

Ah, right. That stuff gets generated automatically when building on Linux via the wx-config script. I hard coded it to get MinGW working. Ideally, we would use that under msys. After building wxWidgets in msys, what happens if you try to "make install"?

Matt

new topic     » goto parent     » topic index » view message » categorize

8. Re: Building wxEuphoria with 2.9

mattlewis said...

Ah, right. That stuff gets generated automatically when building on Linux via the wx-config script. I hard coded it to get MinGW working. Ideally, we would use that under msys. After building wxWidgets in msys, what happens if you try to "make install"?

I have no idea what this means...

$ make install 
PREFIX = ../wxWidgets-2.9.2 
install -d ../wxWidgets-2.9.2/lib 
install ./build/libwxeu.so.2.9.17 ../wxWidgets-2.9.2/lib 
install: cannot stat `./build/libwxeu.so.2.9.17': No such file or directory 
make: *** [install] Error 1 

-Greg

new topic     » goto parent     » topic index » view message » categorize

9. Re: Building wxEuphoria with 2.9

ghaberek said...
mattlewis said...

Ah, right. That stuff gets generated automatically when building on Linux via the wx-config script. I hard coded it to get MinGW working. Ideally, we would use that under msys. After building wxWidgets in msys, what happens if you try to "make install"?

I have no idea what this means...

Sorry, I meant installing wxWidgets itself after it is built. I should put all of the wxWidgets stuff somewhere in the msys bin directories so that it would be a part of msys. One thing it does is create a script called wx-config, which can be used to get lists of flags or libraries that need to be linked or lots of other useful information. Then, instead of the hard coded junk, the msys build could be just like the process on *nix, and a lot more robust.

I haven't tried it under msys, so I'm not sure if it will actually work. I suspect it should. As I mentioned, it worked for me when cross compiling. I built both a 32-bit and 64-bit windows version of wxWidgets for windows using my system's windows cross compilers, and it installed the wx-config, setup.h, include files and libraries in the appropriate place, e.g.:

/usr/x86_64-w64-mingw32/include/wx-2.9/wx/... 
/usr/x86_64-w64-mingw32/wxbase292u_gcc_eu.dll 
/usr/x86_64-w64-mingw32/lib/wx/include/x86_64-w64-mingw32-msw-unicode-2.9/wx/setup.h 
/usr/x86_64-w64-mingw32/bin/wx-config 
...and similar stuff in /usr/i868-w64-mingw32.

Once that was done, the wxEuphoria configure script would probably need to be updated to remove all of the Windows hardcoding stuff. Specifically, at least this:

if echo "$UNAME_SYSTEM" | grep MINGW > /dev/null; then 
	if [ "$1" = "" ]; then 
		echo "You must supply the path to wxWidgets" 
		exit 1 
	fi 
	echo PREFIX=$1 >> Makefile.gcc 
	echo CC=gcc >> Makefile.gcc 
	echo include Makefile.mingw >> Makefile.gcc 
	exit 
fi 

Then building on msys and cross compiling (or regular *nix compiling) would basically be the same, which would actually simplify things.

Matt

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu