45 Commits

Author SHA1 Message Date
blacksirius
7332a89352 added new networking subsystem (early stage - files are not compiled yet during normal build!)
Note
	The files i added / modifications i did, are not affecting a normal build
	nothing gets changed yet!

	Linux 2.5+ only yet.

	


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16271 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-06-12 00:59:55 +00:00
blacksirius
b3481a4aaf thread api: added support for platforms without TLS (Thread Local Storage) support (usually older OSX llvm versions ..)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16226 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-06-03 20:09:39 +00:00
blacksirius
04165cfcff feature merge bs-coreoptimize->trunk: Atomic Operations, Threading, Spinlock implemnetation. [commit 1/2, windows will followup]
- Added Abstractions for Atomic Operations (lock instructions.. windows guy's may now this as Interlocked* stuff ..)
- Added Threading api abstraction for Pthread based OS's and Windows
- Added Spinlock Implementation (uses CAS / if you need more informations - just read the source - its simple.)

- Due to Interlocked(Compare)Exchange64 .. we now require at least i686 (Pentium Pro) for 32Bit Builds :)
	youll also may feel some performance improvements when using 32bit builsd due to "newer" minimal arch
	the compiler is now able to use CMOV's ....


================================================================
= Important Warning: 
================================================================
Dont use threading at the moment athena is not threadsafe!
you'll mess up everthing when accessing data from other threads .., no synchronization is provided.

A way to process tasks asynchronously will come up after / with the new socket system.




git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16221 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-06-03 18:53:02 +00:00
blacksirius
b1881eafee removed the old obsolete Plugin system (commit 1/2)
- Removed @ Autoconf/make and CMake, VC Projects will be cleaned in a additional commit.



git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16203 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-06-01 14:21:02 +00:00
blacksirius
c6c471119f Issue 5887: changed description of --disable-64bit switch.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16200 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-06-01 11:52:05 +00:00
blacksirius
d1746e052d feature merge bs-coreoptimize->trunk: Build Output Cleanup, Makefile Common Dependency Handling
- "Optimized" the build Output using Makefiles - to Kernel style build output.
- Changed dependency handling to common (core), by generating one lib file (ar) and link against that
	instead of assigning all deps individually in every subproject
- Changed header dependency handling in Subproject makefiles - requiring all common/ headers. 



git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16198 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-06-01 10:46:02 +00:00
blacksirius
d81154b3ea feature merge bs-coreoptimize->trunk: Enable 64Bit build by default on adequate platforms.
Info:
No need for --enable-64bit anymore, 
you can force to build 32bit bin's on such platforms by adding a --disable-64bit (or --enable-64bit=no) .. 




