Configure
Using configure script is a method to generate makefiles before compilation in Unix systems.
When installing Hercules, configure script should be run after Git Clone and before compiling.
Contents |
Basic usage
To avoid errors in server-client communication, PACKETVER
must be set to date the client you're going to use has been released at (in YYYYMMDD format), eg 20100730
for 2010-07-30aRagexeRE. Instead of editing mmo.h directly, PACKETVER
can be set to desired date with configure switch --enable-packetver=YYYYMMDD
.
Run following command, replacing YYYYMMDD with your client release date, eg 20100730.
./configure --enable-packetver=YYYYMMDD
Configure script will perform necessary tests and generate makefiles.
Sample output
checking whether make sets $(MAKE)... yes checking for gcc... gcc 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 gcc accepts -g... yes checking for gcc option to accept ANSI C... none needed checking how to run the C preprocessor... gcc -E checking whether byte ordering is bigendian... no checking whether pointers can be stored in ints (old code)... yes checking whether gcc supports -Wno-unused-parameter... yes checking whether gcc supports -Wno-pointer-sign... yes checking whether gcc can actually use -Wno-pointer-sign... yes checking whether gcc supports -Wno-switch... yes checking whether gcc supports -fPIC... yes checking whether gcc needs -fPIC for shared objects... no checking whether gcc supports -fno-strict-aliasing... yes checking whether gcc is able to typecast to union... yes checking for setrlimit... yes checking for strnlen... yes checking for inflateEnd in -lz... yes checking zlib.h usability... yes checking zlib.h presence... yes checking for zlib.h... yes checking for library containing sqrt... -lm checking for library containing clock_gettime... -lrt checking whether CLOCK_MONOTONIC is supported and works... yes checking for mysql_config... /usr/bin/mysql_config checking for mysql_init in -lmysqlclient... yes checking mysql.h usability... yes checking mysql.h presence... yes checking for mysql.h... yes checking MySQL library (optional)... yes (5.0.51a) checking for pcre_study in -lpcre... yes checking PCRE library (optional)... yes checking host OS... Linux checking for MinGW... no configure: creating ./config.status config.status: creating Makefile config.status: creating src/common/Makefile config.status: creating 3rdparty/mt19937ar/Makefile config.status: creating src/char/Makefile config.status: creating src/login/Makefile config.status: creating src/char_sql/Makefile config.status: creating src/txt-converter/Makefile config.status: creating src/map/Makefile config.status: creating src/plugins/Makefile config.status: creating src/tool/Makefile
Setting executable bit
In order to run configure script it must be executable, ie have the execute permission set. When checking out a working copy from a git repository repository, executable bit should be set automatically. However, if it fails for some reason, running ./configure
will bring the following message (or similar):
bash: ./configure: Permission denied
To fix this, set executable permission with:
chmod +x ./configure
Additional switches
To display all available switches use:
./configure --help
Debug mode
It is possible to compile Hercules in debug mode with --enable-debug
switch.