View Single Post
  #6  
Old 06-08-2005, 12:11 AM
SuedeWorthey
Sarnak
 
Join Date: Jan 2005
Posts: 64
Default Guide to compiling EqEmu 0.6.1 DR1 or DR2 w and w/o PERL

Well, it took me some hours, but I got everything pulled together. I will note all the changes that I can remember that I made. I started With Visual Studio .Net Version 7.0.9446 (2002).

First, you have to get the source from my site or though CVS. If you go through CVS there are several changes you have to make to the code.

I Included the DB fix that was noted by Emuman2098, and the Archery fix by cavedude, and I got most of my information to compile from Cisyouc.
Thanks a lot guys.

First, download the latest source from CVS and Edit/or download it from:
The zlib library is already included with the source as well. And also in the original .tar I extracted it from.
http://www.steelpsychos.com/index.php?link=eqemu.php

Next, ensure that you have MySQL and PERL installed.
I recommend MySQL 4.0.xx because I have some odd permissions problems with 4.1, but you may not. Also downloadable from my site.

http://dev.mysql.com/downloads/mysql/4.1.html
http://www.activestate.com/Products/...?id=ActivePerl

After you extract the source, extract the zlib source into a folder called zlib under the same folder as the .sln file. (Already included in my source distro)

Extract the source file to a folder of your choice. If you don't know how to do this, I suggest you learn how to use a PC before you try to program it. I use Winrar to package the files. I also provided a SFX Archive .exe. I take no responsibility for what these may do to your PC, but I ensure they are virus free, etc...

Now that you have installed MySql, PERL(for PERL compiles only), and extracted the source, open the server.sln file. If it asks you to update/whatever, click yes.

For All Compilations:
Click Tools->Options.
Expand Projects.
Select VC++ Directories.
Where it says Show Directories For: Select Include Files.
Press CTRL+Insert to add a new line.
Browse to your MySql installation and select the mysql\include folder.
Press CTRL+Insert again.
Browse to where you extracted zlib, and select that folder.
Note: If you used my source zlib will be under the zlib folder.

Do the same thing once more:
Where it says Show Directories For: Select Library Files.
Press CTRL+Insert to add a new line.
Browse to your MySql installation and select the mysql\lib\opt folder.
Press CTRL+Insert again.
Browse to where you extracted zlib, and select that folder.
Note: If you used my source zlib will be under the zlib folder.

For compile with PERL:
Make sure you have the DebugPerl configuration selected.
Right-Click on Zone in the Solution Explorer Window.
Click Properties.
Expand the Configuration Properties Panel.
Expand C/C++ Panel.
Select General.
Under the Additional Include Directories, ensure that the path points to where you installed PERL, and iafter that folder add \lib\core. It should resemble c:\PERL\lib\CORE. Once again, if you don't know how to do this, just stop here and download the pre-compiled version.
ex:
c:\perl\lib\core

--Do not do this for DR2--
Once you ensure this is correct, click OK.

Before you compile, you will have to make an edit to the PERL file:
Remember to change this back after you are through compiling...

On line ~18 of perl\lib\core\socket.h, change it from:
#include <winsock.h>

to:
#include <winsock2.h>

If you leave this part out you will get tons of library conflicts between winsock and winsock2 at zone compile time.
--End do not do this for DR2--
Reason, DR2 was changed to use the winsock library rather than the winsock2 library.

Compilation time:
Now, you should be ready to compile. Select Build->Build Solution or press CTRL+ALT+B, and compilation will begin. If you have any errors, feel free to post them and I will try to re-create them and fix them for you.

NOTE: I made a change in rdtsc.cpp. My compiler didn't like the type unsigned long long, so I changed it to uint64.
I assumed that since it was trying to make an unsigned integer with the size of 2 longs(32 bits). That would have made it 64 bits long, so uint64 should do it.

char 8bits -127 to 127
unsigned char 8bits 0 to 255
short 16bits -32,767 to 32,767
unsigned short 16bits 0 to 65,535
int 32bits -2,147,483,647 to 2,147,483,647
unsigned int 32bits 0 to 4,294,967,295
long 32bits -2,147,483,647 to 2,147,483,647
unsigned long 32bits 0 to 4,294,967,295
long long 64bits -9,223,372,036,854,775,807 to 9,223,372,036,854,775,807
unsigned long long 64bits 0 to 18,446,744,073,709,551,615

If I am wrong feel free to correct me and provide the proper code for the fix.
If I missed anything, let me know and I'll fix it.

Also, my compiled versions are available on my website for download with the fixes noted above.

-Steel Psychos Server Admin-

Last edited by SuedeWorthey; 06-24-2005 at 01:37 PM..
Reply With Quote