61 Commits

Author SHA1 Message Date
Lemongrass3110
8ae788b643
Allow increasing connection limit on linux (#3799)
With this you can now support more connections on linux, even if your system header is still set to a smaller value.

Make sure to increase the limit of open file handles with ulimit or other resource related settings.
You can change the compile time value of supported connections with ./configure --with-maxconn=value

Windows default is still 4096.
2019-01-09 23:15:33 +01:00
Lemongrass3110
eb2e40c370
Added epoll support on linux (#3798)
Added epoll event dispatching support on linux systems.
You can enable it by adding the configure option --enable-epoll

Credits to Hercules.
2018-12-26 23:58:04 +01:00
Lemongrass3110
801d3ed942
Moved common, config and mapcache to C++ (#3200)
Dropped BETA_THREAD_TEST and everything around it
Dropped mt19937
Replaced msinttypes with cinttypes
Removed IRC link and updated README name
2018-06-14 21:51:58 +02:00
lighta
673315994b Temporary adjustment for strict aliasing (#2582)
* Fixes #2572.
* Added a custom rule to avoid optimization causing monsters to not attack. (From tests this appears to be npc.cpp on Centos 7 and mob.cpp on Windows vc141)
* Added -fno-strict-alising to CMake when building with GCC. (Clang and VS have it by default)
* Fixed cmake output path.
Thanks to @lighta!
2017-11-06 16:59:59 -05:00
lighta
feb1ab9d95 Add check in configure to ensure c++ compiler 2017-10-26 09:00:02 -04:00
Jittapan Pluemsumran
cc1d26fe74 Inter server C++ conversion (#2322)
* Renamed inter.c to inter.cpp and refactored it

* Converted inter_server.conf to inter_server.yml

* Updated the makefiles

* Refactored inter-server storage handling logic

* Fixed a bug with wrong maximum being displayed
When you took out an item of the storage it would always display the maximum amount of the normal storage.

* Fixed a bug with storages that are over maximum

Thanks to @Akkarinage, @Lemongrass3110 and @Jeybla
2017-08-14 01:27:58 +02:00
Jittapan Pluemsumran
4a2574c599 Migrate core source files to C++. Add yaml-cpp project as dependency (#2207)
By updating to this commit, Linux users have to regenerate Makefiles by re-running the configure script.

* Added yaml-cpp project as a 3rdparty library
* Migrated source files core to C++
* Updated configure scripts
* Make Linux installations compile *.cpp files
* Made server components' main source file C++
* Also made headers CPP-aware.

* Added basic C wrapper for yaml-cpp library
* YAML-node path is delimited by periods.
* Basic integer types and string are supported.
* Strings returned from this wrapper have to be freed with malloc.h::aFree
* Arrays (sequence) is supported with iterator wrapper.
* Remember to free every wrapper you create!

* Add yaml-cpp as dependency of common project
* Made the repo not ignore *.yml files

Thanks to @aleos89 and @Lemongrass3110.
2017-06-25 23:33:24 +07:00
Jittapan Pluemsumran
bd33f01e53
Resolved compiler warning when compiling rAthena with clang++ 2017-06-21 22:26:49 +07:00
Jittapan Pluemsumran
7749c18a06
Prepared the project for mixing C++ code in 2017-05-03 22:32:46 +07:00
Lemongrass3110
3108bb1265 Added a configure option for vip features
Added the new option to the CI matrix
2016-10-19 23:15:13 +02:00
aleos89
5759f5fb93 Fixed #193 by reverting some changes from a075324. 2015-01-08 14:21:12 -05:00
lighta
a0753244f7 Few typo
Fix few typo and change défault optimisation lvl for O3 for gcc.
2014-12-19 23:55:14 -05:00
lighta
8066bdef46 Data alignement
Align account_id and char_id to uint32 as this is the value they can be
in DB.
Remove src/test folder, unused
Remove useless #include to speedup compilation.
2014-12-19 21:31:04 -05:00
lighta
629af3be48 Fix GCC 4.9 plugin needed to handle lto object 2014-12-19 16:22:58 -05:00
lighta
7bedf4353b Add gdb check for configure suggestion on bugreport:4645.
Add the missing update in infinite_warp.txt
2014-09-07 09:01:19 -04:00
Lighta
55134d1ae1 Fix ARM compilation.
-Upd configure (merge with Hercule configure.in)
-upd nullpo.c and atomic.h to allow arm compilation, testedon Epiphany parallela.
2014-06-22 17:06:02 -04:00
lighta
ef4fd59996 Update configure.in
Add some requested option :
 --enable-prere, --with-outputchar --with-outputlogin --with-outputmap
This allow to try in prere/re mode and to chose binary name for output
file easily.
2013-08-28 07:17:40 -04:00
lighta
f2e1bd04b9 -Some scripts support
--Upd map Makefile.in to auto add header file in folder
--Upd configure to fix some debuging issue on some OS (-g flag issue)
--Upd athena-start, add --enlog option to create a log file with a tee. (all the normal console could now be logged into that file) thx to Beanux
nb : this logging option doesn't actually support file oversize
2013-08-17 09:49:28 -04:00
glighta
50ded53db6 -Upd configure.in / configure
--add --enable-warn=extra to show -Wconversion issues
--move -Wno-switch from prod only to all case 
-Update packet_db thx (TTest)
--fix index typo for itemlistwindowselected(all),cashshopbuy(2010-11-24 => v26-30, 2012-04-10 => v30-34) bugreport:7723
-Add utils::date2version (lookup a version with a date for later usage)
-Fix missing revert part in mmo_send_char bugreport:7734
-Merge little herc change:
--fix possible mapcrash in SCB_MATK with SC_RECOGNIZEDSPELL and change status->matk_min calculation order to speed up thing
--add OFFICIAL_WALKPATH exception for BL_NPC

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17367 54d463be-8e91-2dee-dedb-b68131a5f0ec
2013-06-15 15:53:15 +00:00
euphyy
3a234d787a * Implemented Mora Enchants.
* Updated Episode 14.1 item database entries.
* Removed party size check for Malangdo Culverts, as there is none on official servers.
* Added THA map_msg translation - thanks, boneskung, for translating!
* Updated IDN map_msg translation. (credits: Cydh)
* Code by Lighta:
-- Updated configure, add enable-warn [yes/no] and remove wno-parentheses, wno-unused from default compilation
-- Cleanup small warnings
* Crash fix for bugreport:7688 (code by Akinari).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17342 54d463be-8e91-2dee-dedb-b68131a5f0ec
2013-06-03 02:07:41 +00:00
glighta
709e4dd394 -Implement suggestion from tid:79293
--Upd Makefiles and configure
--Upd shell scripts and remove old unmaintenained one. 
-Upd tools/config.pl, add FreeBSD install package support


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17181 54d463be-8e91-2dee-dedb-b68131a5f0ec
2013-03-08 03:38:39 +00:00
glighta
a157945356 -Update configure.in and configure
--Add pcre version on output.
--Add tmp bugfix for bugreport:6671, (look like a GNU vs BSD issue)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17159 54d463be-8e91-2dee-dedb-b68131a5f0ec
2013-02-24 21:19:28 +00:00
glighta
dbaa8149c4 -Update configure template to autoconf 2.68
-Upd configure to disable warning only when enable-debug option ain't selected. (thus if you wanna see more warnings compile with enable-debug)
-Add -Wconversion in configure.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17061 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-12-29 06:44:29 +00:00
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
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
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