Age | Commit message (Collapse) | Author | Files | Lines |
|
- Plugins that want to make use of the HPMHooking must now include
"plugins/HPMHooking.h".
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Follow-up to 300668d, thanks to AnnieRuru
Signed-off-by: Haru <haru@dotalux.com>
|
|
|
|
Improved compatibility, portability and standards conformance.
- Since it is not possible to portably and reliably re-use the core's
symbols in plugins, symbols are no longer exported unless explicitly
required, in the UNIX builds. This mimics the Windows behavior and
adds HPM compatibility to OSes such as FreeBSD. Credits to Andrei Karas
for making this possible.
- For convenience, it is no longer necessary to call GET_SYMBOL, since
the plugin will automatically import all the available symbols when
it's loaded, depending on the included headers.
- Plugins are now supposed to include the "common/hercules.h" header
before including anything else. Incluing common/HPMi.h,
common/cbasetypes.h or conf/core.h is no longer necessary, as those
are guaranteed to be automatically included by hercules.h.
- HPM API version bumped to 1.1.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Include directives are now directory-independent.
- This will allow building plugins from other directories in future.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Language extensions, such as _GNU_SOURCE are now enabled through
CPPFLAGS by the configure script, rather than within the source code.
- Moved some configure-time CFLAGS to CPPFLAGS, where appropriate.
- Fixes bugreport:8211, thanks to Neoth
http://hercules.ws/board/tracker/issue-8211-compiling-warning-in-linux
Signed-off-by: Haru <haru@dotalux.com>
|
|
- More informative messages are displayed during startup, to make it
easier to identify what system and environment Hercules is running.
- Git/SVN revision detection is improved, separating the source version
(cached at compile time) from the runtime version, in case the user
updated their working copy without recompiling the server. Git
version detection is also more reliable, in case a non-default branch
is used.
- The get_revision script command has been removed (as it was useless
to begin with, after the switch to git). An alternative will be
provided later, for feature-probing purposes.
- The patch was tested under Linux (Gentoo / gcc 4.7 on i686 and x86_64,
Debian 6 / gcc 4.4 on i686, Raspbian / gcc 4.6 on armv6l, CentOS 5 /
gcc 4.1 on i686, CentOS 6 / gcc 4.4 on x86_64, Linux Mint 15 / gcc 4.7
on x86_64, OS X Mountain Lion / clang 5.0 and gcc 4.8 on x86_64,
Cygwin-NT-5.1/gcc 4.8 on i686, FreeBSD 8 / gcc 4.2 on i386, FreeBSD 9
/ gcc 4.2 on amd64, FreeBSD 10 / clang 3.3 on amd64, NetBSD 5 / gcc
4.1 on i386, NetBSD 6 / gcc 4.5 on amd64, OpenBSD 5 / gcc 4.2 on
amd64, Solaris 11 / gcc 4.5 on i86pc, Windows 7 / Visual Studio 2012
on x86, Windows 8 / Visual Studio 2010 on WOW64, Windows 8.1 / Visual
Studio 2013 on WOW64.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Warnings detected thanks to Xcode's compiler settings (more strict by
default) and clang, warnings mostly but not only related to data sizes
on 64 bit systems, that were silenced until now by very lax compiler
settings.
- This also decreases by a great deal the amount of warnings produced by
MSVC in x64 mode (for the adventurous ones who tried that)
- Also fixed (or silenced in case of false positives) the potential
issues pointed out by the (awesome) clang static analyzer.
- Patch co-produced with Ind, I'm merging and committing in his place!
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Various Makefile optimizations
Signed-off-by: Haru <haru@dotalux.com>
|
|
- By invoking 'make buildclean', you can clean up all the build
intermediate (object) files, without deleting any of the built
executables and plugins.
- To delete everything, use 'make clean', as you've always done.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- If a Makefile.in is changed, ./config.status (or ./configure in case
it's not available) will be automatically run to update the Makefiles.
- Special thanks to Yommy for the idea.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Follow-up to / discovered in babdf60
Signed-off-by: Haru <haru@dotalux.com>
|
|
This should resolve #138 (please reopen or comment on it if it's not the
case). Special thanks to Takkun for helping to reproduce the issue.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- This allows the user to override the compiler at each make invocation
(i.e. to run scripts to generate .clang_complete for
https://github.com/Rip-Rip/clang_complete )
- Updated .gitignore with a few platform-dependent entries
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Fixed some variable names incorrectly entered as literals in target
names
- This fixes a build failure when trying to build any specific
sub-project directly from src/*/
- Removed an old svn-related command from the 'import' recipe
- This fixes the build failures when trying to run 'make tools' right
after 'make clean'
- Removed duplicate entries in the 'clean' recipe for map and login
servers
Signed-off-by: Haru <haru@dotalux.com>
|
|
http://hercules.ws/board/topic/549-introducing-hercules-plugin-manager/
Signed-off-by: shennetsind <ind@henn.et>
|
|
It's back. It's efficient. It's awesome.
http://hercules.ws/board/topic/272-re-introducing-console-input/
Signed-off-by: shennetsind <ind@henn.et>
|
|
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16898 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
Bug in Detail:
- Misplaced LDFLAGS uage in some Makefile templates (by passing them to the compiler not to the linker.)
- Wrong usage of volatile (a functions return value couldnt be declared to return volatile :D )
- Unsupported Inline ASM using lock xchg operation on llvm-gcc .. (apple loves this ..)
Fixed by:
- Removed unnecessary LDFLAGS
- Removed unnecessary volatile declarator
- Replaced InterlockedExchange and InterlockedExchange64 with gcc intrinsics.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16270 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
- merged (bs-coreoptimize->trunk) generic athena style configuration parser (raconf)
- merged (bs-coreoptimize->trunk) threadsafe memory pool (mempool) [i need it for the new 'socket' system]
- set svn:eol-style property on newer files were it was missing
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16263 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
added type 'sysint' to cbasetypes, which's the width of the platform the release gets compiled for.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16256 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16221 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
- Removed @ Autoconf/make and CMake, VC Projects will be cleaned in a additional commit.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16203 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16198 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
- Fixed mapcache compilation issues in Linux.
- Added some missing `svn:ignore` properties.
- Moved `BLOCK_SIZE` definition from header to source file.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15586 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15572 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
actual working copy revision (before it required a 'make clean' to drop the cache in unix)
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15356 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15063 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
configure script.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14870 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
result by setting CFLAGS.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13022 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
directly to all sub make files
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12230 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
* Made common/Makefile get the svn version from the src directory, not src/common.
* Added a warning message to the install and uninstall targets.
* Renamed all obj directories to obj_all, obj_txt or obj_sql in the makefiles (if an obj/ directory exists, BSD make enters it before reading the makefile)
(run ./configure to update your makefiles, and don't forget to do 'make clean' before updating)
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11844 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
- 3 sections: variables, public targets, private/support targets
- object files always in a *_OBJ variable
- header files always in a *_H variable
- object files always generated to an obj* subfolder
- all Makefiles can be executed individually, calling other makefiles if necessary
- generic object targets when possible
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11812 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
* 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11760 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
- 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11245 54d463be-8e91-2dee-dedb-b68131a5f0ec
|