From af84f7a0672dc9ff2d0a9e250b9e1adb9c5de4dc Mon Sep 17 00:00:00 2001 From: Ben Longbons Date: Thu, 22 Aug 2013 15:06:06 -0700 Subject: Move contents of make.defs where they belong --- .travis.yml | 2 +- Makefile.in | 23 ++++++++++++++++++++++- configure | 31 ++++++++++++++++++++++++++++++- make.defs | 20 -------------------- 4 files changed, 53 insertions(+), 23 deletions(-) delete mode 100644 make.defs 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 -- cgit v1.2.3-60-g2f50