aMule Forum
English => Compilation problems => Topic started by: OldFrog on October 02, 2008, 07:23:24 AM
-
Compiling against wxGtk 2.8.9
Options are
**** aMule Core ****
Prefix where aMule should be installed? /usr/local
Should aMule be compiled with i18n support? yes
Should aMule be compiled in debug mode? no
Should aMule be compiled with profiling? no
Should aMule be compiled with optimizations? no
Should aMule be compiled with UPnP support? yes
Should aMule be compiled with IP2country support? yes
Should aMule monolithic application be built? yes
Should aMule daemon version be built? yes
Should aMule remote gui be built? (EXPERIMENTAL) yes
Crypto++ library/headers style? installed
**** aMule TextClient ****
Should aMule Command Line Client be built? yes
**** aMule WebServer ****
Should aMule WebServer be built? yes
**** aMule ED2K Links Handler ****
Should aMule ED2K Links Handler be built? yes
**** aMuleLinkCreator ****
Should aMuleLinkCreator GUI version (alc) be built? yes
Should aMuleLinkCreator for console (alcc) be built? yes
**** aMule Statistics ****
Should C aMule Statistics (CAS) be built? yes
Should aMule GUI Statistics (wxCas) be built? yes
Should xas XChat2 plugin be installed? yes
**** General Libraries and Tools ****
Should ccache support be enabled? no
Libraries aMule will use to build:
wxWidgets 2.8.9 (gtk2,shared)
crypto++ 5.5 (installed, in
/usr)
libupnp 1.6.6
regex system
libintl system
libGeoIP system
libpng 1.2.25
libgd 2.0.35
zlib 1.2.3
Configure is
./configure \
--prefix=%{_prefix} \
--disable-debug \
--enable-cas \
--enable-wxcas \
--enable-amulecmd \
--enable-amule-gui \
--enable-webserver \
--enable-webservergui \
--enable-ccache \
--enable-kad-compile \
--enable-amulecmdgui \
--enable-amule-daemon \
--enable-embedded_crypto \
--enable-monolithic \
--enable-ed2k \
--enable-alc \
--enable-alcc \
--enable-systray \
--enable-geoip \
--with-wx-config=`rpm -ql wxGTK-devel|grep 'wxgtk-2\.[0-9]-config'` \
--with-wxbase-config=`rpm -ql wxBase|grep 'wxbase-2\.[0-9]-config'`
Generating ECVersion.h... created.
/usr/bin/make all-am
make[7]: entrant dans le répertoire « /home/louis/rpm/BUILD/amule-cvs/src/libs/e
c/cpp »
g++ -DHAVE_CONFIG_H -I. -I../../../.. -DUSE_WX_EXTENSIONS -I../../../../src -I.
./../../../src/libs -I../../../../src/include -I/usr/lib/wx/include/gtk2-unicode
-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXG
TK__ -W -Wall -Wshadow -Wundef -pthread -MT ECTag.o -MD -MP -MF .deps/ECTag.
Tpo -c -o ECTag.o ECTag.cpp
mv -f .deps/ECTag.Tpo .deps/ECTag.Po
g++ -DHAVE_CONFIG_H -I. -I../../../.. -DUSE_WX_EXTENSIONS -I../../../../src -I.
./../../../src/libs -I../../../../src/include -I/usr/lib/wx/include/gtk2-unicode
-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXG
TK__ -W -Wall -Wshadow -Wundef -pthread -MT ECPacket.o -MD -MP -MF .deps/ECP
acket.Tpo -c -o ECPacket.o ECPacket.cpp
mv -f .deps/ECPacket.Tpo .deps/ECPacket.Po
g++ -DHAVE_CONFIG_H -I. -I../../../.. -DUSE_WX_EXTENSIONS -I../../../../src -I.
./../../../src/libs -I../../../../src/include -I/usr/lib/wx/include/gtk2-unicode
-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXG
TK__ -W -Wall -Wshadow -Wundef -pthread -MT ECSocket.o -MD -MP -MF .deps/ECS
ocket.Tpo -c -o ECSocket.o ECSocket.cpp
ECSocket.cpp: In member function ‘bool CECSocket::HaveNotificationSupport()’:
ECSocket.cpp:275: erreur: ‘EC_FLAG_NOTIFY’ was not declared in this scope
make[7]: *** [ECSocket.o] Erreur 1
-
Same here.
-
Works here. Please paste the results of the following command:
$ grep EC_FLAG_ src/libs/ec/cpp/ECCodes.h
EC_FLAG_ZLIB = 0x00000001,
EC_FLAG_UTF8_NUMBERS = 0x00000002,
EC_FLAG_HAS_ID = 0x00000004,
EC_FLAG_ACCEPTS = 0x00000010,
EC_FLAG_NOTIFY = 0x00008000,
EC_FLAG_UNKNOWN_MASK = 0xff7f7f08
-
[amarcord@Gaia amule-cvs]$ grep EC_FLAG_ src/libs/ec/cpp/ECCodes.h
EC_FLAG_ZLIB = 0x00000001,
EC_FLAG_UTF8_NUMBERS = 0x00000002,
EC_FLAG_HAS_ID = 0x00000004,
EC_FLAG_ACCEPTS = 0x00000010,
EC_FLAG_UNKNOWN_MASK = 0xff7f7f08
-
The answer is probably simple, you are both not compiling today's tarball. Erase the directory completely and reopen the tarball in a clean place.
The constant EC_FLAG_NOTIFY should appear in src/libs/ec/cpp/ECCodes.h, and it is in the tarball I have downloaded here.
-
The answer is probably simple, you are both not compiling today's tarball. Erase the directory completely and reopen the tarball in a clean place.
The constant EC_FLAG_NOTIFY should appear in src/libs/ec/cpp/ECCodes.h, and it is in the tarball I have downloaded here.
Please, believe me: I'm using today's tarball. My directories and files are erased every day. Anyway, I re-downloaded the tarball with same results, error compiling and the absent of EC_FLAG_NOTIFY.
By the way, I'm using Arch Linux not Mandriva.
Thanks.
-
Same here
debian testing: http://vollstreckernet.dyndns.org/amule-svn-testing-build.log
debian stable: http://ccc-hanau.de/~vollstrecker/amule-svn-stable-build.loghttp://ccc-hanau.de/~vollstrecker/amule-svn-stable-build.log
You can see, really a clean tarball, Here here the files:
Testting:
werner@Werner1:/usr/src/amule/build/deb/cvs/test/amule-2.2.2+SVN20081002$ grep EC_FLAG_ src/libs/ec/cpp/ECCodes.h
EC_FLAG_ZLIB = 0x00000001,
EC_FLAG_UTF8_NUMBERS = 0x00000002,
EC_FLAG_HAS_ID = 0x00000004,
EC_FLAG_ACCEPTS = 0x00000010,
EC_FLAG_UNKNOWN_MASK = 0xff7f7f08
werner@Werner1:/usr/src/amule/build/deb/cvs/test/amule-2.2.2+SVN20081002$
Stable:
vollstrecker@perestroika:~/amule/build/amule-2.2.2+SVN20081002$ grep EC_FLAG_ src/libs/ec/cpp/ECCodes.h
EC_FLAG_ZLIB = 0x00000001,
EC_FLAG_UTF8_NUMBERS = 0x00000002,
EC_FLAG_HAS_ID = 0x00000004,
EC_FLAG_ACCEPTS = 0x00000010,
EC_FLAG_UNKNOWN_MASK = 0xff7f7f08
vollstrecker@perestroika:~/amule/build/amule-2.2.2+SVN20081002$
-
I am sorry, this is quite hard to understand unless we are talking about different tarball files.
$ rm -rf amule-cvs/
$ tar xf aMule-CVS-20081002.tar.bz2
$ grep -nR EC_FLAG_NOTIFY amule-cvs/
amule-cvs/cocoa-mule/EC.mm:405: p->m_flags |= EC_FLAG_NOTIFY;
amule-cvs/src/libs/ec/cpp/ECSocket.cpp:275: return (m_rx_flags & EC_FLAG_NOTIFY) != 0;
amule-cvs/src/libs/ec/cpp/ECCodes.h:44: EC_FLAG_NOTIFY = 0x00008000,
See, EC_FLAG_NOTIFY is in line 44 of file amule-cvs/src/libs/ec/cpp/ECCodes.h prior to compilation.
Anyway, I went on a little bit and found out that you are right indeed:
...
Reading content section...
Datatype: Enum
Dataname: EC_STATTREE_NODE_VALUE_TYPE
DataType: uint8
Reading content section...
Datatype: Enum
Dataname: EcPrefs
DataType: uint32
No more content sections
All info parsed
Making all in cpp
Generating ECVersion.h... created.
Compiling ECTag.cpp
Compiling ECPacket.cpp
Compiling ECSocket.cpp
ECSocket.cpp: In member function ‘bool CECSocket::HaveNotificationSupport()’:
ECSocket.cpp:275: error: ‘EC_FLAG_NOTIFY’ was not declared in this scope
make[7]: *** [ECSocket.o] Error 1
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
$ grep -nR EC_FLAG_NOTIFY .
./cocoa-mule/EC.mm:405: p->m_flags |= EC_FLAG_NOTIFY;
./src/libs/ec/cpp/ECSocket.cpp:275: return (m_rx_flags & EC_FLAG_NOTIFY) != 0;
The file amule-cvs/src/libs/ec/cpp/ECCodes.h has been touched by the build system.
Try to apply the following patch, it will be on the tomorrow svn tarball:
Index: src/libs/ec/abstracts/ECCodes.abstract
===================================================================
--- src/libs/ec/abstracts/ECCodes.abstract (revision 9151)
+++ src/libs/ec/abstracts/ECCodes.abstract (working copy)
@@ -29,6 +29,7 @@
EC_FLAG_UTF8_NUMBERS 0x00000002
EC_FLAG_HAS_ID 0x00000004
EC_FLAG_ACCEPTS 0x00000010
+EC_FLAG_NOTIFY 0x00008000
EC_FLAG_UNKNOWN_MASK 0xff7f7f08
[/Section]
Now it performs as expected
...
Reading content section...
Datatype: Enum
Dataname: EC_STATTREE_NODE_VALUE_TYPE
DataType: uint8
Reading content section...
Datatype: Enum
Dataname: EcPrefs
DataType: uint32
No more content sections
All info parsed
Making all in cpp
Generating ECVersion.h... created.
Compiling ECTag.cpp
Compiling ECPacket.cpp
Compiling ECSocket.cpp
Compiling ECMuleSocket.cpp
Compiling RemoteConnect.cpp
Compiling ECSpecialTags.cpp
Building libec.a
Making all in common
Kry, why is this file under version control if it is generated on configure?
-
At least for the tarball it doesn't work.
amule-2.2.2+SVN20081002$ patch -p0 < p
patching file src/libs/ec/abstracts/ECCodes.abstract
Hunk #1 FAILED at 29.
1 out of 1 hunk FAILED -- saving rejects to file src/libs/ec/abstracts/ECCodes.abstract.rej
werner@Werner1:/usr/src/amule/build/deb/cvs/test/amule-2.2.2+SVN20081002$cat pIndex: src/libs/ec/abstracts/ECCodes.abstract
===================================================================
--- src/libs/ec/abstracts/ECCodes.abstract (revision 9151)
+++ src/libs/ec/abstracts/ECCodes.abstract (working copy)
@@ -29,6 +29,7 @@
EC_FLAG_UTF8_NUMBERS 0x00000002
EC_FLAG_HAS_ID 0x00000004
EC_FLAG_ACCEPTS 0x00000010
+EC_FLAG_NOTIFY 0x00008000
EC_FLAG_UNKNOWN_MASK 0xff7f7f08
[/Section
werner@Werner1:/usr/src/amule/build/deb/cvs/test/amule-2.2.2+SVN20081002$
-
It is because of spaces, let me attach the real patch file.
-
Changing the file by myself (editing the file and inserting the missing line) it works perfectly.
Thanks.
-
This is case of file-missed-in-commit-due-to-manual-selection.
-
Yep, works
-
This is case of file-missed-in-commit-due-to-manual-selection.
:D
-
Kry, why is this file under version control if it is generated on configure?
Feel free to rape it.
-
Kry, why is this file under version control if it is generated on configure?
Because there are platforms that don't have configure. Like Windows MSVC. (Or just Windows MSVC, whatever.) Removing files that can't be generated there breaks their build.
You were right about the CountryFlags.h, which is generated with autogen.sh and thus part of the tarball, but not about this one.
If you want to remove it please move it's generation to autogen first.
Or we can make a Perl installation mandatory for the Windows build (there's an excellent Perl for Windows), and I can set it up to be generated in the MSVC project too. That way I could enable some other features too, like showing the SVN version in the app and such. But there's no acceptable way to rund sh scripts on Win, so if you want to remove such files scripts should be ported to Perl.
-
Kry, why is this file under version control if it is generated on configure?
It's the same reason we have files under version control that are generated by the build process.
-
Then leave it ther for that reason.