summaryrefslogtreecommitdiff
path: root/configure.in
AgeCommit message (Collapse)AuthorFilesLines
2015-08-27Added an availability check for the -rdynamic linker optionHaru1-2/+27
- Fixes an issue preventing to compile on non-ELF systems (i.e. OS X) using recent gcc versions (such as 5.2) that are unable to filter out this option where it's not needed. - Thanks to Smokexyz for reporting the issue. Signed-off-by: Haru <haru@dotalux.com>
2015-08-15HPM compatibility improvementsHaru1-1/+1
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>
2015-08-15Improved plugin compile flag detection by the configuration scriptHaru1-59/+4
- This fixes plugin compilation on FreeBSD and Debian failing due to a missing -fPIC, in combination with some upcoming changes. Signed-off-by: Haru <haru@dotalux.com>
2015-08-15Disable LTO by default. Because look like support for it broken in gcc 4.9 ↵Andrei Karas1-2/+2
and higher. For enable LTO need run: ./configure --enable-lto
2015-08-13Added check for execinfo.h/backtrace() to the configure scriptHaru1-0/+15
- This fixes compilation on systems such as FreeBSD, where -lexecinfo is necessary, or Cygwin, where execinfo.h is not available. Signed-off-by: Haru <haru@dotalux.com>
2015-05-30Dump stack in nullpo*/Assert* function.Andrei Karas1-0/+1
Also enable in configure linker flag -rdynamic.
2015-05-03Add sanity into LDFLAGS also.Andrei Karas1-1/+5
Fix small typo.
2015-05-03Split -fsanitize checks into multiple stepsHaru1-37/+53
This will allow fine-grained detection of the sanitizer options supported by the current compiler. Signed-off-by: Haru <haru@dotalux.com>
2015-05-01Add extended sanitify flags.Andrei Karas1-6/+19
Configure option: --enable-sanitize=full
2015-01-12Enable warning format-security.Andrei Karas1-2/+2
It was blocked in configure.
2015-01-12Remove from configure warning block maybe-uninitialized.Andrei Karas1-1/+0
This flag hide some usefull warnings.
2014-10-24Added support for other libmysqlclient variantsHaru1-3/+3
- This allows Hercules to correctly detect MariaDB and other drop-in replacements in distributions that rename their libmysqlclient (i.e. Debian / Ubuntu renaming it to libmariadbclient). - Closes issue #368 - Due to a bug in Ubuntu 14.04 LTS (incorrect output by the mariadb-provided version of `mysql_config --libs` and missing dependencies of libmariadbclient-dev), users of said distribution will have to manually specify ./configure LIBS="-lssl -lcrypto" as well as manually install the libssl-dev package, if they wish to use libmariadbclient-dev, as it will be unable to link otherwise (note: this issue isn't Hercules-specific) - Special thanks to Andrei Karas Signed-off-by: Haru <haru@dotalux.com>
2014-10-24Fixed an issue with $LIBS in the configure scriptHaru1-46/+46
- It is now possible to pass custom LIBS values to ./configure by specifying them on the command line Signed-off-by: Haru <haru@dotalux.com>
2014-10-23In configure add option --enable-staticAndrei Karas1-0/+92
This option enable static build for server binaries and map cache. For plugins this option enable static linking with gcc.
2014-09-08In configure add option --enable-sanitizeAndrei Karas1-0/+56
This option add run time checks for buffer overflows and some other memory related things. Not recommended for production.
2014-08-07Corrected several format-string errors through the codeHaru1-0/+2
- Functions that expect a printf-style format string are now marked as such, so that gcc/clang will emit a warning warn you if you mismatch format string and arguments. Signed-off-by: Haru <haru@dotalux.com>
2014-05-25Improved CFLAGS/CPPFLAGS handlingHaru1-31/+35
- 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>
2014-03-07Updated configure script to support non-x86 platformsHaru1-0/+21
Signed-off-by: Haru <haru@dotalux.com>
2014-01-21Fixed --disable-packetver-re / --enable-packetver-re in ./configureHaru1-5/+5
- Follow-up to c50e094dff1898badd4136d9cdeb7318c803cb61 Signed-off-by: Haru <haru@dotalux.com>
2013-12-17Fixed some additional linux warningsHaru1-190/+125
- Fixed some warnings we had missed. - Improved -W cflag detection routines. - Only use -Wshadow if it's actually useful. Signed-off-by: Haru <haru@dotalux.com>
2013-12-17Increased warnings level in the unix build scriptsHaru1-9/+153
- They are now on par with the Xcode project (and similar to the MSVC ones) - this will make it easier to notice issues before committing in future. - If this causes, on your system, warnings that we didn't detect, please let us know! Signed-off-by: Haru <haru@dotalux.com>
2013-12-17Changed plugin extension from .so to .dylib on OS XHaru1-0/+3
- No functional changes. That's just the correct OS X file extension for dynamic libs. Signed-off-by: Haru <haru@dotalux.com>
2013-11-03Added some packetver-related flags to the UNIX build scriptHaru1-2/+94
- The --disable-packetver-re (or --enable-packetver-re=no) flag prevents the definition of PACKETVER_RE (without editing mmo.h) - The --with-key1=, --with-key2=, --with-key3= flags override the encryption key defined by the current packetver. All three flags are required if at least one is used, or they'll be ignored. - These options are mostly useful for buildbots, developers who often use git bisect, or users who want to minimize their diffs and still want to override those settings. - (unrelated minor tweak) Silenced an unnecessarily verbose STDERR message caused by the $CC shipped with clang-5 during the MinGW check.
2013-10-26Changed 'tick' variables to 64 bitHaru1-2/+6
- This fixes an issue with timers that stop working after about 24-49 days when the tick overflows (note that this may happen much earlier than that, and at hard to predict times, on some systems) - Updated the RDTSC help message in the configure script to also warn users about issues with SpeedStep enabled systems. - On Windows, tick() still has a resolution of 10~15ms (or even as low as 100ms on some systems). A TODO comment (thanks, Ai4rei) was added for a follow-up patch, as I want this one to be as small as possible) - Note: on Windows versions earlier than 6.x (Vista, Server 2008), the tick overflow issue is NOT fixed, since they don't support the function used to retrieve a 64 bit tick. This isn't a big issue, since those platforms are already - or going soon to be - out of their extended support period, and it's already advisable to upgrade, for other reasons. If you're the unfortunate user of such a system, it is recommended that you reboot your machine at least once every 49 days for Hercules to work reliably. - Note: To clear some doubts, since I've already been asked, this has absolutely NOTHING to do with 32/64 bit CPUs or OSes. It's all about a variable's size, not the size of registers of your CPU, and your 32bit CPU will be able to handle this just fine. Signed-off-by: Haru <haru@dotalux.com>
2013-10-09Added HPMHookGen tool, to re-generate hooks include filesHaru1-0/+8
- Slightly reformatted the include files (as produced by the new tool) - You normally won't need to use the generation tool, but in case you do, the software requirements are: * A Unix-compatible system (cygwin may work, or may not), capable to use the Hercules configure/make build system * perl (the perl executable must be in your $PATH) * doxygen (the command-line doxygen executable must be in your $PATH) - The generation tool was developed in collaboration with Ind (originally in php, the file here included is a tweaked version ported to perl) Signed-off-by: Haru <haru@dotalux.com>
2013-10-07Ensured explicit check for undefined references on shared objectsHaru1-40/+81
- On certain platforms, shared objects will be built without linker errors even if they have undefined references (but they'll fail to load if those references can't be found at runtime). - This resolves issues with plugins that on linux seem to compile, but won't load (or will lead completely unpredictable results) because they use symbols that may not exist. Special thanks to oss10110 for bringing it up. Signed-off-by: Haru <haru@dotalux.com>
2013-08-08Enabled Pre-Renewal builds in the CI buildbotHaru1-0/+34
Both Renewal and Pre-Renewal branches will now be built and tested. Signed-off-by: Haru <haru@dotalux.com>
2013-07-14Updated package name to Hercules in the autoconf scriptHaru1-24/+24
- Replaced old SVN version string with a git-compatible one - Fixed configure.in warnings on autoconf 2.68 or newer (wrapped code snippets in AC_LANG_SOURCE calls, as recommended by autoconf) - Re-generated configure script with autoconf 2.69 Signed-off-by: Haru <haru@dotalux.com>
2013-07-03Fixed configure.in inconsistency with its output (configure)shennetsind1-0/+1
Issue located and fixed by Haruna. Thank you! Signed-off-by: shennetsind <ind@henn.et>
2013-05-02Introducing Hercules Plugin Manangershennetsind1-1/+105
http://hercules.ws/board/topic/549-introducing-hercules-plugin-manager/ Signed-off-by: shennetsind <ind@henn.et>
2013-01-21Reverting SVN r17061shennetsind1-16/+15
Making --enable-debug useful once again. in r17061 lighta made --enable-debug enforce -wconversion, -Wno-switch, and other options (instead of making them optional) and by doing that lighta cluttered --enable-debug output making it incredibly hard to find important errors Signed-off-by: shennetsind <ind@henn.et>
2012-12-29-Update configure template to autoconf 2.68glighta1-15/+16
-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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17061 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-06-12added new networking subsystem (early stage - files are not compiled yet ↵blacksirius1-0/+28
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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16271 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-06-03thread api: added support for platforms without TLS (Thread Local Storage) ↵blacksirius1-0/+24
support (usually older OSX llvm versions ..) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16226 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-06-03feature merge bs-coreoptimize->trunk: Atomic Operations, Threading, Spinlock ↵blacksirius1-0/+40
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
2012-06-01removed the old obsolete Plugin system (commit 1/2)blacksirius1-51/+1
- 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
2012-06-01Issue 5887: changed description of --disable-64bit switch.blacksirius1-1/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16200 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-06-01feature merge bs-coreoptimize->trunk: Build Output Cleanup, Makefile Common ↵blacksirius1-0/+1
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
2012-06-01feature merge bs-coreoptimize->trunk: Enable 64Bit build by default on ↵blacksirius1-4/+3
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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16197 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-06-01feature merge bs-coreoptimize->trunk: LTO supportblacksirius1-0/+57
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16196 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-02-15Fixed libconfig compiling issues in CentOS 5 (follow-up to r15572) (pid:78747).gepard19841-4/+5
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15584 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-02-13Fixed libconfig compiling issues in OS X (pid:78414).gepard19841-0/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15573 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-02-13 - Added `libconfig` (configuration file library: ↵gepard19841-1/+5
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
2012-01-20Merged TXT removal branch back to trunk.gepard19841-55/+33
* TXT save engine is removed and no longer supported. * See also tid:53926, tid:57717. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15503 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-01-19 * Added `--enable-buildbot` to configure.in (follow-up to r15128).gepard19841-1/+32
* 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15499 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-12-11* Merged changes up to eAthena 15032.eathenabot1-36/+0
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15065 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-08-16* Added -fno-strict-aliasing detection to configure.in (-fstrict-aliasing is ↵ai4rei1-0/+16
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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14935 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-06-27* Added common/random and 3rdparty/mt19937ar to project files, makefiles and ↵flaviojs1-0/+1
configure script. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14870 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-04-05* Moved detection of monotonic clock support to the configure script, which ↵ai4rei1-2/+40
also checks, whether or not it actually works (bugreport:1003, related r11912 and r11983). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14767 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-03-20* Updates the to configure script.ai4rei1-2/+19
- 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14749 54d463be-8e91-2dee-dedb-b68131a5f0ec