summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Longbons <b.r.longbons@gmail.com>2013-08-22 15:06:06 -0700
committerBen Longbons <b.r.longbons@gmail.com>2013-08-22 15:17:10 -0700
commitaf84f7a0672dc9ff2d0a9e250b9e1adb9c5de4dc (patch)
treec5315d449e0a78ee5fc6922b83c87ecb5cd77c0f
parentd8fd4be8d734203197e888ada6e14128fc5d53da (diff)
downloadtmwa-af84f7a0672dc9ff2d0a9e250b9e1adb9c5de4dc.tar.gz
tmwa-af84f7a0672dc9ff2d0a9e250b9e1adb9c5de4dc.tar.bz2
tmwa-af84f7a0672dc9ff2d0a9e250b9e1adb9c5de4dc.tar.xz
tmwa-af84f7a0672dc9ff2d0a9e250b9e1adb9c5de4dc.zip
Move contents of make.defs where they belong
-rw-r--r--.travis.yml2
-rw-r--r--Makefile.in23
-rwxr-xr-xconfigure31
-rw-r--r--make.defs20
4 files changed, 53 insertions, 23 deletions
diff --git a/.travis.yml b/.travis.yml
index 70e3988..c176843 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -38,7 +38,7 @@ install:
## Main test script
script:
- - ./configure CXX=${REAL_CXX}\ -fabi-version=6 CPPFLAGS=-DQUIET
+ - ./configure --dev CXX=${REAL_CXX} CPPFLAGS=-DQUIET
- make -k -j2
## Do something after the main test script
diff --git a/Makefile.in b/Makefile.in
index d216b50..4b32d71 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -10,7 +10,28 @@ SHELL=/bin/bash
BUILD_DIR = obj
default: login-server char-server map-server ladmin eathena-monitor
.DELETE_ON_ERROR:
-include make.defs
+
+# this used to be in make.defs
+CXXFLAGS += ${WARNINGS}
+ifeq (${ENABLE_WARNINGS},yes)
+WARNINGS = -include src/warnings.hpp
+endif
+
+# gdb bug 15801
+ifeq (${ENABLE_ABI6},yes)
+CXX += -fabi-version=6
+endif
+ifeq (${ENABLE_CYGWIN_HACKS},yes)
+override CXX += -std=gnu++0x
+else
+override CXX += -std=c++0x
+endif
+# for linking
+override CC = ${CXX}
+
+override CXXFLAGS += -fstack-protector -fno-strict-aliasing
+override CXXFLAGS += -fvisibility=hidden
+# end what used to be in make.defs
.PHONY: all clean common most
# With no prerequisites, no target should ever be implicitly deleted.
diff --git a/configure b/configure
index d27130a..b32c8f2 100755
--- a/configure
+++ b/configure
@@ -36,9 +36,11 @@ from attoconf.lib.yacc import Bison
from attoconf.lib.install import Install
from attoconf.lib.config_hash import ConfigHash
from attoconf.lib.make import Make
-from attoconf.types import enum
+from attoconf.types import enum, filepath
+yesno = enum('yes', 'no')
+
@add_slots
class Configuration(Cxx, Flex, Bison, Install, ConfigHash, Make):
def general(self):
@@ -46,6 +48,8 @@ class Configuration(Cxx, Flex, Bison, Install, ConfigHash, Make):
home = os.path.expanduser('~')
self.add_alias('--user', ['--prefix=%s' % home],
help='alias for --prefix=$HOME', hidden=False)
+ self.add_alias('--dev', ['--user', '--enable-warnings', '--enable-abi6'],
+ help=None, hidden=False)
def features(self):
super(Configuration, self).features()
@@ -55,6 +59,31 @@ class Configuration(Cxx, Flex, Bison, Install, ConfigHash, Make):
type=enum('none', 'numbered', 'existing', 'simple'), check=lambda build, CONTROL: None,
help='Back up existing files during \'make install\'', hidden=True,
help_var='CONTROL')
+ self.add_bool_feature('warnings', init='no',
+ check=lambda build, ENABLE_WARNINGS: None,
+ help='Enable warnings (for development)')
+ self.add_bool_feature('abi6', init='no',
+ check=lambda build, ENABLE_ABI6: None,
+ help='Force a nonbuggy gcc ABI (for development)')
+ self.add_bool_feature('cygwin-hacks', init='no',
+ check=lambda build, ENABLE_CYGWIN_HACKS: None,
+ help='Work around bugs in certain cygwin versions')
+
+ def vars(self):
+ super(Configuration, self).vars()
+ self.add_option('GTEST_DIR', init='/usr/src/gtest',
+ # http://code.google.com/p/googletest/wiki/FAQ#Why_is_it_not_recommended_to_install_a_pre-compiled_copy_of_Goog
+ type=filepath, check=lambda build, GTEST_DIR: None,
+ help='Location of Google Test sources, must contain src/gtest-all.cc (linking to a precompiled library is NOT supported)', hidden=False)
+
+ def add_bool_feature(self, arg, hidden=False, **kwargs):
+ positive = '--enable-' + arg
+ negative = '--disable-' + arg
+ self.add_option(positive, type=yesno, hidden=hidden, **kwargs)
+ # TODO: instead reveal one of the aliases and hide the main
+ # this requires messing with help slightly
+ self.add_alias(positive, [positive + '=yes'], help=None, hidden=True)
+ self.add_alias(negative, [positive + '=no'], help=None, hidden=True)
def main():
diff --git a/make.defs b/make.defs
deleted file mode 100644
index 22579f1..0000000
--- a/make.defs
+++ /dev/null
@@ -1,20 +0,0 @@
-# vim: filetype=make
-#
-# This file is deprecated. Everything here should be moved to 'configure'.
-CXXFLAGS += ${WARNINGS}
-WARNINGS = -include src/warnings.hpp
-
-# Location of gtest source tree. It must contain the file src/gtest-all.cc
-# Note: linking against a precompiled library is NOT supported;
-# it may have used different CXXFLAGS. See
-# http://code.google.com/p/googletest/wiki/FAQ#Why_is_it_not_recommended_to_install_a_pre-compiled_copy_of_Goog
-GTEST_DIR = /usr/src/gtest
-
-# gdb bug 15801
-CXX += -fabi-version=6
-override CXX += -std=c++0x
-# for linking
-override CC = ${CXX}
-
-override CXXFLAGS += -fstack-protector -fno-strict-aliasing
-override CXXFLAGS += -fvisibility=hidden