Jump to content
Eternal Lands Official Forums
Roja

Help me compile the client!

Recommended Posts

Thanks for the tip, but I refreshed from CVS last night and the problem is fixed. I have now successfully compiled the client :o

That's because I committed what I considered to be the best fix to CVS. I'm glad it worked for you :)

 

... but the models look weird. I look like a disfigured dwarf and I'm draegoni! :)

I couldn't find several folders in CVS so I took them from the main client zip file...textures, maps, etc. Should I have done that?

Not sure why the character look weird. However, CVS normally only supplies the client executable, you should not really use anything else from the elc directory, just use the standard download game data. I'd suggest you reinstall your game data from the download and just use your CVS client executable. That will probably fix your character appearance issue.

 

Also, I will be moving to 64-bit AMD-based hardware over the weekend. I would appreciate it if someone could point me in the direction of what settings I may need to change in the Makefile.

You will need to change the "PLATFORM=-march=i686" line of make.conf to the value for your new hardware. Check "man gcc" for what that might be. Be warned that make.conf can be rewritten if make.default changes and you remake.

Edited by bluap

Share this post


Link to post
Share on other sites

I too am having some problems compiling the CVS client under Linux (SuSE 10.3 x86_64 with gcc 4.2). After installing all necessary *-devel-packages and editing the make.conf, I still get the following errors:

make -f Makefile.linux
gcc -march=x86-64 -Wall -Wdeclaration-after-statement -O0 -ggdb -pipe -DLINUX -DELC  -DALPHA_ACTORS  -DCLUSTER_INSIDES  -DCALCULATOR  -DCACHE_ANIMATIONS  -DCUSTOM_LOOK  -DCUSTOM_UPDATE  -DFUZZY_PATHS  -DMASKING  -DNEW_ACTOR_ANIMATION  -DNEW_SOUND  -DNEW_TEX  -DPNG_SCREENSHOT  -DPOPUP  -DSIMPLE_LOD  -DUSE_INLINE  -DZLIB -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/libxml2 -fno-strict-aliasing  -c -o actor_scripts.o actor_scripts.c
In file included from actor_scripts.c:20:
multiplayer.h:9:21: error: SDL_net.h: Datei oder Verzeichnis nicht gefunden
In file included from actor_scripts.c:20:
multiplayer.h:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘my_socket’
multiplayer.h:70: error: expected ‘)’ before ‘my_socket’
multiplayer.h:72: error: expected ‘)’ before ‘my_socket’
actor_scripts.c: In function ‘update_all_actors’:
actor_scripts.c:1728: warning: implicit declaration of function ‘my_tcp_send’
actor_scripts.c:1728: error: ‘my_socket’ undeclared (first use in this function)
actor_scripts.c:1728: error: (Each undeclared identifier is reported only once
actor_scripts.c:1728: error: for each function it appears in.)
make: *** [actor_scripts.o] Fehler 1

Any ideas?

Share this post


Link to post
Share on other sites

Oh right. SDL_net-devel to be precise :) .

 

Edit: Ok, got it to work, thanks. :P The Mapeditor won’t compile though (I’ll post in the Mapeditor thread).

Edited by Korythaiolos

Share this post


Link to post
Share on other sites

I've managed to compile a client from CVS that has working sound and hopefully deals with my stability issues. I was able to log into the test server just fine, but have I missed something to enable access to the main server? A flag somewhere? The client just closes quiety right after starting (when logging on to main). Scratch that, it's throwing a seg fault when attempting to log into the main or pk servers. My error_log.txt is pretty sparse with:

Log started at 2008-04-16 14:43:51 localtime (CDT)

[14:43:51] Using the server profile: main

 

I'm not sure what else I should post here, let me know...

 

Perhaps this will help out some:

(gdb) run
Starting program: /home/obin/elc-160/el.x86.linux.bin 
[Thread debugging using libthread_db enabled]
[New Thread -1217583424 (LWP 9724)]

Program received signal SIGSEGV, Segmentation fault.
[switching to Thread -1217583424 (LWP 9724)]
0xb7a8c116 in ?? () from /lib/tls/i686/cmov/libc.so.6
(gdb) backtrace
#0  0xb7a8c116 in ?? () from /lib/tls/i686/cmov/libc.so.6
#1  0xbfa35fe0 in ?? ()
#2  0xbfa35fe0 in ?? ()
#3  0x00000000 in ?? ()

 

edit: Updated info based on my paying some attention to cmd line...

Edited by Tjuxed

Share this post


Link to post
Share on other sites

I think it's because of the vertex programs and because the time on test server and main server is not the same. First, you can try to make a diff between your ~/.elc/main/el.ini and ~/.elc/test/el.ini to be sure that they are the same. Then you can try to disable vertex programs or rename the shaders directory to see if it helps.

