76 Commits

Author SHA1 Message Date
RoboSchmied
3c1187e150
Fix typos in BUILD messages (#8199) 2024-04-02 11:32:57 +02:00
Vincent Stumpf
711705df10
Upgrade to C++17 (#7811)
* Upgrade to C++17
2023-06-16 20:07:23 -07:00
Vincent Stumpf
a35063dfd6
Upgrade to c++14 (#7593) 2023-02-13 10:58:31 -08:00
Vincent Stumpf
0ac52d0bb4
Initial support for web service for newer clients (#5731)
Co-authored-by: Jittapan Pluemsumran <secret@rathena.org>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
2022-08-16 15:10:18 +02:00
Lemongrass3110
80b133c08f Fixed a typo in configure
Thanks to @Pokye
2022-03-31 02:10:49 +02:00
Jittapan Pluemsumran
d1b7061f5a
YAML loading optimization (#5997)
* Use rapidyaml library to parse YAML databases instead of yaml-cpp.
* Drastically reduces the parse time for yaml databases.
* Removes yaml-cpp content from main servers, except for tool emitter.
Co-authored-by: Vincent Stumpf <vincents.995@gmail.com>
Co-authored-by: Atemo <capucrath@gmail.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
2022-03-30 16:38:52 -04:00
Lemongrass3110
534c5b2edd
Add more Github Actions (#6530)
Renames "build_servers.yml" to "build_servers_gcc.yml"
Removed Pre-Renewal and Renewal from GCC compilation
Added an action for Pre-Renewal and Renewal
Added an action for VIP
Added an action for different packet versions
Added MSVS build
Changed some make server to make all
Added master building
Disabled LTO by default
Added some missing override declarations
Added Clang building
Disabled Clang 12 and 13 for the time being

Thanks to @aleos89 and @Akkarinage for their help and input.
2022-01-19 00:08:28 +01:00
Aleos
c5a5c54518
Converted remaining C comments (#3927)
* Converted remaining documentation that references .c or .h files.
2019-02-09 15:08:45 -05:00
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
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