aMule Forum
English => Multiplatform => Mac OSX => Topic started by: mirko.g on September 06, 2009, 05:58:55 PM
-
Are there any known issues building aMule on wxWidgets 2.9?
As far as I understand we have to wait for 2.9 being stable to get a Snow Leopard "native" aMule...
In most cases Snowie produces 64-bit stuff and wxMac 2.8 leaks 64-bit Carbon support.
So we need wxCocoa which is under development yet... :-\
UPDATE: We got it working here (http://forum.amule.org/index.php?topic=17222.msg92963#msg92963)!
-
None that I know of. Stu worked a lot lately on wx-2.9 compatibility, so it should work now.
-
Compile, not work necessarily, especially not on wxCocoa.
wxMac 2.8 does not lack 64bits Carbon support, Carbon is simply not 64bits. You can compile 32bit wxMac (carbon) applications for Snow Leopard, or of course try wxCocoa in 2.9, but that'd be fun to say the least.
Read this if you haven't:
http://wiki.wxwidgets.org/Development:_wxMac#Building_under_10.6_Snow_Leopard
-
Read this if you haven't:
http://wiki.wxwidgets.org/Development:_wxMac#Building_under_10.6_Snow_Leopard
Thanks, this is what I read before trying... but they don't say you have to (re)install all MacPorts 32-bit... >:(
I will keep trying the second way... :D
-
Stu worked a lot lately on wx-2.9 compatibility, so it should work now.
Main work was rather on wx than on aMule. The networking code has seen big changes, and especially Unix was troublesome to fix. I'm afraid the latest Unix networking patch (61813) didn't make it into 2.9.0 . Does Mac also use Unix networking code (src/unix/sockunix.cpp) ?
Go ahead, try it. I don't have a clue how it behaves on Mac, and I'd like to find out. And the wx guys need the feedback to get 3.0 done.
-
Does Mac also use Unix networking code (src/unix/sockunix.cpp) ?
As far as I know, yes it does..
Go ahead, try it. I don't have a clue how it behaves on Mac, and I'd like to find out. And the wx guys need the feedback to get 3.0 done.
I was able to compile wx 2.9... but aMule seems not to recognize wx-config even if it actually exists. :-\
Still trying different configurations of wx...
-
I got it! 8)
Now I'm facing a new problem and I need your help boys!!! :P
How to build aMule while I'm using an unrecognized wxWidgets port? I mean:
$ ./wx-config --selected-config
osx_cocoa-unicode-release-static-2.9
but
(allowed values: auto, gtk1, gtk2, msw, motif, x11, mac, mgl, dfb, base)
???
-
Ok, I answer myself! :P
"Why don't you use that wonderful Search button over there?!?!?!?!"
Attached is my patch to aMule configure file. (see below)
-
Could you please use unified diff format for the patch? (diff -u file.old file.new) It's easier to read.
Apart from that: My compliments for your work here and particularly for creating a patch! Thank you!
-
Could you please use unified diff format for the patch? (diff -u file.old file.new) It's easier to read.
Apart from that: My compliments for your work here and particularly for creating a patch! Thank you!
I think it's the least I can do... :)
I attached the patch for aMule configure in unified format and a cumulative patch for wxWidgets 2.9.0 to be successfully built with cocoa on Snow Leopard (it seems it will be included in future releases). I included the "large file" support which was missing.
Hope they are the right formats... I don't know how to get rid of those .DS_Store files...
-
You are trying to build aMule 2.2.5 with wx 2.9. Only aMule SVN builds with it.
And your patch is to the wrong file - configure is generated. The source code for the part you changed is m4/wxwin.m4 . However there is already a toolkit "cocoa" in it (added by Kry) - are you sure that osx_cocoa is correct ?
-
osx_cocoa is probably the new name. The corect thing to do would be to use the m4 included with wx svn.
-
You are trying to build aMule 2.2.5 with wx 2.9. Only aMule SVN builds with it.
Oh thanks! :o
And your patch is to the wrong file - configure is generated. The source code for the part you changed is m4/wxwin.m4 . However there is already a toolkit "cocoa" in it (added by Kry) - are you sure that osx_cocoa is correct ?
Uhm... I found some old post where this solution was adopted to add a missing toolkit/wx port...
I used --with-osx_cococa to build wxWidgets 2.9.0 and it results in:
$ ./wx-config --selected-config
osx_cocoa-unicode-release-static-2.9
Using osx_cocoa the selected toolkit check is passed...
-
This should be the right patch...
BTW, I cannot find any link to cocoa toolkit. ???
-
At his point I'm not able to compile aMule (even SVN release)...
wxWidgets 2.9.0 (with patches)
I patched sources to solve a problem with texctrl under cocoa (read this (http://groups.google.com/group/wx-dev/msg/601f74ae1bc6cd39)) and applied this patch (http://trac.wxwidgets.org/changeset/60823#file0) for undefined large file support.
Then, this is the only way I found to compile wxWidgets with no errors:
$ ./configure --enable-unicode --disable-shared --disable-debug --disable-debug_gdb --with-osx_cocoa --with-macosx-version-min=10.6
Only some warnings like:
... "wxEVENTS_COMPATIBILITY_2_8" is not defined
aMule SVN Release 2.2.X
I applied only the patch to add "osx_cocoa" toolkit option to configure file. Then I tried a "no frills" configuration:
$ ./configure --disable-debug --enable-optimize --with-wxdir=../wxWidgets-2.9.0/ --with-crypto-prefix=/opt/local/ --with-gdlib-config=/opt/local/bin/gdlib-config --with-libiconv-prefix=/opt/local --with-toolkit=osx_cocoa
But make fails after a few lines:
ECMuleSocket.cpp: In member function ‘virtual int CECMuleSocket::InternalGetLastError()’:
ECMuleSocket.cpp:136: error: ‘wxSOCKET_DUMMY’ was not declared in this scope
ECMuleSocket.cpp:115: warning: enumeration value ‘wxSOCKET_OPTERR’ not handled in switch
make[7]: *** [ECMuleSocket.o] Error 1
make[7]: *** Waiting for unfinished jobs....
In file included from /Users/mirko/Desktop/TEMP/wxWidgets-2.9.0/include/wx/memory.h:16,
from /Users/mirko/Desktop/TEMP/wxWidgets-2.9.0/include/wx/object.h:20,
from /Users/mirko/Desktop/TEMP/wxWidgets-2.9.0/include/wx/event.h:17,
from /Users/mirko/Desktop/TEMP/wxWidgets-2.9.0/include/wx/socket.h:23,
from ECMuleSocket.h:29,
from RemoteConnect.h:30,
from RemoteConnect.cpp:26:
/Users/mirko/Desktop/TEMP/wxWidgets-2.9.0/include/wx/string.h: In constructor ‘wxString::iterator::iterator(wxString*, wxStringImpl::iterator)’:
/Users/mirko/Desktop/TEMP/wxWidgets-2.9.0/include/wx/string.h:1008: warning: declaration of ‘str’ shadows a member of 'this'
/Users/mirko/Desktop/TEMP/wxWidgets-2.9.0/include/wx/string.h: In constructor ‘wxString::const_iterator::const_iterator(const wxString*, wxStringImpl::const_iterator)’:
/Users/mirko/Desktop/TEMP/wxWidgets-2.9.0/include/wx/string.h:1053: warning: declaration of ‘str’ shadows a member of 'this'
make[6]: *** [all] Error 2
make[5]: *** [all-recursive] Error 1
make[4]: *** [all] Error 2
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
-
aMule SVN Release 2.2.X
You are trying to build aMule 2.2.5 with wx 2.9. Only aMule SVN builds with it.
He meant trunk, not the 2_2_X branch.
-
He meant trunk, not the 2_2_X branch.
Thanks... using the last trunk r9792 I get:
extern/wxWidgets/listctrl.cpp:374: warning: declaration of ‘Item’ shadows a member of 'this'
extern/wxWidgets/listctrl.cpp: In member function ‘bool MuleExtern::wxListLineData::SetAttributes(wxDC*, const wxListItemAttr*, bool)’:
extern/wxWidgets/listctrl.cpp:1419: error: ‘ControlRef’ was not declared in this scope
extern/wxWidgets/listctrl.cpp:1419: error: ‘IsControlActive’ was not declared in this scope
extern/wxWidgets/listctrl.cpp: In member function ‘void MuleExtern::wxListLineData::Draw(wxDC*)’:
extern/wxWidgets/listctrl.cpp:1483: error: ‘ControlRef’ was not declared in this scope
extern/wxWidgets/listctrl.cpp:1483: error: ‘IsControlActive’ was not declared in this scope
extern/wxWidgets/listctrl.cpp: In member function ‘void MuleExtern::wxListLineData::DrawInReportMode(wxDC*, const wxRect&, const wxRect&, bool)’:
extern/wxWidgets/listctrl.cpp:1546: error: ‘ControlRef’ was not declared in this scope
extern/wxWidgets/listctrl.cpp:1546: error: ‘IsControlActive’ was not declared in this scope
extern/wxWidgets/listctrl.cpp: In member function ‘void MuleExtern::wxListMainWindow::OnScroll(wxScrollWinEvent&)’:
extern/wxWidgets/listctrl.cpp:4871: warning: ‘OnScroll’ is deprecated (declared at /Users/mirko/Desktop/wxWidgets_2.9_trunk/include/wx/scrolwin.h:197)
extern/wxWidgets/listctrl.cpp: In member function ‘void MuleExtern::wxGenericListCtrl::CalculateAndSetHeaderHeight()’:
extern/wxWidgets/listctrl.cpp:4977: error: ‘SInt32’ was not declared in this scope
extern/wxWidgets/listctrl.cpp:4977: error: expected `;' before ‘h’
extern/wxWidgets/listctrl.cpp:4978: error: ‘kThemeMetricListHeaderHeight’ was not declared in this scope
extern/wxWidgets/listctrl.cpp:4978: error: ‘h’ was not declared in this scope
extern/wxWidgets/listctrl.cpp:4978: error: ‘GetThemeMetric’ was not declared in this scope
make[3]: *** [libmuleappgui_a-listctrl.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Now I think I will start from scratch using wxWidgets trunk, since the dev-team released lots of patches... :-X
EDIT: The above error occurs using wxWidgets 2.9.1 (trunk) too...
-
I knew that thing would bite our ass some day. Just what happens when you hack around in wx source and then update wx. :-X
Problem code is inside a #ifdef __WXMAC__ , that' s why it works on Windows and Linux.
I'll take a look if I can merge a bit, but that's ticklish and may break 2.8 build of course.
osx_cocoa is probably the new name. The corect thing to do would be to use the m4 included with wx svn.
Except that that one has no cocoa toolkit (and no base either).
dnl PORT must be one of the allowed values
if test "$TOOLKIT" != "gtk1" -a "$TOOLKIT" != "gtk2" -a \
"$TOOLKIT" != "msw" -a "$TOOLKIT" != "motif" -a \
"$TOOLKIT" != "x11" -a "$TOOLKIT" != "mac" -a \
"$TOOLKIT" != "mgl" -a "$TOOLKIT" != "dfb" ; then
AC_MSG_ERROR([
Unrecognized option value (allowed values: auto, gtk1, gtk2, msw, motif, x11, mac, mgl, dfb)
])
fi
-
Try if it works with this patched file. If it does, try again with wx 2.8 if that works still.
-
Try if it works with this patched file. If it does, try again with wx 2.8 if that works still.
We have been unlucky:
extern/wxWidgets/listctrl.cpp: In member function ‘int MuleExtern::wxListLineDataArray::Index(const MuleExtern::_wxObjArraywxListLineDataArray&, bool) const’:
extern/wxWidgets/listctrl.cpp:374: warning: declaration of ‘Item’ shadows a member of 'this'
extern/wxWidgets/listctrl.cpp: In member function ‘void MuleExtern::wxListMainWindow::OnScroll(wxScrollWinEvent&)’:
extern/wxWidgets/listctrl.cpp:4867: warning: ‘OnScroll’ is deprecated (declared at /Users/mirko/Desktop/TEMP/wxWidgets_trunk/include/wx/scrolwin.h:197)
extern/wxWidgets/listctrl.cpp: In member function ‘void MuleExtern::wxGenericListCtrl::CalculateAndSetHeaderHeight()’:
extern/wxWidgets/listctrl.cpp:4974: error: ‘kThemeMetricListHeaderHeight’ was not declared in this scope
extern/wxWidgets/listctrl.cpp:4974: error: ‘GetThemeMetric’ was not declared in this scope
make[3]: *** [libmuleappgui_a-listctrl.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
-
We have been unlucky:
No, I have been careless. :-[ Try this one.
-
No, I have been careless. :-[ Try this one.
No way... :-[
then mv -f ".deps/libmuleappgui_a-MuleListCtrl.Tpo" ".deps/libmuleappgui_a-MuleListCtrl.Po"; else rm -f ".deps/libmuleappgui_a-MuleListCtrl.Tpo"; exit 1; fi
make[3]: *** [libmuleappgui_a-listctrl.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
-
Well, at least we've come up to link stage. But you've cropped the actual error message. :)
-
This is the whole output... attached is better! ;D
-
Getting closer.
As a rule of thumb with compiler errors:
- rerun make (it will weed out all that went ok)
- search for the first line with "error" and post evrything from there on (within reason of course)
This error must have been there from the beginning, but you didn't post it.
-
It failed again.
This is the re-make log:
make all-recursive
Making all in intl
make[2]: Nothing to be done for `all'.
Making all in po
make[2]: Nothing to be done for `all'.
Making all in docs
Making all in man
make[3]: Nothing to be done for `all'.
make[3]: Nothing to be done for `all-am'.
Making all in src
Making all in libs
Making all in ec
make all-recursive
Making all in cpp
make all-am
make[7]: Nothing to be done for `all-am'.
make[6]: Nothing to be done for `all-am'.
Making all in common
make[4]: Nothing to be done for `all'.
make[4]: Nothing to be done for `all-am'.
Making all in utils
make[4]: Nothing to be done for `all-am'.
Making all in pixmaps
make[4]: Nothing to be done for `all-am'.
Making all in skins
make[3]: Nothing to be done for `all'.
rm -f libmuleappcore.a
ar cru libmuleappcore.a libmuleappcore_a-AsyncDNS.o libmuleappcore_a-DeadSourceList.o libmuleappcore_a-FileArea.o libmuleappcore_a-FileAutoClose.o libmuleappcore_a-Scanner.o libmuleappcore_a-Parser.o libmuleappcore_a-PlatformSpecific.o libmuleappcore_a-Entry.o libmuleappcore_a-SearchManager.o libmuleappcore_a-RoutingBin.o libmuleappcore_a-RandomFunctions.o libmuleappcore_a-StateMachine.o libmuleappcore_a-ThreadScheduler.o libmuleappcore_a-UInt128.o
ranlib libmuleappcore.a
rm -f libmuleappgui.a
ar cru libmuleappgui.a libmuleappgui_a-BarShader.o libmuleappgui_a-ChatWnd.o libmuleappgui_a-ColorFrameCtrl.o libmuleappgui_a-CommentDialog.o libmuleappgui_a-CommentDialogLst.o libmuleappgui_a-DirectoryTreeCtrl.o libmuleappgui_a-EditServerListDlg.o libmuleappgui_a-listctrl.o libmuleappgui_a-FileDetailListCtrl.o libmuleappgui_a-MuleGifCtrl.o libmuleappgui_a-MuleListCtrl.o libmuleappgui_a-MuleNotebook.o libmuleappgui_a-MuleTextCtrl.o libmuleappgui_a-MuleCollection.o libmuleappgui_a-muuli_wdr.o
ranlib libmuleappgui.a
rm -f libmuleappcommon.a
ar cru libmuleappcommon.a libmuleappcommon_a-CFile.o libmuleappcommon_a-DataToText.o libmuleappcommon_a-ED2KLink.o libmuleappcommon_a-MagnetURI.o libmuleappcommon_a-MemFile.o libmuleappcommon_a-NetworkFunctions.o libmuleappcommon_a-Packet.o libmuleappcommon_a-RLE.o libmuleappcommon_a-SafeFile.o libmuleappcommon_a-SHA.o libmuleappcommon_a-Tag.o libmuleappcommon_a-Timer.o
ranlib libmuleappcommon.a
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -no-cpp-precomp -D_INTL_REDIRECT_MACROS -DNOPCH -DUSE_WX_EXTENSIONS -I/opt/local/include/upnp -DENABLE_UPNP=1 -D_THREAD_SAFE -I/Users/mirko/Desktop/TEMP/wxWidgets_trunk/lib/wx/include/osx_cocoa-unicode-release-static-2.9 -I/Users/mirko/Desktop/TEMP/wxWidgets_trunk/include -D_FILE_OFFSET_BITS=64 -D__WXOSX_COCOA__ -I./libs -Ilibs -I./include -I/opt/local//include -D__WEAK_CRYPTO__ -I/opt/local/include -W -Wall -Wshadow -Wundef -MT amule-amule.o -MD -MP -MF ".deps/amule-amule.Tpo" -c -o amule-amule.o `test -f 'amule.cpp' || echo './'`amule.cpp; \
then mv -f ".deps/amule-amule.Tpo" ".deps/amule-amule.Po"; else rm -f ".deps/amule-amule.Tpo"; exit 1; fi
amule.cpp:98:69: error: wx/mac/corefoundation/cfstring.h: No such file or directory
In file included from /opt/local/include/upnp/upnp.h:505,
from UPnPCompatibility.h:31,
from UPnPBase.h:37,
from amule.cpp:88:
/opt/local/include/upnp/upnpdebug.h:130: warning: unused parameter ‘log_level’
/opt/local/include/upnp/upnpdebug.h:171: warning: unused parameter ‘ErrFileName’
/opt/local/include/upnp/upnpdebug.h:171: warning: unused parameter ‘InfoFileName’
/opt/local/include/upnp/upnpdebug.h:194: warning: unused parameter ‘level’
/opt/local/include/upnp/upnpdebug.h:194: warning: unused parameter ‘module’
/opt/local/include/upnp/upnpdebug.h:223: warning: unused parameter ‘DLevel’
/opt/local/include/upnp/upnpdebug.h:223: warning: unused parameter ‘Module’
/opt/local/include/upnp/upnpdebug.h:268: warning: unused parameter ‘DLevel’
/opt/local/include/upnp/upnpdebug.h:268: warning: unused parameter ‘Module’
/opt/local/include/upnp/upnpdebug.h:268: warning: unused parameter ‘DbgFileName’
/opt/local/include/upnp/upnpdebug.h:268: warning: unused parameter ‘DbgLineNo’
/opt/local/include/upnp/upnpdebug.h:268: warning: unused parameter ‘FmtStr’
/opt/local/include/upnp/upnpdebug.h:297: warning: unused parameter ‘fd’
/opt/local/include/upnp/upnpdebug.h:297: warning: unused parameter ‘lines’
/opt/local/include/upnp/upnpdebug.h:297: warning: unused parameter ‘size’
/opt/local/include/upnp/upnpdebug.h:297: warning: unused parameter ‘starlength’
/opt/local/include/upnp/upnpdebug.h:324: warning: unused parameter ‘fd’
/opt/local/include/upnp/upnpdebug.h:324: warning: unused parameter ‘DbgFileName’
/opt/local/include/upnp/upnpdebug.h:324: warning: unused parameter ‘DbgLineNo’
amule.cpp: In member function ‘virtual bool CamuleApp::OnInit()’:
amule.cpp:850: error: ‘wxMacCFStringHolder’ was not declared in this scope
make[3]: *** [amule-amule.o] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Attached the full make log.
-
listctrl seems fine at last. :)
The remake log is enough, you can even remove the noise before the first if g++ line.
Next step. I'm flying blind here, just try it. If it fails again, just remove the two #if __WXMAC__ blocks at lines 96 and 842. It's just code for loading amuleweb from a "bundle" (whatever that is, remember I have no clue about macs). aMule will run without it. :P
And you don't need a full remake. Just drop in the modified amule.cpp and make it.
-
It failed even without the cited blocks:
g++ -W -Wall -Wshadow -Wundef -bind_at_load -lpthread -o amule amule-CaptchaDialog.o amule-CaptchaGenerator.o amule-RC4Encrypt.o amule-amule.o amule-BaseClient.o amule-ClientList.o amule-ClientCreditsList.o amule-ClientTCPSocket.o amule-ClientUDPSocket.o amule-CorruptionBlackBox.o amule-DownloadClient.o amule-DownloadQueue.o amule-ECSpecialCoreTags.o amule-EMSocket.o amule-EncryptedStreamSocket.o amule-EncryptedDatagramSocket.o amule-ExternalConn.o amule-Friend.o amule-FriendList.o amule-HTTPDownload.o amule-IPFilter.o amule-KnownFileList.o amule-ListenSocket.o amule-MuleUDPSocket.o amule-SearchFile.o amule-SearchList.o amule-ServerConnect.o amule-ServerList.o amule-ServerSocket.o amule-ServerUDPSocket.o amule-SharedFileList.o amule-ThreadTasks.o amule-UploadBandwidthThrottler.o amule-UploadClient.o amule-UploadQueue.o amule-Indexed.o amule-Kademlia.o amule-Prefs.o amule-Search.o amule-UDPFirewallTester.o amule-KademliaUDPListener.o amule-PacketTracking.o amule-Contact.o amule-RoutingZone.o amule-UPnPBase.o amule-amule-gui.o amule-amuleDlg.o amule-AddFriend.o amule-CatDialog.o amule-ChatSelector.o amule-ClientDetailDialog.o amule-FileDetailDialog.o amule-KadDlg.o amule-OScopeCtrl.o amule-PartFileConvert.o amule-PrefsUnifiedDlg.o amule-SearchDlg.o amule-ServerWnd.o amule-SharedFilesWnd.o amule-StatisticsDlg.o amule-SearchListCtrl.o amule-DownloadListCtrl.o amule-ClientListCtrl.o amule-FriendListCtrl.o amule-ServerListCtrl.o amule-SharedFilesCtrl.o amule-MuleTrayIcon.o amule-MuleColour.o amule-TransferWnd.o amule-ClientCredits.o amule-ECSpecialMuleTags.o amule-KnownFile.o amule-GapList.o amule-GetTickCount.o amule-GuiEvents.o amule-Logger.o amule-PartFile.o amule-Preferences.o amule-Proxy.o amule-Server.o amule-Statistics.o amule-StatTree.o amule-SHAHashSet.o amule-TerminationProcess.o amule-TerminationProcessAmuleweb.o amule-UserEvents.o amule-OtherFunctions.o amule-NetworkFunctions.o -L. -lmuleappcommon -Llibs/common -Llibs/ec/cpp -lmulecommon -lec -lz -L/opt/local//lib -lcryptopp -L. -lmuleappcore -L/opt/local/lib -lupnp -lthreadutil -lixml -L. -lmuleappgui -L/Users/mirko/Desktop/TEMP/wxWidgets_trunk/lib -framework QuickTime -framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework System -framework OpenGL /Users/mirko/Desktop/TEMP/wxWidgets_trunk/lib/libwx_osx_cocoau_adv-2.9.a /Users/mirko/Desktop/TEMP/wxWidgets_trunk/lib/libwx_osx_cocoau_core-2.9.a /Users/mirko/Desktop/TEMP/wxWidgets_trunk/lib/libwx_baseu_net-2.9.a /Users/mirko/Desktop/TEMP/wxWidgets_trunk/lib/libwx_baseu-2.9.a -framework WebKit -lwxregexu-2.9 -lwxtiff-2.9 -lwxjpeg-2.9 -lwxpng-2.9 -lz -lpthread -liconv
ld: warning: in /System/Library/Frameworks//QuickTime.framework/QuickTime, missing required architecture x86_64 in file
Undefined symbols:
"_iconv_open", referenced from:
wxMBConv_iconv::wxMBConv_iconv(char const*)in libwx_baseu-2.9.a(baselib_strconv.o)
wxMBConv_iconv::wxMBConv_iconv(char const*)in libwx_baseu-2.9.a(baselib_strconv.o)
wxMBConv_iconv::wxMBConv_iconv(char const*)in libwx_baseu-2.9.a(baselib_strconv.o)
wxMBConv_iconv::wxMBConv_iconv(char const*)in libwx_baseu-2.9.a(baselib_strconv.o)
"_iconv", referenced from:
wxMBConv_iconv::ToWChar(wchar_t*, unsigned long, char const*, unsigned long) constin libwx_baseu-2.9.a(baselib_strconv.o)
wxMBConv_iconv::ToWChar(wchar_t*, unsigned long, char const*, unsigned long) constin libwx_baseu-2.9.a(baselib_strconv.o)
wxMBConv_iconv::FromWChar(char*, unsigned long, wchar_t const*, unsigned long) constin libwx_baseu-2.9.a(baselib_strconv.o)
wxMBConv_iconv::FromWChar(char*, unsigned long, wchar_t const*, unsigned long) constin libwx_baseu-2.9.a(baselib_strconv.o)
wxMBConv_iconv::GetMBNulLen() const in libwx_baseu-2.9.a(baselib_strconv.o)
wxMBConv_iconv::wxMBConv_iconv(char const*)in libwx_baseu-2.9.a(baselib_strconv.o)
"_iconv_close", referenced from:
wxMBConv_iconv::~wxMBConv_iconv()in libwx_baseu-2.9.a(baselib_strconv.o)
wxMBConv_iconv::~wxMBConv_iconv()in libwx_baseu-2.9.a(baselib_strconv.o)
wxMBConv_iconv::~wxMBConv_iconv()in libwx_baseu-2.9.a(baselib_strconv.o)
wxMBConv_iconv::~wxMBConv_iconv()in libwx_baseu-2.9.a(baselib_strconv.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[3]: *** [amule] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
-
This doesn't look like a problem caused by aMule. Could you please check if libiconv is compiled for both 32 bit and 64 bit? (It should be part of the core system, it is required for gettext for instance.)
-
This doesn't look like a problem caused by aMule. Could you please check if libiconv is compiled for both 32 bit and 64 bit? (It should be part of the core system, it is required for gettext for instance.)
I use libiconv from MacPorts and is compiled for 64 bit only, like all portfiles under Snow Leopard:
$ file /opt/local/lib/libiconv.dylib
/opt/local/lib/libiconv.dylib: Mach-O 64-bit dynamically linked shared library x86_64
$ file /opt/local/lib/libiconv.2.dylib
/opt/local/lib/libiconv.2.dylib: Mach-O 64-bit dynamically linked shared library x86_64
-
You are not alone with this problem. (http://discussions.apple.com/thread.jspa?threadID=1931034&tstart=-2)
-
You are not alone with this problem. (http://discussions.apple.com/thread.jspa?threadID=1931034&tstart=-2)
Well... but the portfile should be built from scratch and should have nothing in common with libiconv from Apple.
This is why I'm not using the "ready_for_use" libiconv into /usr/lib. Do you mean that there's something wrong with Mac OS itself? :-\
-
There is a lot wrong with Mac OS itself. ;D
I can't really help you with this one - you probably know more about it then me.
Now please run aMule's configure with --disable-nls , clean, rebuild and see if that works around the problem. (And please use my patched amule.cpp instead of the one where you removed the sections. These two problems are unrelated.)
-
No way... :(
g++ -W -Wall -Wshadow -Wundef -bind_at_load -lpthread -o amule amule-CaptchaDialog.o amule-CaptchaGenerator.o amule-RC4Encrypt.o amule-amule.o amule-BaseClient.o amule-ClientList.o amule-ClientCreditsList.o amule-ClientTCPSocket.o amule-ClientUDPSocket.o amule-CorruptionBlackBox.o amule-DownloadClient.o amule-DownloadQueue.o amule-ECSpecialCoreTags.o amule-EMSocket.o amule-EncryptedStreamSocket.o amule-EncryptedDatagramSocket.o amule-ExternalConn.o amule-Friend.o amule-FriendList.o amule-HTTPDownload.o amule-IPFilter.o amule-KnownFileList.o amule-ListenSocket.o amule-MuleUDPSocket.o amule-SearchFile.o amule-SearchList.o amule-ServerConnect.o amule-ServerList.o amule-ServerSocket.o amule-ServerUDPSocket.o amule-SharedFileList.o amule-ThreadTasks.o amule-UploadBandwidthThrottler.o amule-UploadClient.o amule-UploadQueue.o amule-Indexed.o amule-Kademlia.o amule-Prefs.o amule-Search.o amule-UDPFirewallTester.o amule-KademliaUDPListener.o amule-PacketTracking.o amule-Contact.o amule-RoutingZone.o amule-UPnPBase.o amule-amule-gui.o amule-amuleDlg.o amule-AddFriend.o amule-CatDialog.o amule-ChatSelector.o amule-ClientDetailDialog.o amule-FileDetailDialog.o amule-KadDlg.o amule-OScopeCtrl.o amule-PartFileConvert.o amule-PrefsUnifiedDlg.o amule-SearchDlg.o amule-ServerWnd.o amule-SharedFilesWnd.o amule-StatisticsDlg.o amule-SearchListCtrl.o amule-DownloadListCtrl.o amule-ClientListCtrl.o amule-FriendListCtrl.o amule-ServerListCtrl.o amule-SharedFilesCtrl.o amule-MuleTrayIcon.o amule-MuleColour.o amule-TransferWnd.o amule-ClientCredits.o amule-ECSpecialMuleTags.o amule-KnownFile.o amule-GapList.o amule-GetTickCount.o amule-GuiEvents.o amule-Logger.o amule-PartFile.o amule-Preferences.o amule-Proxy.o amule-Server.o amule-Statistics.o amule-StatTree.o amule-SHAHashSet.o amule-TerminationProcess.o amule-TerminationProcessAmuleweb.o amule-UserEvents.o amule-OtherFunctions.o amule-NetworkFunctions.o -L. -lmuleappcommon -Llibs/common -Llibs/ec/cpp -lmulecommon -lec -lz -L/opt/local//lib -lcryptopp -L. -lmuleappcore -L/opt/local/lib -lupnp -lthreadutil -lixml -L. -lmuleappgui -L/Users/mirko/Desktop/TEMP/wxWidgets_trunk/lib -framework QuickTime -framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework System -framework OpenGL /Users/mirko/Desktop/TEMP/wxWidgets_trunk/lib/libwx_osx_cocoau_adv-2.9.a /Users/mirko/Desktop/TEMP/wxWidgets_trunk/lib/libwx_osx_cocoau_core-2.9.a /Users/mirko/Desktop/TEMP/wxWidgets_trunk/lib/libwx_baseu_net-2.9.a /Users/mirko/Desktop/TEMP/wxWidgets_trunk/lib/libwx_baseu-2.9.a -framework WebKit -lwxregexu-2.9 -lwxtiff-2.9 -lwxjpeg-2.9 -lwxpng-2.9 -lz -lpthread -liconv
ld: warning: in /System/Library/Frameworks//QuickTime.framework/QuickTime, missing required architecture x86_64 in file
Undefined symbols:
"_iconv_open", referenced from:
wxMBConv_iconv::wxMBConv_iconv(char const*)in libwx_baseu-2.9.a(baselib_strconv.o)
wxMBConv_iconv::wxMBConv_iconv(char const*)in libwx_baseu-2.9.a(baselib_strconv.o)
wxMBConv_iconv::wxMBConv_iconv(char const*)in libwx_baseu-2.9.a(baselib_strconv.o)
wxMBConv_iconv::wxMBConv_iconv(char const*)in libwx_baseu-2.9.a(baselib_strconv.o)
"_iconv", referenced from:
wxMBConv_iconv::ToWChar(wchar_t*, unsigned long, char const*, unsigned long) constin libwx_baseu-2.9.a(baselib_strconv.o)
wxMBConv_iconv::ToWChar(wchar_t*, unsigned long, char const*, unsigned long) constin libwx_baseu-2.9.a(baselib_strconv.o)
wxMBConv_iconv::FromWChar(char*, unsigned long, wchar_t const*, unsigned long) constin libwx_baseu-2.9.a(baselib_strconv.o)
wxMBConv_iconv::FromWChar(char*, unsigned long, wchar_t const*, unsigned long) constin libwx_baseu-2.9.a(baselib_strconv.o)
wxMBConv_iconv::GetMBNulLen() const in libwx_baseu-2.9.a(baselib_strconv.o)
wxMBConv_iconv::wxMBConv_iconv(char const*)in libwx_baseu-2.9.a(baselib_strconv.o)
"_iconv_close", referenced from:
wxMBConv_iconv::~wxMBConv_iconv()in libwx_baseu-2.9.a(baselib_strconv.o)
wxMBConv_iconv::~wxMBConv_iconv()in libwx_baseu-2.9.a(baselib_strconv.o)
wxMBConv_iconv::~wxMBConv_iconv()in libwx_baseu-2.9.a(baselib_strconv.o)
wxMBConv_iconv::~wxMBConv_iconv()in libwx_baseu-2.9.a(baselib_strconv.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[3]: *** [amule] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
EDIT: I used
./configure --disable-debug --with-wxdir=../wxWidgets_trunk/ --with-crypto-prefix=/opt/local/ --with-gdlib-config=/opt/local/bin/gdlib-config --disable-nls --with-toolkit=osx_cocoa
-
Uhm... there's something still not clear to me. I cannot forget this (http://forum.amule.org/index.php?topic=13920.msg92460#msg92460) strange behavior: what if the same error occurred with libiconv?
$ locate libiconv
/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/libiconv.2.2.0.dylib
/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/libiconv.2.dylib
/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/libiconv.dylib
/Developer/SDKs/MacOSX10.5.sdk/usr/include/php/ext/iconv/php_have_libiconv.h
/Developer/SDKs/MacOSX10.5.sdk/usr/lib/libiconv.2.4.0.dylib
/Developer/SDKs/MacOSX10.5.sdk/usr/lib/libiconv.2.dylib
/Developer/SDKs/MacOSX10.5.sdk/usr/lib/libiconv.dylib
/Developer/SDKs/MacOSX10.6.sdk/usr/include/php/ext/iconv/php_have_libiconv.h
/Developer/SDKs/MacOSX10.6.sdk/usr/lib/libiconv.2.4.0.dylib
/Developer/SDKs/MacOSX10.6.sdk/usr/lib/libiconv.2.dylib
/Developer/SDKs/MacOSX10.6.sdk/usr/lib/libiconv.dylib
/opt/local/lib/libiconv.2.dylib
/opt/local/lib/libiconv.a
/opt/local/lib/libiconv.dylib
/opt/local/lib/libiconv.la
/opt/local/share/doc/libiconv-1.13
/opt/local/share/doc/libiconv-1.13/iconv.1.html
/opt/local/share/doc/libiconv-1.13/iconv.3.html
/opt/local/share/doc/libiconv-1.13/iconv_close.3.html
/opt/local/share/doc/libiconv-1.13/iconv_open.3.html
/opt/local/share/doc/libiconv-1.13/iconv_open_into.3.html
/opt/local/share/doc/libiconv-1.13/iconvctl.3.html
/opt/local/var/macports/distfiles/libiconv
/opt/local/var/macports/distfiles/libiconv/libiconv-1.13.tar.gz
/opt/local/var/macports/receipts/libiconv
/opt/local/var/macports/receipts/libiconv/1.13_0
/opt/local/var/macports/receipts/libiconv/1.13_0/receipt.bz2
/opt/local/var/macports/software/libiconv
/opt/local/var/macports/software/libiconv/1.13_0
/opt/local/var/macports/software/libiconv/1.13_0/opt
/opt/local/var/macports/software/libiconv/1.13_0/opt/local
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/bin
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/bin/iconv
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/include
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/include/iconv.h
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/include/libcharset.h
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/include/localcharset.h
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/lib
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/lib/libcharset.1.dylib
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/lib/libcharset.a
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/lib/libcharset.dylib
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/lib/libcharset.la
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/lib/libiconv.2.dylib
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/lib/libiconv.a
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/lib/libiconv.dylib
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/lib/libiconv.la
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/share
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/share/doc
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/share/doc/libiconv-1.13
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/share/doc/libiconv-1.13/iconv.1.html
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/share/doc/libiconv-1.13/iconv.3.html
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/share/doc/libiconv-1.13/iconv_close.3.html
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/share/doc/libiconv-1.13/iconv_open.3.html
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/share/doc/libiconv-1.13/iconv_open_into.3.html
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/share/doc/libiconv-1.13/iconvctl.3.html
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/share/man
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/share/man/man1
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/share/man/man1/iconv.1.gz
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/share/man/man3
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/share/man/man3/iconv.3.gz
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/share/man/man3/iconv_close.3.gz
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/share/man/man3/iconv_open.3.gz
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/share/man/man3/iconv_open_into.3.gz
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/share/man/man3/iconvctl.3.gz
/opt/local/var/macports/sources/rsync.macports.org/release/ports/textproc/libiconv
/opt/local/var/macports/sources/rsync.macports.org/release/ports/textproc/libiconv/Portfile
/opt/local/var/macports/sources/rsync.macports.org/release/ports/textproc/libiconv/files
/opt/local/var/macports/sources/rsync.macports.org/release/ports/textproc/libiconv/files/patch-Makefile.devel
/opt/local/var/macports/sources/rsync.macports.org/release/ports/textproc/libiconv/files/patch-src-Makefile.in-darwin.diff
/opt/local/var/macports/sources/rsync.macports.org/release/ports/textproc/libiconv/files/patch-utf8mac.diff
/opt/local/var/macports/sources/rsync.macports.org/release/ports/textproc/recode/files/patch-src_libiconv.c.diff
/usr/include/php/ext/iconv/php_have_libiconv.h
/usr/lib/libiconv.2.4.0.dylib
/usr/lib/libiconv.2.dylib
/usr/lib/libiconv.dylib
and
$ locate iconv.h
/Developer/SDKs/MacOSX10.4u.sdk/usr/include/iconv.h
/Developer/SDKs/MacOSX10.4u.sdk/usr/include/php/ext/iconv/php_iconv.h
/Developer/SDKs/MacOSX10.5.sdk/usr/include/iconv.h
/Developer/SDKs/MacOSX10.5.sdk/usr/include/php/ext/iconv/php_have_bsd_iconv.h
/Developer/SDKs/MacOSX10.5.sdk/usr/include/php/ext/iconv/php_have_glibc_iconv.h
/Developer/SDKs/MacOSX10.5.sdk/usr/include/php/ext/iconv/php_have_iconv.h
/Developer/SDKs/MacOSX10.5.sdk/usr/include/php/ext/iconv/php_have_libiconv.h
/Developer/SDKs/MacOSX10.5.sdk/usr/include/php/ext/iconv/php_iconv.h
/Developer/SDKs/MacOSX10.6.sdk/usr/include/iconv.h
/Developer/SDKs/MacOSX10.6.sdk/usr/include/php/ext/iconv/php_have_bsd_iconv.h
/Developer/SDKs/MacOSX10.6.sdk/usr/include/php/ext/iconv/php_have_glibc_iconv.h
/Developer/SDKs/MacOSX10.6.sdk/usr/include/php/ext/iconv/php_have_ibm_iconv.h
/Developer/SDKs/MacOSX10.6.sdk/usr/include/php/ext/iconv/php_have_iconv.h
/Developer/SDKs/MacOSX10.6.sdk/usr/include/php/ext/iconv/php_have_libiconv.h
/Developer/SDKs/MacOSX10.6.sdk/usr/include/php/ext/iconv/php_iconv.h
/opt/local/include/iconv.h
/opt/local/var/macports/software/libiconv/1.13_0/opt/local/include/iconv.h
/usr/include/iconv.h
/usr/include/php/ext/iconv/php_have_bsd_iconv.h
/usr/include/php/ext/iconv/php_have_glibc_iconv.h
/usr/include/php/ext/iconv/php_have_ibm_iconv.h
/usr/include/php/ext/iconv/php_have_iconv.h
/usr/include/php/ext/iconv/php_have_libiconv.h
/usr/include/php/ext/iconv/php_iconv.h
-
You are using the header from /opt/local/include, and probably the dynamic lib from /usr/lib (with the matching header in /usr/include). That's the problem I'd guess. Why do you have two in the first place?
-
You are using the header from /opt/local/include, and probably the dynamic lib from /usr/lib (with the matching header in /usr/include). That's the problem I'd guess. Why do you have two in the first place?
The one in /usr/lib is provided by Apple and I suppose it comes with Xcode 3.2, while the one in /opt/local/lib has been installed by me through macports...
How to prevent aMule from searching in any other folder?
-
I'm no expert, but I believe that's currently not possible without hacks.
Try replacing "-liconv" with the path to the library file, for instance "/opt/local/var/macports/software/libiconv/1.13_0/opt/local/lib/libiconv.a" (this should link libiconv statically preventing problems on other computers without the Macports libiconv).
-
Now, before starting to add evil hacks to aMule, it's wxWidgets that fails to link with libiconv. Do you still have the config.log from the wxWidgets configuration? Also, if you remember, the configure flags used.
-
Now, before starting to add evil hacks to aMule, it's wxWidgets that fails to link with libiconv. Do you still have the config.log from the wxWidgets configuration? Also, if you remember, the configure flags used.
These are the configure flags I used:
./configure --enable-unicode --disable-shared --disable-debug --disable-debug_gdb --with-osx_cocoa --with-macosx-version-min=10.6
and this is the last portion of the config log...
Libtiff is now configured for i386-apple-darwin10.0.0
Installation directory: /usr/local
Documentation directory: ${prefix}/share/doc/tiff-3.8.2
C compiler: gcc -g -O2 -Wall -W
C++ compiler: g++ -g -O2
Enable runtime linker paths: no
Support Microsoft Document Imaging: yes
Support for internal codecs:
CCITT Group 3 & 4 algorithms: yes
Macintosh PackBits algorithm: yes
LZW algorithm: yes
ThunderScan 4-bit RLE algorithm: yes
NeXT 2-bit RLE algorithm: yes
LogLuv high dynamic range encoding: yes
Support for external codecs:
ZLIB support: yes
Pixar log-format algorithm: yes
JPEG support: no
Old JPEG support: no
C++ support: yes
OpenGL support: no
Configured wxWidgets 2.9.0 for `i686-apple-darwin10.0.0'
Which GUI toolkit should wxWidgets use? osx_cocoa
Should wxWidgets be compiled into single library? no
Should wxWidgets be compiled in debug mode? no
Should wxWidgets be linked as a shared library? no
Should wxWidgets support Unicode? yes (using UTF-8)
What level of wxWidgets compatibility should be enabled?
wxWidgets 2.6 no
wxWidgets 2.8 no
Which libraries should wxWidgets use?
STL no
jpeg builtin
png builtin
regex builtin
tiff builtin
zlib sys
expat sys
libmspack no
sdl no
Anyway, I'm building from scratch last wxWidgets trunk (r61942)...
-
Please post the full log.
-
I have just (successfully) built last revision of wxWidgets with:
./configure --enable-unicode --disable-shared --disable-debug --disable-debug_gdb --with-osx_cocoa --with-macosx-version-min=10.6 --with-libiconv-prefix=/opt/local/
and I got the attached conflog.
-
Great... thank you all! With the config above I was able to build aMule... now we have to make it working! :P
It crashes after a couple of seconds... crashlog attached.
-
Config flags I used to build amule:
./configure --disable-debug --with-wxdir=../wxWidgets_r61942/ --with-crypto-prefix=/opt/local/ --with-gdlib-config=/opt/local/bin/gdlib-config --with-libiconv-prefix=/opt/local --with-toolkit=osx_cocoa
There is the conflog attached.
And this is what I got from mac_packager:
$ ./src/utils/scripts/mac_packager
-n Step 1: Cleaning bundle...
Done
-n Step 2: Copying aMule to app bundle...
cp: src/webserver/src/amuleweb: No such file or directory
cp: src/amulecmd: No such file or directory
Done
-n Step 3: Installing translations to app bundle...
Done
Step 4: Copying libs to Framework
wxWidgets...
otool: can't open file: aMule.app/Contents/MacOS/amuleweb (No such file or directory)
otool: can't open file: aMule.app/Contents/MacOS/amulecmd (No such file or directory)
Libs copy done.
Step 5: Update libs info
Updating libixml.2.dylib
Updating aMule lib info for libixml.2.dylib
otool: can't open file: MacOS/amuleweb (No such file or directory)
otool: can't open file: MacOS/amulecmd (No such file or directory)
Updating libthreadutil.2.dylib
Updating aMule lib info for libthreadutil.2.dylib
otool: can't open file: MacOS/amuleweb (No such file or directory)
otool: can't open file: MacOS/amulecmd (No such file or directory)
Updating libupnp.3.dylib
Updating aMule lib info for libupnp.3.dylib
otool: can't open file: MacOS/amuleweb (No such file or directory)
otool: can't open file: MacOS/amulecmd (No such file or directory)
Libs info updated, aMule.app is ready to package.
-n Creating aMule.zip...
Done
I added since there is no aMule.zip in the folder...
-
Now - how did you solve the libiconv problem? Did it just vanish with the new wx SVN? (Or with the way you built it...)
Dyld Error Message:
Library not loaded: @executable_path/../Frameworks/libupnp.3.dylib
Referenced from: /Users/mirko/Desktop/TEMP/aMule-SVN-r9803/aMule.app/Contents/MacOS/amule
Reason: no suitable image found. Did find:
/Users/mirko/Desktop/TEMP/aMule-SVN-r9803/aMule.app/Contents/MacOS/../Frameworks/libupnp.3.dylib: no matching architecture in universal wrapper
/Users/mirko/Desktop/TEMP/aMule-SVN-r9803/aMule.app/Contents/MacOS/../Frameworks/libupnp.3.dylib: no matching architecture in universal wrapper
Either solve that, or recompile aMule without uPnP.
-
Now - how did you solve the libiconv problem? Did it just vanish with the new wx SVN? (Or with the way you built it...)
I think it depends on the way I built wxWidgets:
./configure --enable-unicode --disable-shared --disable-debug --disable-debug_gdb --with-osx_cocoa --with-macosx-version-min=10.6 --with-libiconv-prefix=/opt/local
I suppose libiconv prefix is needed on Snow Leopard since there is a libiconv included into the core system now.
-
Either solve that, or recompile aMule without uPnP.
Uhm... I don't understand that error:
$ ls -la /opt/local/lib/libupnp*
-rwxr-xr-x 2 root admin 153596 2 Set 16:53 /opt/local/lib/libupnp.3.0.5.dylib
lrwxr-xr-x 1 root admin 19 2 Set 16:53 /opt/local/lib/libupnp.3.dylib -> libupnp.3.0.5.dylib
-rw-r--r-- 2 root admin 234136 2 Set 16:53 /opt/local/lib/libupnp.a
lrwxr-xr-x 1 root admin 19 2 Set 16:53 /opt/local/lib/libupnp.dylib -> libupnp.3.0.5.dylib
-rwxr-xr-x 2 root admin 879 2 Set 16:53 /opt/local/lib/libupnp.la
$ file /opt/local/lib/libupnp.3.0.5.dylib
/opt/local/lib/libupnp.3.0.5.dylib: Mach-O 64-bit dynamically linked shared library x86_64
-
Well, it's trying to load
/Users/mirko/Desktop/TEMP/aMule-SVN-r9803/aMule.app/Contents/MacOS/../Frameworks/libupnp.3.dylib
and not the file you examined. And don't ask me how to set up search paths for dynamic libraries on Mac. You are the Mac guy. ;)
-
I tried to add --with-libupnp-prefix=/opt/local/ but that issue is still there. So I disabled UPnP support (--disable-upnp).
I got the first aMule warning box ("It seems this is the first time you launch aMule..." or something similar), but it suddenly crashes ofter this alert...
The log is attached....
-
The log is attached....
Best would be a gdb backtrace (http://wiki.amule.org/index.php/Backtraces).
-
Best would be a gdb backtrace (http://wiki.amule.org/index.php/Backtraces).
Ok, let me build aMule with debug enabled...
-
I tried to add --with-libupnp-prefix=/opt/local/ but that issue is still there. So I disabled UPnP support (--disable-upnp).
Either remove libupnp.3.dylib, libixml.2.dylib and libthreadutil.2.dylib from aMule.app/Contents/Frameworks or copy there the ones from your system.
-
but it suddenly crashes ofter this alert...
Comment out line 219 of amuleDlg.cpp
// SetIcon(wxICON(aMule));
and retry. (And yeah, building with debug options is always a good idea for highly unstable software. ;) )
All this is a very normal development process in case you wonder, just dragged out a little due to the communication overhead. :)
-
This is my awesome backtrace!!! :P
Hope this is useful... tomorrow I'll try again... :-)
@Stu I'm learning... so I'm just interested in everything you can teach!!! :-)
-
Great!
However - just
Comment out line 219 of amuleDlg.cpp
// SetIcon(wxICON(aMule));
and retry.
-
I started from scratch. I successfully built wxWidget r61946 and tried to build the brand new amule r9807 with the following modifications:
- listctrl.cpp provided by Stu
- amule.cpp provided by Stu
- configure file with "osx_cocoa" instead of "cocoa"
- modified amuleDlg.cpp
Maybe I missed something else, but even if I used the same configure flags, it failed... ???
The last point is the only one which wasn't applied in the last successfully built aMule... Could it depend on this?
ar cru libmuleappcore.a libmuleappcore_a-AsyncDNS.o libmuleappcore_a-DeadSourceList.o libmuleappcore_a-FileArea.o libmuleappcore_a-FileAutoClose.o libmuleappcore_a-Scanner.o libmuleappcore_a-Parser.o libmuleappcore_a-PlatformSpecific.o libmuleappcore_a-Entry.o libmuleappcore_a-SearchManager.o libmuleappcore_a-RoutingBin.o libmuleappcore_a-RandomFunctions.o libmuleappcore_a-StateMachine.o libmuleappcore_a-ThreadScheduler.o libmuleappcore_a-UInt128.o
ranlib libmuleappcore.a
rm -f libmuleappgui.a
ar cru libmuleappgui.a libmuleappgui_a-BarShader.o libmuleappgui_a-ChatWnd.o libmuleappgui_a-ColorFrameCtrl.o libmuleappgui_a-CommentDialog.o libmuleappgui_a-CommentDialogLst.o libmuleappgui_a-EditServerListDlg.o libmuleappgui_a-listctrl.o libmuleappgui_a-FileDetailListCtrl.o libmuleappgui_a-MuleGifCtrl.o libmuleappgui_a-MuleListCtrl.o libmuleappgui_a-MuleNotebook.o libmuleappgui_a-MuleTextCtrl.o libmuleappgui_a-MuleCollection.o libmuleappgui_a-muuli_wdr.o
ranlib libmuleappgui.a
rm -f libmuleappcommon.a
ar cru libmuleappcommon.a libmuleappcommon_a-CFile.o libmuleappcommon_a-DataToText.o libmuleappcommon_a-ED2KLink.o libmuleappcommon_a-MagnetURI.o libmuleappcommon_a-MemFile.o libmuleappcommon_a-NetworkFunctions.o libmuleappcommon_a-Packet.o libmuleappcommon_a-RLE.o libmuleappcommon_a-SafeFile.o libmuleappcommon_a-SHA.o libmuleappcommon_a-Tag.o libmuleappcommon_a-Timer.o
ranlib libmuleappcommon.a
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -no-cpp-precomp -D_INTL_REDIRECT_MACROS -DNOPCH -DUSE_WX_EXTENSIONS -I/opt/local/include/upnp -DENABLE_UPNP=1 -D_THREAD_SAFE -I/Users/mirko/Desktop/aMule-dev/wxWidgets_r61946/lib/wx/include/osx_cocoa-unicode-static-2.9 -I/Users/mirko/Desktop/aMule-dev/wxWidgets_r61946/include -D_FILE_OFFSET_BITS=64 -D__WXOSX_COCOA__ -I./libs -Ilibs -I./include -I/opt/local//include -D__WEAK_CRYPTO__ -I/opt/local/include -W -Wall -Wshadow -Wundef -MT amule-ECSpecialMuleTags.o -MD -MP -MF ".deps/amule-ECSpecialMuleTags.Tpo" -c -o amule-ECSpecialMuleTags.o `test -f 'ECSpecialMuleTags.cpp' || echo './'`ECSpecialMuleTags.cpp; \
then mv -f ".deps/amule-ECSpecialMuleTags.Tpo" ".deps/amule-ECSpecialMuleTags.Po"; else rm -f ".deps/amule-ECSpecialMuleTags.Tpo"; exit 1; fi
ECSpecialMuleTags.cpp: In constructor ‘CEC_Prefs_Packet::CEC_Prefs_Packet(uint32, EC_DETAIL_LEVEL, EC_DETAIL_LEVEL)’:
ECSpecialMuleTags.cpp:287: error: call of overloaded ‘CECTag(ECTagNames, size_t&)’ is ambiguous
./libs/ec/cpp/ECTag.h:114: note: candidates are: CECTag::CECTag(ec_tagname_t, const char*) <near match>
./libs/ec/cpp/ECTag.h:113: note: CECTag::CECTag(ec_tagname_t, const wxChar*) <near match>
./libs/ec/cpp/ECTag.h:112: note: CECTag::CECTag(ec_tagname_t, const wxString&)
./libs/ec/cpp/ECTag.h:108: note: CECTag::CECTag(ec_tagname_t, const std::string&) <near match>
./libs/ec/cpp/ECTag.h:107: note: CECTag::CECTag(ec_tagname_t, double)
./libs/ec/cpp/ECTag.h:106: note: CECTag::CECTag(ec_tagname_t, uint64_t)
./libs/ec/cpp/ECTag.h:105: note: CECTag::CECTag(ec_tagname_t, uint32_t)
./libs/ec/cpp/ECTag.h:104: note: CECTag::CECTag(ec_tagname_t, uint16_t)
./libs/ec/cpp/ECTag.h:103: note: CECTag::CECTag(ec_tagname_t, uint8_t)
./libs/ec/cpp/ECTag.h:102: note: CECTag::CECTag(ec_tagname_t, bool)
make[3]: *** [amule-ECSpecialMuleTags.o] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
-
Ladies and Gentlemen - drumroll - we got it!
At 9:30 a.m. (GMT +2) aMule r9803 was born, about 26.6 MB sized, and it is 64 bit!
(http://www.lemiefrequenze.org/blog/wp-content/uploads/2009/09/Schermata-2009-09-17-a-09.33.02.png)
Parents (me and wxWidgets r61942) are proud to announce the glad tidings...
Following the details...
aMule configuration (conflog attached):
./configure --disable-debug --with-wxdir=../wxWidgets_r61942/ --with-crypto-prefix=/opt/local/ --with-gdlib-config=/opt/local/bin/gdlib-config --with-libiconv-prefix=/opt/local --with-toolkit=osx_cocoa --disable-upnp
Now it's time to understand how to get UPnP working again...
-
Wow, nice. :)
Are those all necessary changes to the code or did you change more?
- listctrl.cpp provided by Stu
- amule.cpp provided by Stu
- configure file with "osx_cocoa" instead of "cocoa"
- modified amuleDlg.cpp
-
Wow, nice. :)
Are those all necessary changes to the code or did you change more?
No I didn't change anything else... but we should check the modified files provided by Stu against wx 2.8... Unfortunately I haven't any Mac OS X 10.5 machine at now.
And I suppose we could use osx_cocoa together with and not instead of cocoa: the former depends on --with-osx_cocoa option, the latter on --with-cocoa.
-
I would like to check all the previously working feature and reach an optimized configuration. I will start from wxWidgets and I have some questions:
- Do you think 2.8 compatibility is needed to have aMule working with 2.9+?
- Does aMule use the wxWidgets embedded web browser? Starting from 2.9 you are allowed to use WebKit...
- Since I saw it somewhere... Does aMule need OpenGL support?
thanks! ;)
-
- Do you think 2.8 compatibility is needed to have aMule working with 2.9+?
I don't know for sure, but we won't drop 2.8 compatibility for an unstable, that's sure. So most likely it doesn't hurt enabling it, but best is if it works without that.
- Does aMule use the wxWidgets embedded web browser? Starting from 2.9 you are allowed to use WebKit...
No. We use the wxHTTP class for HTTP downloads, nothing else.
- Since I saw it somewhere... Does aMule need OpenGL support?
No.
-
Thanks for your answers!
In the meanwhile: wxWidgets r61951 build fails with the same configurations... I hope they will release soon 2.9.1. There are tons of patches released since 2.9.0!
-
It seems (http://forum.amule.org/index.php?topic=17216.msg92986#msg92986) aMule can't dinamically load libiconv... Do you think it depends on wxWidgets?
-
More like I think you have a newer version of libiconv than on a fresh Snow Leopard.
-
More like I think you have a newer version of libiconv than on a fresh Snow Leopard.
It's strange... on previous version of Mac OS X libiconv was not provided at all... I thought it was directly included into aMule package (according to --with-libiconv-prefix directive)...
-
Well I checked aMule.app/Content/Framework folders of both Leopard and Snow Leopard version. This is the content on a full featured aMule 2.2.5 built against wxWidgets 2.8:
drwxr-xr-x@ 19 mirko staff 646 28 Ago 14:56 .
drwxr-xr-x@ 9 mirko staff 306 28 Ago 14:56 ..
-rw-r--r--@ 1 mirko staff 212868 28 Ago 14:56 libGeoIP.1.dylib
-rw-r--r--@ 1 mirko staff 1204224 28 Ago 14:56 libX11.6.dylib
-rw-r--r--@ 1 mirko staff 13724 28 Ago 14:56 libXau.6.dylib
-rw-r--r--@ 1 mirko staff 23012 28 Ago 14:56 libXdmcp.6.dylib
-rw-r--r--@ 1 mirko staff 68148 28 Ago 14:56 libXpm.4.dylib
-rw-r--r--@ 1 mirko staff 146384 28 Ago 14:56 libexpat.1.dylib
-rw-r--r--@ 1 mirko staff 201752 28 Ago 14:56 libfontconfig.1.dylib
-rw-r--r--@ 1 mirko staff 540172 28 Ago 14:56 libfreetype.6.dylib
-rw-r--r--@ 1 mirko staff 246612 28 Ago 14:56 libgd.2.dylib
-rw-r--r--@ 1 mirko staff 1065668 28 Ago 14:56 libiconv.2.dylib
-rw-r--r--@ 1 mirko staff 47860 28 Ago 14:56 libintl.8.dylib
-rw-r--r--@ 1 mirko staff 41104 28 Ago 14:56 libixml.2.dylib
-rw-r--r--@ 1 mirko staff 139616 28 Ago 14:56 libjpeg.62.dylib
-rw-r--r--@ 1 mirko staff 154892 28 Ago 14:56 libpng12.0.dylib
-rw-r--r--@ 1 mirko staff 23496 28 Ago 14:56 libthreadutil.2.dylib
-rw-r--r--@ 1 mirko staff 126564 28 Ago 14:56 libupnp.3.dylib
-rw-r--r--@ 1 mirko staff 83040 28 Ago 14:56 libz.1.dylib
And this is the same folder on my last aMule build for Snow Leopard:
drwxr-xr-x 5 mirko staff 170 15 Set 22:37 .
drwxr-xr-x 8 mirko staff 272 17 Set 09:25 ..
-rwxr-xr-x 1 mirko staff 89940 17 Set 09:25 libixml.2.dylib
-rwxr-xr-x 1 mirko staff 48004 17 Set 09:25 libthreadutil.2.dylib
-rwxr-xr-x 1 mirko staff 255344 17 Set 09:25 libupnp.3.dylib
I think something is missing! :-\
-
wxWidgets r61951 build fails with the same configurations...
And now I know why: http://trac.wxwidgets.org/ticket/11203!
-
aMule r9811 (on wx r61956) build failed (with same flags of the one successfully built):
rm -f libmuleappcore.a
ar cru libmuleappcore.a libmuleappcore_a-AsyncDNS.o libmuleappcore_a-DeadSourceList.o libmuleappcore_a-FileArea.o libmuleappcore_a-FileAutoClose.o libmuleappcore_a-Scanner.o libmuleappcore_a-Parser.o libmuleappcore_a-PlatformSpecific.o libmuleappcore_a-Entry.o libmuleappcore_a-SearchManager.o libmuleappcore_a-RoutingBin.o libmuleappcore_a-RandomFunctions.o libmuleappcore_a-StateMachine.o libmuleappcore_a-ThreadScheduler.o libmuleappcore_a-UInt128.o
ranlib libmuleappcore.a
rm -f libmuleappgui.a
ar cru libmuleappgui.a libmuleappgui_a-BarShader.o libmuleappgui_a-ChatWnd.o libmuleappgui_a-ColorFrameCtrl.o libmuleappgui_a-CommentDialog.o libmuleappgui_a-CommentDialogLst.o libmuleappgui_a-EditServerListDlg.o libmuleappgui_a-listctrl.o libmuleappgui_a-FileDetailListCtrl.o libmuleappgui_a-MuleGifCtrl.o libmuleappgui_a-MuleListCtrl.o libmuleappgui_a-MuleNotebook.o libmuleappgui_a-MuleTextCtrl.o libmuleappgui_a-MuleCollection.o libmuleappgui_a-muuli_wdr.o
ranlib libmuleappgui.a
rm -f libmuleappcommon.a
ar cru libmuleappcommon.a libmuleappcommon_a-CFile.o libmuleappcommon_a-DataToText.o libmuleappcommon_a-ED2KLink.o libmuleappcommon_a-MagnetURI.o libmuleappcommon_a-MemFile.o libmuleappcommon_a-NetworkFunctions.o libmuleappcommon_a-Packet.o libmuleappcommon_a-RLE.o libmuleappcommon_a-SafeFile.o libmuleappcommon_a-SHA.o libmuleappcommon_a-Tag.o libmuleappcommon_a-Timer.o
ranlib libmuleappcommon.a
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -no-cpp-precomp -D_INTL_REDIRECT_MACROS -DNOPCH -DUSE_WX_EXTENSIONS -I/Users/mirko/Desktop/TEMP/wxWidgets_r61956/lib/wx/include/osx_cocoa-unicode-static-2.9 -I/Users/mirko/Desktop/TEMP/wxWidgets_r61956/include -D_FILE_OFFSET_BITS=64 -D__WXOSX_COCOA__ -I./libs -Ilibs -I./include -I/opt/local//include -D__WEAK_CRYPTO__ -I/opt/local/include -W -Wall -Wshadow -Wundef -MT amule-ECSpecialMuleTags.o -MD -MP -MF ".deps/amule-ECSpecialMuleTags.Tpo" -c -o amule-ECSpecialMuleTags.o `test -f 'ECSpecialMuleTags.cpp' || echo './'`ECSpecialMuleTags.cpp; \
then mv -f ".deps/amule-ECSpecialMuleTags.Tpo" ".deps/amule-ECSpecialMuleTags.Po"; else rm -f ".deps/amule-ECSpecialMuleTags.Tpo"; exit 1; fi
ECSpecialMuleTags.cpp: In constructor ‘CEC_Prefs_Packet::CEC_Prefs_Packet(uint32, EC_DETAIL_LEVEL, EC_DETAIL_LEVEL)’:
ECSpecialMuleTags.cpp:287: error: call of overloaded ‘CECTag(ECTagNames, size_t&)’ is ambiguous
./libs/ec/cpp/ECTag.h:114: note: candidates are: CECTag::CECTag(ec_tagname_t, const char*) <near match>
./libs/ec/cpp/ECTag.h:113: note: CECTag::CECTag(ec_tagname_t, const wxChar*) <near match>
./libs/ec/cpp/ECTag.h:112: note: CECTag::CECTag(ec_tagname_t, const wxString&)
./libs/ec/cpp/ECTag.h:108: note: CECTag::CECTag(ec_tagname_t, const std::string&) <near match>
./libs/ec/cpp/ECTag.h:107: note: CECTag::CECTag(ec_tagname_t, double)
./libs/ec/cpp/ECTag.h:106: note: CECTag::CECTag(ec_tagname_t, uint64_t)
./libs/ec/cpp/ECTag.h:105: note: CECTag::CECTag(ec_tagname_t, uint32_t)
./libs/ec/cpp/ECTag.h:104: note: CECTag::CECTag(ec_tagname_t, uint16_t)
./libs/ec/cpp/ECTag.h:103: note: CECTag::CECTag(ec_tagname_t, uint8_t)
./libs/ec/cpp/ECTag.h:102: note: CECTag::CECTag(ec_tagname_t, bool)
make[3]: *** [amule-ECSpecialMuleTags.o] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
-
More like I think you have a newer version of libiconv than on a fresh Snow Leopard.
If I copy libiconv.2.dylib into aMule.app/Contents/Frameworks aMule crashes after 5 seconds with the attached errors.
-
aMule r9811 (on wx r61956) build failed (with same flags of the one successfully built):
Compiled flawlessly on Win32 and Ubuntu (32). Should be fixed in 9812. The other compile junkies seem to be busy with 2.2.6 right now - no post in "compilation problems".
Did you also run it? Does it work?
Committed the patched sources with 9813. What about the configure script? What did you change, and what happens when you run the original one? You know, configure is generated, so you can't simply patch it.
-
What about the configure script? What did you change, [...]? You know, configure is generated, so you can't simply patch it.
mirko.g, if you give me your modified configure script, I'll patch its sources.
-
mirko.g, if you give me your modified configure script, I'll patch its sources.
Thanks!
This is the configure taken from aMule 2.2.6: I added a toolkit entry for both "cocoa" and "osx_cocoa". I'm using the latter indeed (since it seems to be recommended), but I'm not sure the former is deprecated. wxWidgets still provides two distinct features: --with-cocoa and --with-osx_cocoa...
-
The tarball for rev. 9815 contains your changes and some more...
-
For your interest :D
wxWidgets r61977 + aMule r9814
aMule configuration fails with this error:
configure: error:
The requested wxWidgets build couldn't be found.
The configuration you asked for aMule requires a wxWidgets
build with the following settings:
--unicode=yes
but such build is not available.
wx has been correctly configured with --enable-unicode and I cannot see any error but I guess it's a wx fault... ::)
-
wxWidgets r61977 + aMule r9814
For that you still use your patched configure script, don't you?
Setting WX_DEBUG_CONFIGURE=1 will provide more information on wx detection, such as
$ WX_DEBUG_CONFIGURE=1 ./configure --blahblah
Also, `wx-config --list` and `wx-config --selected-config` might be to your help.
-
For that you still use your patched configure script, don't you?
Yes I do. wx r61977 is the first revision which can be built on Mac since r61942... so I wanted to try it! ^_^
It seems to be all right with wx:
./wx-config --list
Default config is osx_cocoa-unicode-static-2.9
Default config in /Users/mirko/Desktop/aMule-dev/wxWidgets_r61977 will be used for output
and
./wx-config --selected-config
osx_cocoa-unicode-static-2.9
ending with
WX_DEBUG_CONFIGURE=1 ./configure --disable-debug --enable-optimize --enable-amulecmd --enable-webserver --enable-cas --enable-alc --enable-alcc --enable-amule-daemon --enable-amule-gui --enable-wxcas --enable-geoip --with-geoip-headers=/opt/local/include --with-geoip-lib=/opt/local/lib --with-wx-config=../wxWidgets_r61977 --with-crypto-prefix=/usr/local/cryptopp --with-gdlib-config=/opt/local/bin/gdlib-config --with-libiconv-prefix=/opt/local
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking build system type... i686-apple-darwin10.0.0
checking host system type... i686-apple-darwin10.0.0
checking if this is a FreeBSD 4 or earlier system... no
checking for g++... g++
checking for C++ compiler default output file name... a.out
checking whether the C++ compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for gcc... gcc
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for gawk... (cached) awk
checking for egrep... grep -E
checking whether make sets $(MAKE)... (cached) yes
checking for flex... flex
checking for yywrap in -lfl... yes
checking lex output file root... lex.yy
checking whether yytext is a pointer... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking for ranlib... ranlib
checking for bison... bison -y
checking for ranlib... (cached) ranlib
checking for strip... strip
checking for ar... ar
checking for ld... ld
checking for zlib >= 1.1.4... yes (version 1.2.3)
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for gdlib-config... /opt/local/bin/gdlib-config
checking for gdlib version >= 2.0.0... yes (version 2.0.35)
checking gd.h usability... yes
checking gd.h presence... no
configure: WARNING: gd.h: accepted by the compiler, rejected by the preprocessor!
configure: WARNING: gd.h: proceeding with the compiler's result
checking for gd.h... yes
checking for libpng-config... /opt/local/bin/libpng-config
checking for libpng version >= 1.2.0... yes (version 1.2.38)
checking for File::Copy... ok
checking whether we need the GUI... yes
checking GeoIP.h usability... yes
checking GeoIP.h presence... yes
checking for GeoIP.h... yes
checking for GeoIP_open in -lGeoIP... yes
checking for the --with-toolkit option... will be automatically detected
checking for the --with-wxshared option... will be automatically detected
checking for the --with-wxdebug option... will be automatically detected
checking for the --with-wxversion option... will be automatically detected
[dbg] DEBUG: , WX_DEBUG: auto
[dbg] UNICODE: , WX_UNICODE:
[dbg] SHARED: , WX_SHARED: auto
[dbg] TOOLKIT: auto, WX_TOOLKIT:
[dbg] VERSION: SVN, WX_VERSION: auto
[dbg] WXCONFIG_FLAGS: --unicode=yes
checking for wx-config... ../wxWidgets_r61977
checking for wxWidgets version >= 2.8.8 (--unicode=yes)... no
configure: error:
The requested wxWidgets build couldn't be found.
The configuration you asked for aMule requires a wxWidgets
build with the following settings:
--unicode=yes
but such build is not available.
To see the wxWidgets builds available on this system, please use
'wx-config --list' command. To use the default build, returned by
'wx-config --selected-config', use the options with their 'auto'
default values.
If you still get this error, then check that 'wx-config' is
in path, the directory where wxWidgets libraries are installed
(returned by 'wx-config --libs' command) is in LD_LIBRARY_PATH
or equivalent variable and wxWidgets version is 2.8.8 or above.
-
--with-wx-config=../wxWidgets_r61977
Use --with-wx-config=../wxWidgets_r61977/wx-config
-
Use --with-wx-config=../wxWidgets_r61977/wx-config
Thanks it worked.
I used:
./configure --disable-debug --enable-optimize --enable-amulecmd --enable-webserver --enable-cas --enable-alc --enable-alcc --enable-amule-daemon --enable-amule-gui --enable-wxcas --enable-geoip --with-geoip-headers=/opt/local/include --with-geoip-lib=/opt/local/lib --with-wx-config=../wxWidgets_r61977/wx-config --with-crypto-prefix=/opt/local --with-gdlib-config=/opt/local/bin/gdlib-config --with-libiconv-prefix=/opt/local
but make failed:
make all-recursive
Making all in intl
make[2]: Nothing to be done for `all'.
Making all in po
make[2]: Nothing to be done for `all'.
Making all in docs
Making all in man
make[3]: Nothing to be done for `all'.
make[3]: Nothing to be done for `all-am'.
Making all in src
Making all in libs
Making all in ec
make all-recursive
Making all in cpp
make all-am
make[7]: Nothing to be done for `all-am'.
make[6]: Nothing to be done for `all-am'.
Making all in common
make[4]: Nothing to be done for `all'.
make[4]: Nothing to be done for `all-am'.
Making all in utils
Making all in cas
Making all in docs
make[5]: Nothing to be done for `all'.
make[5]: Nothing to be done for `all-am'.
Making all in wxCas
Making all in src
if g++ -DHAVE_CONFIG_H -I. -I. -I../../../.. -no-cpp-precomp -D_INTL_REDIRECT_MACROS -DNOPCH -DUSE_WX_EXTENSIONS -I/Users/mirko/Desktop/aMule-dev/wxWidgets_r61977/lib/wx/include/osx_cocoa-unicode-static-2.9 -I/Users/mirko/Desktop/aMule-dev/wxWidgets_r61977/include -D_FILE_OFFSET_BITS=64 -D__WXOSX_COCOA__ -I/opt/local/include -W -Wall -Wshadow -Wundef -O2 -I/Users/mirko/Desktop/aMule-dev/wxWidgets_r61977/lib/wx/include/osx_cocoa-unicode-static-2.9 -I/Users/mirko/Desktop/aMule-dev/wxWidgets_r61977/include -D_FILE_OFFSET_BITS=64 -D__WXOSX_COCOA__ -MT wxcascte.o -MD -MP -MF ".deps/wxcascte.Tpo" -c -o wxcascte.o wxcascte.cpp; \
then mv -f ".deps/wxcascte.Tpo" ".deps/wxcascte.Po"; else rm -f ".deps/wxcascte.Tpo"; exit 1; fi
wxcascte.cpp:40:67: error: wx/mac/corefoundation/cfstring.h: No such file or directory
wxcascte.cpp: In function ‘wxString GetDefaultAmulesigPath()’:
wxcascte.cpp:136: error: ‘wxMacCFStringHolder’ was not declared in this scope
make[5]: *** [wxcascte.o] Error 1
make[4]: *** [all-recursive] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
-
In the meanwhile, learning something more about compiling... :P
Mirko, we need to teach you some dev skills or this will take forever. We are short of a Mac dev at the moment as you might have noticed.
wxcascte.cpp fails to compile with a very similar error as amule.cpp before. Now look at the patch it took to fix amule.cpp:
Index: amule.cpp
===================================================================
--- amule.cpp (revision 9812)
+++ amule.cpp (revision 9813)
@@ -95,7 +95,11 @@
#ifndef AMULE_DAEMON
#ifdef __WXMAC__
#include <CoreFoundation/CFBundle.h> // Do_not_auto_remove
- #include <wx/mac/corefoundation/cfstring.h> // Do_not_auto_remove
+ #if wxCHECK_VERSION(2, 9, 0)
+ #include <wx/osx/core/cfstring.h> // Do_not_auto_remove
+ #else
+ #include <wx/mac/corefoundation/cfstring.h> // Do_not_auto_remove
+ #endif
#endif
#include <wx/msgdlg.h>
@@ -847,7 +851,11 @@
if (absoluteUrl) {
CFStringRef amulewebCfstr = CFURLCopyFileSystemPath(absoluteUrl, kCFURLPOSIXPathStyle);
CFRelease(absoluteUrl);
+ #if wxCHECK_VERSION(2, 9, 0)
+ amulewebPath = wxCFStringRef(amulewebCfstr).AsString(wxLocale::GetSystemEncoding());
+ #else
amulewebPath = wxMacCFStringHolder(amulewebCfstr).AsString(wxLocale::GetSystemEncoding());
+ #endif
}
}
#endif
Try to find the corresponding parts in wxcascte.cpp and see if you can fix it yourself. Then post a patch. That will be way more satisfying for you. :)
-
Mirko, we need to teach you some dev skills or this will take forever. We are short of a Mac dev at the moment as you might have noticed.
Yes Sir! ;)
Try to find the corresponding parts in wxcascte.cpp and see if you can fix it yourself. Then post a patch. That will be way more satisfying for you. :)
Ok I can do it...
(half an hour later)
Well, I came out of this. I attached my patchfile. Now, it seems this occurs with some other files (now I'm on alcframe.cpp). I'll continue patching until I get a new unknown (for me) error. :)
UPDATE: added alcframe.patch...
UPDATE2: added WebInterface.patch
UPDATE3: I cannot go over here:
if g++ -DHAVE_CONFIG_H -I. -I. -I../../.. -I../.. -I../../../src -I../../../src/libs -I../../../src/include -no-cpp-precomp -D_INTL_REDIRECT_MACROS -DNOPCH -DUSE_WX_EXTENSIONS -DWITH_LIBPNG -I/Users/mirko/Desktop/aMule-dev/wxWidgets_r61977/lib/wx/include/osx_cocoa-unicode-static-2.9 -I/Users/mirko/Desktop/aMule-dev/wxWidgets_r61977/include -D_FILE_OFFSET_BITS=64 -D__WXOSX_COCOA__ -DwxUSE_GUI=0 -DEC_REMOTE -DWEBSERVERDIR="\"/usr/local/share/amule/webserver\"" -DECSOCKET_USE_EVENTS=0 -I../../../intl -I/opt/local/include/upnp -DENABLE_UPNP=1 -I/opt/local/include -W -Wall -Wshadow -Wundef -O2 -I/Users/mirko/Desktop/aMule-dev/wxWidgets_r61977/lib/wx/include/osx_cocoa-unicode-static-2.9 -I/Users/mirko/Desktop/aMule-dev/wxWidgets_r61977/include -D_FILE_OFFSET_BITS=64 -D__WXOSX_COCOA__ -I/opt/local/include/libpng12 -D_THREAD_SAFE -MT amuleweb-ExternalConnector.o -MD -MP -MF ".deps/amuleweb-ExternalConnector.Tpo" -c -o amuleweb-ExternalConnector.o `test -f '../../../src/ExternalConnector.cpp' || echo './'`../../../src/ExternalConnector.cpp; \
then mv -f ".deps/amuleweb-ExternalConnector.Tpo" ".deps/amuleweb-ExternalConnector.Po"; else rm -f ".deps/amuleweb-ExternalConnector.Tpo"; exit 1; fi
../../../src/ExternalConnector.cpp:610: error: invalid covariant return type for ‘virtual wxStandardPathsBase& CaMuleExternalConnectorTraits::GetStandardPaths()’
/Users/mirko/Desktop/aMule-dev/wxWidgets_r61977/include/wx/apptrait.h:78: error: overriding ‘virtual wxStandardPaths& wxAppTraitsBase::GetStandardPaths()’
make[4]: *** [amuleweb-ExternalConnector.o] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
-
Good job! I knew you could do it. :)
The last one should be easy too. I'm pretty sure that's just part of the legacy stuff obsolete with wx 2.9:
Index: ExternalConnector.cpp
===================================================================
--- ExternalConnector.cpp (revision 9816)
+++ ExternalConnector.cpp (working copy)
@@ -599,7 +599,7 @@
return m_locale == NULL ? wxString() : m_locale->GetCanonicalName();
}
-#if !wxUSE_GUI && defined(__WXMAC__)
+#if !wxUSE_GUI && defined(__WXMAC__) && !wxCHECK_VERSION(2, 9, 0)
#include <wx/apptrait.h> // Do_not_auto_remove
#include <wx/stdpaths.h> // Do_not_auto_remove
Please verify.
-
Ok I think it worked since now there is a new error:
g++ -o amuleweb -bind_at_load -lpthread -L../../libs/common -L../../libs/ec/cpp -L/opt/local/lib -L/opt/local/lib amuleweb-WebServer.o amuleweb-WebInterface.o amuleweb-WebSocket.o amuleweb-ExternalConnector.o amuleweb-OtherFunctions.o amuleweb-RLE.o amuleweb-NetworkFunctions.o amuleweb-php_parser.o amuleweb-php_lexer.o amuleweb-php_syntree.o amuleweb-php_amule_lib.o amuleweb-php_core_lib.o amuleweb-UPnPBase.o amuleweb-UPnPCompatibility.o -lec -lmulecommon -L/Users/mirko/Desktop/aMule-dev/wxWidgets_r61977/lib -L/opt/local/lib -framework QuickTime -framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework System -framework OpenGL /Users/mirko/Desktop/aMule-dev/wxWidgets_r61977/lib/libwx_baseu_net-2.9.a /Users/mirko/Desktop/aMule-dev/wxWidgets_r61977/lib/libwx_baseu-2.9.a -lwxregexu-2.9 -lwxtiff-2.9 -lwxjpeg-2.9 -lwxpng-2.9 -lz -lpthread -liconv -lz -lreadline -lpng12 ../../../intl/libintl.a /opt/local/lib/libiconv.dylib -lupnp -lthreadutil -lixml
ld: warning: in /System/Library/Frameworks//QuickTime.framework/QuickTime, missing required architecture x86_64 in file
Undefined symbols:
"CaMuleExternalConnector::CreateTraits()", referenced from:
vtable for CamulewebAppin amuleweb-WebInterface.o
vtable for CaMuleExternalConnectorin amuleweb-ExternalConnector.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[4]: *** [amuleweb] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
A note about this warning:
ld: warning: in /System/Library/Frameworks//QuickTime.framework/QuickTime, missing required architecture x86_64 in file
I dunno if this is related either to aMule or wx... Apple introduced QuickTimeX with Snow Leopard which uses a rewritten (and 64 bit) Quick Time kit. Somewhere Snow Leopard bring Quick Time too but it's 32-bit.
-
Ok I think it worked since now there is a new error:
Well, it didn't. Code still is used. I'll take another look.
A note about this warning:
ld: warning: in /System/Library/Frameworks//QuickTime.framework/QuickTime, missing required architecture x86_64 in file
I dunno if this is related either to aMule or wx... Apple introduced QuickTimeX with Snow Leopard which uses a rewritten (and 64 bit) Quick Time kit. Somewhere Snow Leopard bring Quick Time too but it's 32-bit.
Why is the -framework QuickTime added to linker options? We shouldn't need Quicktime (or OpenGL).
-
Ok I think it worked since now there is a new error:
You also have to patch the header (help: ExternalConnector.h).
-
You're first. :)
Mirko, please try it, then I'll commit your batch of patches.
-
You're first. :)
Mirko, please try it, then I'll commit your batch of patches.
Now I found a different error:
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -no-cpp-precomp -D_INTL_REDIRECT_MACROS -DNOPCH -DUSE_WX_EXTENSIONS -I/Users/mirko/Desktop/aMule-dev/wxWidgets_r61977/lib/wx/include/osx_cocoa-unicode-static-2.9 -I/Users/mirko/Desktop/aMule-dev/wxWidgets_r61977/include -D_FILE_OFFSET_BITS=64 -D__WXOSX_COCOA__ -DwxUSE_GUI=0 -I/opt/local/include/upnp -DENABLE_UPNP=1 -D_THREAD_SAFE -I./libs -Ilibs -I./include -I/opt/local/include -D__WEAK_CRYPTO__ -DAMULE_DAEMON -I/opt/local/include -W -Wall -Wshadow -Wundef -O2 -I/Users/mirko/Desktop/aMule-dev/wxWidgets_r61977/lib/wx/include/osx_cocoa-unicode-static-2.9 -I/Users/mirko/Desktop/aMule-dev/wxWidgets_r61977/include -D_FILE_OFFSET_BITS=64 -D__WXOSX_COCOA__ -MT amuled-amuled.o -MD -MP -MF ".deps/amuled-amuled.Tpo" -c -o amuled-amuled.o `test -f 'amuled.cpp' || echo './'`amuled.cpp; \
then mv -f ".deps/amuled-amuled.Tpo" ".deps/amuled-amuled.Po"; else rm -f ".deps/amuled-amuled.Tpo"; exit 1; fi
In file included from amuled.cpp:26:
amule.h:461: error: ISO C++ forbids declaration of ‘wxStandardPathsBase’ with no type
amule.h:461: error: ‘wxStandardPathsBase’ declared as a ‘virtual’ field
amule.h:461: error: expected ‘;’ before ‘&’ token
amuled.cpp:455: error: no ‘wxStandardPathsBase& CDaemonAppTraits::GetStandardPaths()’ member function declared in class ‘CDaemonAppTraits’
make[3]: *** [amuled-amuled.o] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
I understand it's still related to #ifdef __WXMAC__ but I don't know how to fix it...
P.S.: Attached two patch for ExternalConnector.cpp and ExternalConnector.h!
-
You have to do the same, i.e. add && !wxCHECK_VERSION(2, 9, 0) to both amule.h and amuled.cpp at around the lines where the error is reported.
-
You have to do the same, i.e. add && !wxCHECK_VERSION(2, 9, 0) to both amule.h and amuled.cpp at around the lines where the error is reported.
Done... but it's seems not to be enough... :-\
rm -f libmuleappcore.a
ar cru libmuleappcore.a libmuleappcore_a-AsyncDNS.o libmuleappcore_a-DeadSourceList.o libmuleappcore_a-FileArea.o libmuleappcore_a-FileAutoClose.o libmuleappcore_a-Scanner.o libmuleappcore_a-Parser.o libmuleappcore_a-PlatformSpecific.o libmuleappcore_a-Entry.o libmuleappcore_a-SearchManager.o libmuleappcore_a-RoutingBin.o libmuleappcore_a-RandomFunctions.o libmuleappcore_a-StateMachine.o libmuleappcore_a-ThreadScheduler.o libmuleappcore_a-UInt128.o
ranlib libmuleappcore.a
rm -f libmuleappgui.a
ar cru libmuleappgui.a libmuleappgui_a-BarShader.o libmuleappgui_a-ChatWnd.o libmuleappgui_a-ColorFrameCtrl.o libmuleappgui_a-CommentDialog.o libmuleappgui_a-CommentDialogLst.o libmuleappgui_a-EditServerListDlg.o libmuleappgui_a-listctrl.o libmuleappgui_a-FileDetailListCtrl.o libmuleappgui_a-MuleGifCtrl.o libmuleappgui_a-MuleListCtrl.o libmuleappgui_a-MuleNotebook.o libmuleappgui_a-MuleTextCtrl.o libmuleappgui_a-MuleCollection.o libmuleappgui_a-muuli_wdr.o
ranlib libmuleappgui.a
rm -f libmuleappcommon.a
ar cru libmuleappcommon.a libmuleappcommon_a-CFile.o libmuleappcommon_a-DataToText.o libmuleappcommon_a-ED2KLink.o libmuleappcommon_a-MagnetURI.o libmuleappcommon_a-MemFile.o libmuleappcommon_a-NetworkFunctions.o libmuleappcommon_a-Packet.o libmuleappcommon_a-RLE.o libmuleappcommon_a-SafeFile.o libmuleappcommon_a-SHA.o libmuleappcommon_a-Tag.o libmuleappcommon_a-Timer.o
ranlib libmuleappcommon.a
g++ -W -Wall -Wshadow -Wundef -O2 -bind_at_load -lpthread -o amule amule-CaptchaDialog.o amule-CaptchaGenerator.o amule-RC4Encrypt.o amule-amule.o amule-BaseClient.o amule-ClientList.o amule-ClientCreditsList.o amule-ClientTCPSocket.o amule-ClientUDPSocket.o amule-CorruptionBlackBox.o amule-DownloadClient.o amule-DownloadQueue.o amule-ECSpecialCoreTags.o amule-EMSocket.o amule-EncryptedStreamSocket.o amule-EncryptedDatagramSocket.o amule-ExternalConn.o amule-Friend.o amule-FriendList.o amule-HTTPDownload.o amule-IPFilter.o amule-KnownFileList.o amule-ListenSocket.o amule-MuleUDPSocket.o amule-SearchFile.o amule-SearchList.o amule-ServerConnect.o amule-ServerList.o amule-ServerSocket.o amule-ServerUDPSocket.o amule-SharedFileList.o amule-ThreadTasks.o amule-UploadBandwidthThrottler.o amule-UploadClient.o amule-UploadQueue.o amule-Indexed.o amule-Kademlia.o amule-Prefs.o amule-Search.o amule-UDPFirewallTester.o amule-KademliaUDPListener.o amule-PacketTracking.o amule-Contact.o amule-RoutingZone.o amule-UPnPBase.o amule-amule-gui.o amule-amuleDlg.o amule-AddFriend.o amule-CatDialog.o amule-ChatSelector.o amule-ClientDetailDialog.o amule-DirectoryTreeCtrl.o amule-FileDetailDialog.o amule-KadDlg.o amule-OScopeCtrl.o amule-PartFileConvert.o amule-PrefsUnifiedDlg.o amule-SearchDlg.o amule-ServerWnd.o amule-SharedFilesWnd.o amule-StatisticsDlg.o amule-SearchListCtrl.o amule-DownloadListCtrl.o amule-ClientListCtrl.o amule-FriendListCtrl.o amule-ServerListCtrl.o amule-SharedFilesCtrl.o amule-MuleTrayIcon.o amule-MuleColour.o amule-TransferWnd.o amule-IP2Country.o amule-ClientCredits.o amule-ECSpecialMuleTags.o amule-KnownFile.o amule-GapList.o amule-GetTickCount.o amule-GuiEvents.o amule-Logger.o amule-PartFile.o amule-Preferences.o amule-Proxy.o amule-Server.o amule-Statistics.o amule-StatTree.o amule-SHAHashSet.o amule-TerminationProcess.o amule-TerminationProcessAmuleweb.o amule-UserEvents.o amule-OtherFunctions.o amule-NetworkFunctions.o -L. -lmuleappcommon -Llibs/common -Llibs/ec/cpp -lmulecommon -lec -lz -L/opt/local/lib -lcryptopp -L. -lmuleappcore -L/opt/local/lib -lupnp -lthreadutil -lixml -L. -lmuleappgui -L/Users/mirko/Desktop/TEMP/wxWidgets_r61983/lib -L/opt/local/lib -framework QuickTime -framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework System -framework OpenGL /Users/mirko/Desktop/TEMP/wxWidgets_r61983/lib/libwx_osx_cocoau_adv-2.9.a /Users/mirko/Desktop/TEMP/wxWidgets_r61983/lib/libwx_osx_cocoau_core-2.9.a /Users/mirko/Desktop/TEMP/wxWidgets_r61983/lib/libwx_baseu_net-2.9.a /Users/mirko/Desktop/TEMP/wxWidgets_r61983/lib/libwx_baseu-2.9.a -framework WebKit -lwxregexu-2.9 -lwxtiff-2.9 -lwxjpeg-2.9 -lwxpng-2.9 -lz -lpthread -liconv -L/opt/local/lib -lGeoIP
ld: warning: in /System/Library/Frameworks//QuickTime.framework/QuickTime, missing required architecture x86_64 in file
g++ -W -Wall -Wshadow -Wundef -O2 -bind_at_load -lpthread -o amulecmd amulecmd-TextClient.o amulecmd-ExternalConnector.o amulecmd-OtherFunctions.o amulecmd-NetworkFunctions.o -Llibs/common -Llibs/ec/cpp -lmulecommon -lec -L/Users/mirko/Desktop/TEMP/wxWidgets_r61983/lib -L/opt/local/lib -framework QuickTime -framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework System -framework OpenGL /Users/mirko/Desktop/TEMP/wxWidgets_r61983/lib/libwx_baseu_net-2.9.a /Users/mirko/Desktop/TEMP/wxWidgets_r61983/lib/libwx_baseu-2.9.a -lwxregexu-2.9 -lwxtiff-2.9 -lwxjpeg-2.9 -lwxpng-2.9 -lz -lpthread -liconv -lreadline -lz
ld: warning: in /System/Library/Frameworks//QuickTime.framework/QuickTime, missing required architecture x86_64 in file
g++ -W -Wall -Wshadow -Wundef -O2 -bind_at_load -lpthread -o ed2k -bind_at_load -lpthread -framework CoreServices ed2k-ED2KLinkParser.o ed2k-MagnetURI.o ed2k-MuleCollection.o
g++ -W -Wall -Wshadow -Wundef -O2 -bind_at_load -lpthread -o amulegui amulegui-amule-remote-gui.o amulegui-amule-gui.o amulegui-amuleDlg.o amulegui-AddFriend.o amulegui-CatDialog.o amulegui-ChatSelector.o amulegui-ClientDetailDialog.o amulegui-DirectoryTreeCtrl.o amulegui-FileDetailDialog.o amulegui-KadDlg.o amulegui-OScopeCtrl.o amulegui-PartFileConvert.o amulegui-PrefsUnifiedDlg.o amulegui-SearchDlg.o amulegui-ServerWnd.o amulegui-SharedFilesWnd.o amulegui-StatisticsDlg.o amulegui-SearchListCtrl.o amulegui-DownloadListCtrl.o amulegui-ClientListCtrl.o amulegui-FriendListCtrl.o amulegui-ServerListCtrl.o amulegui-SharedFilesCtrl.o amulegui-MuleTrayIcon.o amulegui-MuleColour.o amulegui-TransferWnd.o amulegui-IP2Country.o amulegui-ClientCredits.o amulegui-ECSpecialMuleTags.o amulegui-KnownFile.o amulegui-GapList.o amulegui-GetTickCount.o amulegui-GuiEvents.o amulegui-Logger.o amulegui-PartFile.o amulegui-Preferences.o amulegui-Proxy.o amulegui-Server.o amulegui-Statistics.o amulegui-StatTree.o amulegui-SHAHashSet.o amulegui-TerminationProcess.o amulegui-TerminationProcessAmuleweb.o amulegui-UserEvents.o amulegui-OtherFunctions.o amulegui-NetworkFunctions.o amulegui-HTTPDownload.o -L. -lmuleappgui -L/Users/mirko/Desktop/TEMP/wxWidgets_r61983/lib -L/opt/local/lib -framework QuickTime -framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework System -framework OpenGL /Users/mirko/Desktop/TEMP/wxWidgets_r61983/lib/libwx_osx_cocoau_adv-2.9.a /Users/mirko/Desktop/TEMP/wxWidgets_r61983/lib/libwx_osx_cocoau_core-2.9.a /Users/mirko/Desktop/TEMP/wxWidgets_r61983/lib/libwx_baseu_net-2.9.a /Users/mirko/Desktop/TEMP/wxWidgets_r61983/lib/libwx_baseu-2.9.a -framework WebKit -lwxregexu-2.9 -lwxtiff-2.9 -lwxjpeg-2.9 -lwxpng-2.9 -lz -lpthread -liconv -L/opt/local/lib -lGeoIP -L. -lmuleappcommon -Llibs/common -Llibs/ec/cpp -lmulecommon -lec -lz -L/opt/local/lib -lcryptopp -L/Users/mirko/Desktop/TEMP/wxWidgets_r61983/lib -L/opt/local/lib -framework QuickTime -framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework System -framework OpenGL /Users/mirko/Desktop/TEMP/wxWidgets_r61983/lib/libwx_baseu_net-2.9.a /Users/mirko/Desktop/TEMP/wxWidgets_r61983/lib/libwx_baseu-2.9.a -lwxregexu-2.9 -lwxtiff-2.9 -lwxjpeg-2.9 -lwxpng-2.9 -lz -lpthread -liconv
ld: warning: in /System/Library/Frameworks//QuickTime.framework/QuickTime, missing required architecture x86_64 in file
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -no-cpp-precomp -D_INTL_REDIRECT_MACROS -DNOPCH -DUSE_WX_EXTENSIONS -I/Users/mirko/Desktop/TEMP/wxWidgets_r61983/lib/wx/include/osx_cocoa-unicode-static-2.9 -I/Users/mirko/Desktop/TEMP/wxWidgets_r61983/include -D_FILE_OFFSET_BITS=64 -D__WXOSX_COCOA__ -DwxUSE_GUI=0 -I/opt/local/include/upnp -DENABLE_UPNP=1 -D_THREAD_SAFE -I./libs -Ilibs -I./include -I/opt/local/include -D__WEAK_CRYPTO__ -DAMULE_DAEMON -I/opt/local/include -W -Wall -Wshadow -Wundef -O2 -I/Users/mirko/Desktop/TEMP/wxWidgets_r61983/lib/wx/include/osx_cocoa-unicode-static-2.9 -I/Users/mirko/Desktop/TEMP/wxWidgets_r61983/include -D_FILE_OFFSET_BITS=64 -D__WXOSX_COCOA__ -MT amuled-amuled.o -MD -MP -MF ".deps/amuled-amuled.Tpo" -c -o amuled-amuled.o `test -f 'amuled.cpp' || echo './'`amuled.cpp; \
then mv -f ".deps/amuled-amuled.Tpo" ".deps/amuled-amuled.Po"; else rm -f ".deps/amuled-amuled.Tpo"; exit 1; fi
In file included from amuled.cpp:26:
amule.h:461: error: ISO C++ forbids declaration of ‘wxStandardPathsBase’ with no type
amule.h:461: error: ‘wxStandardPathsBase’ declared as a ‘virtual’ field
amule.h:461: error: expected ‘;’ before ‘&’ token
amuled.cpp:455: error: no ‘wxStandardPathsBase& CDaemonAppTraits::GetStandardPaths()’ member function declared in class ‘CDaemonAppTraits’
make[3]: *** [amuled-amuled.o] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
-
Just to be sure: you have made a change like this:
-#ifdef __WXMAC__
+#if defined(__WXMAC__) && !wxCHECK_VERSION(2, 9, 0)
(most importantly, you have changed "#ifdef" to "#if defined", right?)
If yes, then I'm lost. :-\
-
Just to be sure: you have made a change like this:
-#ifdef __WXMAC__
+#if defined(__WXMAC__) && !wxCHECK_VERSION(2, 9, 0)
(most importantly, you have changed "#ifdef" to "#if defined", right?)
If yes, then I'm lost. :-\
This is exactly what I did... :-(
-
Errata corrige: I tried again on another machine, with wxWidgets r61983 and make succeeds! I don't know if it depends either on the machine or the wx revision: it worked with no more errors.
So, we need 7 patches (you can grab them either all around this thread or here (http://www.mac-factory.org/redmine/repositories/browse/macmule/patches/aMule_r9817)) to have aMule r9817 successfully built on Snow Leopard.
Now I would like to understand what either mac_packager does or should do. I emptied aMule.app/Contents/Frameworks before building aMule and it's still empty after compiling and running mac_packager script. This way aMule suddenly crashes since it has none of the needed libraries:
Process: amule [50941]
Path: /Users/mirko/Desktop/TEMP/aMule-SVN-r9817/aMule.app/Contents/MacOS/amule
Identifier: org.amule.aMule
Version: ??? (???)
Code Type: X86-64 (Native)
Parent Process: launchd [78]
Date/Time: 2009-09-21 15:28:27.516 +0200
OS Version: Mac OS X 10.6 (10A432)
Report Version: 6
Interval Since Last Report: 1329003 sec
Crashes Since Last Report: 26
Per-App Crashes Since Last Report: 10
Anonymous UUID: 1D1B6006-D4A9-4737-871D-F22242E669A8
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Crashed Thread: 0
Dyld Error Message:
Library not loaded: @executable_path/../Frameworks/libupnp.3.dylib
Referenced from: /Users/mirko/Desktop/TEMP/aMule-SVN-r9817/aMule.app/Contents/MacOS/amule
Reason: image not found
Model: iMac6,1, BootROM IM61.0093.B07, 2 processors, Intel Core 2 Duo, 2.16 GHz, 2 GB, SMC 1.10f3
Graphics: NVIDIA GeForce 7300 GT, NVIDIA GeForce 7300 GT, PCIe, 128 MB
Memory Module: global_name
AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x87), Broadcom BCM43xx 1.0 (5.10.91.19)
Bluetooth: Version 2.2.0f18, 2 service, 0 devices, 1 incoming serial ports
Network Service: Ethernet, Ethernet, en0
Network Service: AirPort, AirPort, en1
Serial ATA Device: ST3250824AS Q, 232,89 GB
Parallel ATA Device: MATSHITADVD-R UJ-85J
USB Device: Built-in iSight, 0x05ac (Apple Inc.), 0x8501, 0xfd400000
USB Device: Keyboard Hub, 0x05ac (Apple Inc.), 0x1006, 0xfd300000
USB Device: USB-PS/2 Optical Mouse, 0x046d (Logitech Inc.), 0xc00e, 0xfd310000
USB Device: Apple Keyboard, 0x05ac (Apple Inc.), 0x0221, 0xfd320000
USB Device: Bluetooth USB Host Controller, 0x05ac (Apple Inc.), 0x8206, 0x7d100000
USB Device: IR Receiver, 0x05ac (Apple Inc.), 0x8240, 0x7d200000
-
The attached files a 0-sized... but don't mind, I know what they should contain.
I have all your patches prepared to be committed, however, there's one thing I don't understand. Namely: why does it work at all? I know why the last patches (for amule.h and amuled.cpp) didn't work for you first, the thing I don't understand is why did it work on the other machine.
The thing is, we're checking for __WXMAC__ being defined, but the last error output shows that you have __WXOSX_COCOA__ defined instead - which is right, and explains why the patch didn't work. Seems like that for the different frameworks on Mac wx (wx-svn-61995) now can have one of __WXMAC__, __WXCOCOA__, __WXOSX_CARBON__ or __WXOSX_COCOA__ defined.
Now what? Should we check for all these, is someone out there willing to try what works with which, or just wait until wx developers finally decide what means what?
-
the thing I don't understand is why did it work on the other machine.
I went back to the first machine and tried again... I figured out that it worked since I used a brand new aMule source and started from scratch.
The thing is, we're checking for __WXMAC__ being defined, but the last error output shows that you have __WXOSX_COCOA__ defined instead - which is right, and explains why the patch didn't work. Seems like that for the different frameworks on Mac wx (wx-svn-61995) now can have one of __WXMAC__, __WXCOCOA__, __WXOSX_CARBON__ or __WXOSX_COCOA__ defined.
Now what? Should we check for all these, is someone out there willing to try what works with which, or just wait until wx developers finally decide what means what?
I think thay really decided (http://wiki.wxwidgets.org/Development:_wxMac#Rationale_for_Pulling_in_wxCocoa_source_vs_Pushing_wxMac_into_wxCocoa).
I trust in your opinion: if you think it's better to wait for a wxMac release I'll wait for it and focus on aMule 2.2.6 for Mac - btw, I'm working on aMule 2.2.6 for Mac too and I plan (hope) to release it in a couple of days -; otherwise, as I previously said, if you think this work is preparatory to the introduction of wx 3.0 I'll continue trying... :)
-
I'm working on aMule 2.2.6 for Mac too and I plan (hope) to release it in a couple of days
Many are the hopers of your success.
if you think this work is preparatory to the introduction of wx 3.0 I'll continue trying... :)
Sure it is. It will a) preprare aMule for wx-3.0; b) help identify bugs in wx before 3.0 released.
-
Many are the hopers of your success.
& Sure it is. It will a) preprare aMule for wx-3.0; b) help identify bugs in wx before 3.0 released.
Both of these need me to understand where mac_packager point to. I'm more skilled on bash scripting than on Mac OS development for sure... hope I can help a little bit more with that...
I noticed a built aMule misses most of its libraries... and so happens with aMuleGUI and all other tools... why doesn't mac_packager take care of them?
UPDATE: with the patches from above I'm able now to build aMule SVN with wx2.9 and native 64-bit support. Using the official mac_packager aMule doesn't find some libraries... I tried to add libraries by hand but aMule doesn't correctly start and crashes with no crashlog... I will build aMule with debug option tomorrow.
-
I am the poor sod that made the mac_packager script. mac_packager should obviously take care of copying the needed libs and updating the pointed libraries path with otool.
Can you actually give me a full list of the steps you followed and what exactly I would need to build aMule in Snow Leopard? Don't get me wrong, I can do it by myself but it seems a waste of time for me to investigate when you could just tell me the exact steps you followed (what to install, what configure options to use, etc) and save me some of my extremely valuable time. Then I can fix mac_packager.
-
You should probably write all in a wiki article about Snow Leopard compilation.
-
Can you actually give me a full list of the steps you followed and what exactly I would need to build aMule in Snow Leopard?
@Mirko: The best way to do that would be to make a wiki article for it. Don't bother about the code patches of course, these will be committed.
-
These are my notes on SnowLeopard: http://www.mac-factory.org/redmine/wiki/macmule/Snow_Leopard
It's a "work in progress" of course. But I can modify it for the official wiki if you agree.
-
--with-wxdir=../wxWidgets_r00000/wx-config
I bet you'd either use
- --with-wx-config=../wxWidgets_r00000/wx-config, or
- --with-wxdir=../wxWidgets_r00000
-
I bet you'd either use
- --with-wx-config=../wxWidgets_r00000/wx-config, or
- --with-wxdir=../wxWidgets_r00000
lol... I twisted them...
-
But I can modify it for the official wiki if you agree.
Sure, go ahead. Best make a new page for it (copied from the MacOSX page) and link it on the compile page (http://wiki.amule.org/index.php/Compile).