Share this post


Link to post
Share on other sites

Thanks Schmurk! It's definitely something with the ini difference... :D I'll have a chance to narrow it down after RL slaps me silly for next few days.

 

edit:Right on the money. The old ini that was being used for the test server pointed to an old data dir that did not have a shaders directory. So far so good. I have sound and I have not *knocks on wood* locked up yet (over 30min running!) bah 45min to freeze...

Edited by Tjuxed

Share this post


Link to post
Share on other sites

I haven't even got as far as most of you, but there seems little point starting a new thread. I don't seem to have this 'install.sh' I need to chmod to 775 anywhere in my directory or in the .tar I just downloaded.

 

Been searching for the answer but just can't find it..

Share this post


Link to post
Share on other sites

There is no install.sh and you don't need it. :)

Just make sure you copy the servers.lst file from the el directory to ~/.elc

 

An older version had it included but now it's obsolete.

The installation description on the site just hasn't been updated yet.

Share this post


Link to post
Share on other sites

Hello again.

 

I downloded from CVS a couple of days ago, now I get this error:-

In file included from platform.h:100,

from actor_init.h:4,

from actor_init.cpp:2:

/usr/include/AL/alc.h:190: error: '<anonymous>' has incomplete type

/usr/include/AL/alc.h:190: error: invalid use of 'ALCvoid'

/usr/include/AL/alc.h:251: error: '<anonymous>' has incomplete type

/usr/include/AL/alc.h:251: error: invalid use of 'ALCvoid'

make: *** [actor_init.o] Error 1

 

My system is

307 /home/EL_CVS/elc$ uname -a

Linux zenwalk 2.6.25.4 #1 SMP PREEMPT Wed Jun 11 21:38:46 BST 2008 i686 Intel® Core™2 Duo CPU T7100 @ 1.80GHz GenuineIntel GNU/Linux

 

Graphics card: GeForce 8600M GT

 

Previous CVS compiled fine on the same laptop.

Edited by EaglePrince

Share this post


Link to post
Share on other sites

I just did cvs up && make -f Makefile.linux, works fine for me.

 

Have you altered any compile flags?

Share this post


Link to post
Share on other sites
I just did cvs up && make -f Makefile.linux, works fine for me.

 

Have you altered any compile flags?

Files are two days old...maybe too old?

I will get rid of them and try a fresh download. Will post feedback here.

 

Update

Same error on two-minute old CVS

 

No files were modified

Edited by EaglePrince

Share this post


Link to post
Share on other sites
I downloded from CVS a couple of days ago, now I get this error:-
In file included from platform.h:100,

from actor_init.h:4,

from actor_init.cpp:2:

/usr/include/AL/alc.h:190: error: '<anonymous>' has incomplete type

/usr/include/AL/alc.h:190: error: invalid use of 'ALCvoid'

/usr/include/AL/alc.h:251: error: '<anonymous>' has incomplete type

/usr/include/AL/alc.h:251: error: invalid use of 'ALCvoid'

make: *** [actor_init.o] Error 1

That include file comes from the libopenal-dev package and is version 1:0.0.8-7 on my box (Debian testing). Have you changed that package recently?

Share this post


Link to post
Share on other sites
That include file comes from the libopenal-dev package and is version 1:0.0.8-7 on my box (Debian testing). Have you changed that package recently?

Thanks for checking that.

 

I have openal-0.0.8 here, compiled from source.

I think that's the latest stable version.

 

Update

 

The version of OpenAL on their home page does not work on my system although it compiles. I did not have this problem in previous versions of Zenwalk.. I'm not sure if the problem is the kernel or gcc.

 

The solution was to download from subversion and build it myself.

 

Thank to everyone for their input.

Edited by EaglePrince

Share this post


Link to post
Share on other sites

And this error?

 

  CC   textures.o
textures.c: In function ‘load_bmp8_fixed_alpha_with_transparent_color’:
textures.c:1691: error: redeclaration of ‘i’ with no linkage
textures.c:1689: error: previous declaration of ‘i’ was here
make: ** [textures.o] Erro 1

 

 

EDIT:

Ok, working now, I'm used the default make.default file.

Edited by Saelf

Share this post


Link to post
Share on other sites
Ok, working now, I'm used the default make.default file.

Do you know what defines you had enabled when it failed?

Share this post


Link to post
Share on other sites

I've recently started playing with the CVS stuff to learn more about all of this stuff because I'm starting to rewrite my bot proggy.

 

I've been round-n-round with this, following the tuts and getting everything linked up and installed, but can't get past these errors and can't quite figure it out:

 