git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16197 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-06-01 10:16:44 +00:00
blacksirius
82f5c8991a feature merge bs-coreoptimize->trunk: LTO support
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16196 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-06-01 10:09:16 +00:00
gepard1984
a2424f2c92 Fixed libconfig compiling issues in CentOS 5 (follow-up to r15572) (pid:78747).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15584 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-02-15 16:14:06 +00:00
gepard1984
431e62cdfc Fixed libconfig compiling issues in OS X (pid:78414).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15573 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-02-13 14:34:24 +00:00
gepard1984
22f0714c07 - Added libconfig (configuration file library: http://www.hyperrealm.com/libconfig/):
- Updated VS9/10 project files.
   - Updated `configure` & `Makefile`s.
 - New GM, Commands & Permissions system:
   - '''This is a backwards compatibility breaking update''', please read tid:58877
   - Replaced GM levels with Player Groups.
   - Commands permissions & other privileges now depend on group, not GM level.
 - `@help` command improvements: requires "commandname" param and shows more detailed info about commands.
 - Modified GM whisper system to deliver messages basing on permissions, not GM level.
 - Remote trade request is now possible only if player is allowed to use `@trade` command as well.
 - Added a proper permission to use `/changemaptype` command.
 - `clif_displaymessage` is now capable of displaying multiline messages.
 - All `ACMD_FUNC`s are static now, and the only way to invoke them is with `is_atcommand()`; all client commands (starting with `/`) are now translated into corresponding atcommands (with exception of `/kick` used on monster, as there is no atcommand to kill single monster).
 - Removed nonsense "bot check" triggering when player blocked (`/ex`) Server.
 - Merged `@monster`, `@monsterbig` and `@monstersmall`.
 - Improved flow of atcommand execution to avoid revealing info about online players or existing commands to non-privileged players.
 - Merged `atcommand` and `charcommand` script functions (`charcommand` is aliased to `atcommand`).
   - Fixed `atcommand` script function reading unknown memory area (possible access violation).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15572 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-02-13 01:19:04 +00:00
gepard1984
bf1c81839f Merged TXT removal branch back to trunk.
* TXT save engine is removed and no longer supported.
* See also tid:53926, tid:57717.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15503 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-01-20 20:33:32 +00:00
gepard1984
7a30325ab1 * Added --enable-buildbot to configure.in (follow-up to r15128).
* Fixed TXT-removal branch configure and Makefile errors and removed TXT-only leftovers.
 * SQL libs are now required to configure/make TXT-removal branch.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15499 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-01-19 22:05:57 +00:00
shennetsind
4f11432152 Fixed GCC "--enable-debug", and 2 compiler warnings that were omitted due to enable-debug being broken.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15197 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-12-21 06:54:57 +00:00
shennetsind
b400444adb Finished BuildBot "console error scan" stuff.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15128 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-12-15 02:24:20 +00:00
eathenabot
1810f2efcc * Merged changes up to eAthena 15032.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15065 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-12-11 21:06:25 +00:00
ai4rei
deb770e053 * Added -fno-strict-aliasing detection to configure.in (-fstrict-aliasing is added through -O2), since the code is not aliasing safe and causes warnings with gcc.
- This also fixes a missing line in the pre-built configure script (since r14870).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14935 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-08-16 17:09:27 +00:00
flaviojs
f4d8ec2ff0 * Added common/random and 3rdparty/mt19937ar to project files, makefiles and configure script.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14870 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-06-27 01:47:06 +00:00
ai4rei
1649f98824 * Moved detection of monotonic clock support to the configure script, which also checks, whether or not it actually works (bugreport:1003, related r11912 and r11983).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14767 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-04-05 11:11:36 +00:00
ai4rei
851de7e0e7 * Updates the to configure script.
- Added check, whether or not '-Wno-pointer-sign' can actually be used (caused warnings with g++).
- Math library is no longer considered required, when math functions are available without it (made configure fail on platforms, where no separate math library is present).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14749 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-03-20 11:09:57 +00:00
ai4rei
ba8bd70b0c * Updated configure/make scripts to resolve various issues.
- Added detection whether or not -fPIC switch is required when compiling shared objects (plug-ins) to resolve compile issues on 64-bit platforms (topic:208746).
- Native 'strnlen' implementations are now detected and disable the one in strlib (bugreport:1261).
- Define 'DB_MANUAL_CAST_TO_UNION' is now set when necessary (bugreport:1261).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14708 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-02-16 19:36:51 +00:00
ai4rei
3e4934d780 * Removed ladmin (remote administration tool), all related support code and the checkversion.pl tool with it's support code, which was shared with ladmin (topic:262934, related bugreport:1147, bugreport:1889, r9408 and r9610).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14667 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-01-13 11:42:12 +00:00
Yommy
f9c60fd3fa added --enable-rdtsc configure option to enhance timer performance, especially in virtualized environments; default disabled - credits to sirius_black
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14265 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-03-16 21:42:14 +00:00
FlavioJS
4d467728cf * Changes to the configure script:
- added option --enable-profiler (supports gprof)
- added option --enable-64bit (don't force 32bit)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13486 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-01-25 16:12:20 +00:00
ultramage
dcc2cdb5da Split off mapreg code from script.c
* new mapserver files, mapreg.h, mapreg_txt.c, mapreg_sql.c
 * removed MAPREGSQL from project files / makefiles
 * mapreg storage engine is now fully dependent on the server type
 * added config settings mapreg_txt and mapreg_db to inter config
 * added get_str() function to complement add_str()
 * fixed txt mapreg code allowing too long variable names

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13081 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-08-15 11:14:45 +00:00
ultramage
9ffa1e7abb Added gcc compiler flags to silence some warnings in non-debug builds (bugreport:1993)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13073 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-08-12 04:52:39 +00:00
akrus
24aa1138f5 * Improved: added --enable-debug=gdb option in configure script to use gdb optimized debug mode [akrus]
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13024 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-31 07:03:12 +00:00
ultramage
8fed0c403c * Removed some leftover code that shouldn't have been merged
* Possibly corrected a guild saving problem (bugreport:1908)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13003 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-27 07:07:20 +00:00
ultramage
106b44c1e7 Merged the /loginmerge branch (topic:192754)
* the login server storage, ipban and logging systems have been abstracted and now provide a common interface; the rest has been merged into a single login server core (no more login/login_sql duplicity)
 * storage systems are now added via compiler options (WITH_SQL / WITH_TXT)
 * multiple storage engines can be compiled in at the same time, and the config option account.engine defines which one will be used.
 * due to MySQL autoincrement limitations, accounts with id '0' will not be supported; account IDs from this point on should start from '1'.
 * login_log() functions now again record IP addresses in dotted format, not as 4-byte integers (undo from r6868).
 * removed config options that defined column names in the login table
 * removed `memo` and `error message` columns from login db/savefile
 * moved `loginlog` table to the logs database
 * added sql files upgrade_svn12975.sql and upgrade_svn12975_log.sql
 * due to changes to the login table layout, I added an !optional! sql file (upgrade_svn12975_view.sql) that will provide a certain degree of backwards compatibility with existing software; read the instructions inside carefully!
 * moved third-party includes/libs to a separate directory
 * updated project files / makefiles

Changed the way GM levels are handled
 * removed conf/gm_account.txt
 * added the gm level column to the txt savefile (after 'email' column)
 * gm level information is now transferred along with account data
 
For open problems see bugreport:1889.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13000 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-26 20:45:57 +00:00
FlavioJS
c9a3dc80bf * Added experimental code to set the socket limit at runtime.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12803 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-06-09 23:44:52 +00:00
FlavioJS
37dacf1b52 * Updating configure script:
- fixed memory manager using the argument of the last enable/disable option (any option)
- other minor changes

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12729 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-05-26 17:42:21 +00:00
FlavioJS
28b95f451b * Changes to the configure script:
- added options --with-MYSQL_CFLAGS and --with-MYSQL_LIBS to allow manual setting of those variables

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12586 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-14 03:45:05 +00:00
FlavioJS
01b66de67e * Changes to the configure script:
- clarified how --with-zlib is used
- added --enable-packetver to set the PACKETVER define (used often enough to get it's own option, but unnecessary since it can be set with CFLAGS)
- added -g compiler option to --enable-debug

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12578 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-13 17:46:24 +00:00
FlavioJS
bd11cdda7a * Changed the configure script:
- refined the mysql test (wasn't detecting 64 libraries compiled without -m64)
- added a test for clock_gettime in -lrt (required for Debian)

(run ./configure to update the Makefiles)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11985 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-27 12:08:07 +00:00
FlavioJS
f218726d7d * Changes to the configure script.
- fixed the 'pointers can be stored in ints' test not working
- fixed the linker trying to build 64 bit executables with 32 bit code on x86_64 (missing -m32 flag in LDFLAGS)
- made MYSQL_CFLAGS be built from the --include option to be more portable
- made --with-mysql check if the optional argument is an executable file
- make --with-pcre check if the optional argument is a directory
- other minor changes


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11952 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-19 17:17:29 +00:00
FlavioJS
7e9f1e929c * Nullpo's disabled on release builds.
* Added timestamps to the log of memory leaks.
* Moved definition of __func__ to cbasetypes.h.
* Configure script updated:
- added option to select the memory manager
- added option to enable MAPREGSQL
- added option to enable DEBUG
* common's Makefile deleting svnversion.h on 'clean' target.

(run ./configure again to update your Makefile)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11760 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-19 03:05:16 +00:00
FlavioJS
a7c2a09d23 * Updated configure script:
- small correction to the help text of --with-mysql and --with-pcre
  - added the -Wno-switch compiler option to suppress the "enumeration value '%s' not handled in switch" warnings

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11695 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-08 09:26:46 +00:00
FlavioJS
a8d7143d0e * Loot code using charid's instead of id's in pick priority.
* configure script using svn:eol-style LF and require mysql/pcre when --with-mysql/pcre is used.

Added a forgotten file from r11311. (script_commands.txt)
Note: charid's are globally unique, id's are equal for characters in the same account.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11312 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-09-27 15:24:06 +00:00
FlavioJS
c82d9b8aba * Added flag svn:executable to the configure script.
* Added code for MySQL versions (below 5.0) that don't have MYSQL_DATA_TRUNCATED.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11281 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-09-23 19:55:37 +00:00
FlavioJS
cd8f2ef514 * itemdb.c/h using a static array of 32k struct item_data* entries (faster itemdb loockup and a first step to remove map_session_data->inventory_data).
* Fixed a typo in the configure script that replaced CFLAGS with CPPFLAGS when -Wno-pointer-sign is supported by the compiler. [FlavioJS]

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11259 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-09-21 16:42:42 +00:00
FlavioJS
2365e833a4 * Makefile deleting .svn in save folder.
* Limited the number of packets parsed per cycle to 3. (packet spammers create less lag)
* Fixed sql login throwing an out-of-place debug message and escaping too much of the name string when creating a new login with _M/F.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11253 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-09-21 05:22:13 +00:00
FlavioJS
d2f97b7151 * Configure script detects 64bit distributions of MySQL.
* Generated the configure script with cygwin's autoconf.

You can re-generate the configure script by executing autoconf.
To compile everything just execute these two commands:
./configure
make

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11252 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-09-21 04:08:32 +00:00
FlavioJS
65642f6f1c * Merged the tmpsql branch:
- Abstraction for the sql code (sql.c/h).
- New configure script and makefiles.
- Restored txt zeny logging code. (r10814)
- Rewrote mapserver's sql code - itemdb, mobdb, mapreg, logs. (r10814)
- Fixed a precedence issue (&& and ) in char_sql/char.c. (r10833)
- Improved db reading code a bit for consistency. (r11077)
- Added separate atcommand for mail deletion. (r11077)
- Corrected a few messages that said "new" instead of "unread". (r11077)
- Broadcast (*) messages now use "*" as the target's name (not ""). (r11077)
- Moved StringBuf code from utils.c/h to strlib.c/h. (r11084 r11117)
- Some misc login server cleanups (reformatting etc). (r11136)
- Corrected/modified some header entries. (r11141 r11147 11148)
- Adjusted VS project files. (r11147)
- Adjusted the way the sql charserver does item saving. (r11192)
- Corrected usage of reserved keyword 'friend' in mmo.h. (r11192)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11245 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-09-20 11:09:36 +00:00
ultramage
bc0b03adc2 eol-style for the startup scripts and batch files
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11104 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-09-01 09:40:12 +00:00
Valaris
2178a86317 AS OF SVN REV. 5901, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.  EVERYTHING ELSE
GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5094 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-01-29 16:10:48 +00:00