It started with:

  Permission denied 
D:\elc\Makefile.win [Build Error]  [clean] Error 1

 

I then added -Wall to the Compiler and C++ compiler sections in the Parameters tab of Project Options and now keep getting these:

 

 D:\elc\actor_init.cpp In function `void build_buffers(actor_types*)': 
892 D:\elc\actor_init.cpp [Warning] converting to `Uint8' from `float' 
904 D:\elc\actor_init.cpp [Warning] converting to `Uint8' from `float' 
904 D:\elc\actor_init.cpp creating libelc.a

 

The lines it points to are:

 

buffer[i].m_weight[j] = weight_buffer[i * 4 + j] * 255.0f;

(where m_weight is Uint8 and weight_buffer is a float array)

 

buffer[i].m_index[j] = matrix_index_buffer[i * 4 + j];

(same with m_index and matrix_index_buffer)

 

I'm pretty stumped here. I made it past all kinds of other stuff (like some others listed previously in this thread), but can't see the forest for the trees here.

 

I'm running WinXP Pro, Dev-Cpp, have everything linked and included as per the guides (that I can see), and have changed from the plain SDL_Net to the devel one, changed from the plain Open_AL to the devel one, etc.. Using the makefile that came from CVS, edited the conf file as instructed, etc..

 

 

 

In the Parameters tab of Project Options for Linker:

C:/Dev-Cpp/lib
C:/Dev-Cpp/lib/alut.lib
-lSDL_main
-lSDL
-lSDL_net
-SDL_image

 

 

In the Directories tab > Include Directories:

C:\Dev-Cpp\include
C:\Dev-Cpp\include\SDL
C:\Dev-Cpp\include\AL

 

 

Anybody got an idea what I haven't done yet from any of this?

Share this post


Link to post
Share on other sites

D:\elc\actor_init.cpp In function `void build_buffers(actor_types*)': 
892 D:\elc\actor_init.cpp [Warning] converting to `Uint8' from `float' 
904 D:\elc\actor_init.cpp [Warning] converting to `Uint8' from `float' 
904 D:\elc\actor_init.cpp creating libelc.a

That shows that you have successfully compiled.

 

If you *really* wanted to get rid of those warnings you could always change

buffer[i].m_weight[j] = weight_buffer[i * 4 + j] * 255.0f;
buffer[i].m_index[j] = matrix_index_buffer[i * 4 + j];

to

buffer[i].m_weight[j] = (Uint8) (weight_buffer[i * 4 + j] * 255.0f);
buffer[i].m_index[j] = (Uint8)(matrix_index_buffer[i * 4 + j]);

Share this post


Link to post
Share on other sites

Committed, no need to edit the file yourself, just grab the latest CVS.

Share this post


Link to post
Share on other sites

Thank you, sir. I had thought about casting that also, but was trying to get it up and running without modifying ANYthing from CVS.

 

Mucho appreciated, Labby. :rolleyes:

 

One more thing...

 

Any advice on which of the FEATURES in makefile.conf I need to uncomment or comment to match the current official client?

Edited by DarElik

Share this post


Link to post
Share on other sites

" Permission denied

D:\elc\Makefile.win [build Error] [clean] Error 1" Use either sudo, gksudo or su.

Share this post


Link to post
Share on other sites

I did cvs update tonight and cannot get it to compile.

 

djr@PoPeYe:~/elc$ djr@PoPeYe:~/elc$ make -f Makefile.linux

djr@PoPeYe:~/elc$ make.conf:55: *** missing separator. Stop.

bash: make.conf:55:: command not found

Share this post


Link to post
Share on other sites
I did cvs update tonight and cannot get it to compile.

 

djr@PoPeYe:~/elc$ djr@PoPeYe:~/elc$ make -f Makefile.linux

djr@PoPeYe:~/elc$ make.conf:55: *** missing separator. Stop.

bash: make.conf:55:: command not found

It works OK for me. Were there any conflicts when you did the update? IIRC, conflicts would show with a "C" in the left column during the update. Probably easiest if you rename/delete your make.conf and make.defaults files then update again.

Share this post


Link to post
Share on other sites
I did cvs update tonight and cannot get it to compile.

 

djr@PoPeYe:~/elc$ djr@PoPeYe:~/elc$ make -f Makefile.linux

djr@PoPeYe:~/elc$ make.conf:55: *** missing separator. Stop.

bash: make.conf:55:: command not found

I see that you're a Ubuntu user. Make I ask if you have ever installed anything from source under Ubuntu? I fell into the same trap when I tried Ubuntu a while back and was shocked when I found out that make is usually not present on a default Ubuntu installation!

I am pretty sure this is the root of your problem, so the solution offered in the link should work.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×