mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-27 14:29:21 +00:00
Scons: fix DESTDIR, reloate intl/libintl.h, libgnuintl.h
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14239 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
f58609c765
commit
e941da3bdf
@ -510,7 +510,7 @@ def setEnvVariable(env, name, required = None, default = None, split = True):
|
||||
if required is not None:
|
||||
env[name] = required
|
||||
if default is not None:
|
||||
if env.has_key(name):
|
||||
if env.has_key(name) and env[name] != default:
|
||||
env[name] += default
|
||||
else:
|
||||
env[name] = default
|
||||
@ -530,7 +530,6 @@ setEnvVariable(env, 'LINKFLAGS', LINKFLAGS_required)
|
||||
if env.has_key('dest_dir'):
|
||||
print "This option is obsolete. Please use DESTDIR instead."
|
||||
env['DESTDIR'] = env['dest_dir']
|
||||
dest_dir = env.get('DESTDIR', prefix)
|
||||
|
||||
|
||||
#---------------------------------------------------------
|
||||
@ -602,6 +601,7 @@ conf = Configure(env,
|
||||
'CheckCommand' : utils.checkCommand,
|
||||
'CheckCXXGlobalCstd' : utils.checkCXXGlobalCstd,
|
||||
'CheckLC_MESSAGES' : utils.checkLC_MESSAGES,
|
||||
'CheckIconvConst' : utils.checkIconvConst,
|
||||
}
|
||||
)
|
||||
|
||||
@ -775,6 +775,12 @@ if not fast_start:
|
||||
else:
|
||||
env['MSGFMT'] = env_cache['MSGFMT']
|
||||
|
||||
#
|
||||
# Customized builders
|
||||
#
|
||||
# install customized builders
|
||||
env['BUILDERS']['substFile'] = Builder(action = utils.env_subst)
|
||||
|
||||
|
||||
#----------------------------------------------------------
|
||||
# Generating config.h
|
||||
@ -784,9 +790,11 @@ aspell_lib = 'aspell'
|
||||
if platform_name == 'win32' and mode == 'debug' and use_vc:
|
||||
aspell_lib = 'aspelld'
|
||||
|
||||
if not fast_start:
|
||||
#
|
||||
boost_config_h = os.path.join(env.Dir('$BUILDDIR/boost').path, 'config.h')
|
||||
# check the existence of config.h
|
||||
config_h = os.path.join(env.Dir('$BUILDDIR/common').path, 'config.h')
|
||||
boost_config_h = os.path.join(env.Dir('$BUILDDIR/boost').path, 'config.h')
|
||||
if not fast_start or not os.path.isfile(boost_config_h) \
|
||||
or not os.path.isfile(config_h):
|
||||
#
|
||||
print "Creating %s..." % boost_config_h
|
||||
#
|
||||
@ -852,9 +860,6 @@ if not fast_start:
|
||||
'''
|
||||
)
|
||||
#
|
||||
# config.h for each build
|
||||
config_h = os.path.join(env.Dir('$BUILDDIR/common').path, 'config.h')
|
||||
|
||||
print "\nGenerating %s..." % config_h
|
||||
|
||||
# AIKSAURUS_H_LOCATION
|
||||
@ -895,7 +900,7 @@ if not fast_start:
|
||||
# create config.h
|
||||
result = utils.createConfigFile(conf,
|
||||
config_file = config_h,
|
||||
config_pre = '''/* src/config.h. Generated by SCons. */
|
||||
config_pre = '''/* config.h. Generated by SCons. */
|
||||
|
||||
/* -*- C++ -*- */
|
||||
/*
|
||||
@ -987,10 +992,14 @@ int count()
|
||||
'Define if your <locale.h> file defines LC_MESSAGES.'
|
||||
),
|
||||
(devel_version, 'DEVEL_VERSION', 'Whether or not a development version'),
|
||||
(env.has_key('nls') and env['nls'],
|
||||
(env['nls'],
|
||||
'ENABLE_NLS',
|
||||
"Define to 1 if translation of program messages to the user's native anguage is requested.",
|
||||
),
|
||||
(env['nls'] and not included_gettext,
|
||||
'HAVE_GETTEXT',
|
||||
'Define to 1 if using system gettext library'
|
||||
),
|
||||
(env.has_key('warnings') and env['warnings'],
|
||||
'WITH_WARNINGS',
|
||||
'Define this if you want to see the warning directives put here and there by the developpers to get attention'
|
||||
@ -1073,6 +1082,117 @@ int mkstemp(char*);
|
||||
if result.has_key(key):
|
||||
env[key] = result[key]
|
||||
env_cache[key] = env[key]
|
||||
|
||||
#
|
||||
# if nls=yes and gettext=included, create intl/config.h
|
||||
# intl/libintl.h etc
|
||||
#
|
||||
intl_config_h = os.path.join(env.Dir('$BUILDDIR/intl').path, 'config.h')
|
||||
if env['nls'] and included_gettext:
|
||||
#
|
||||
print "Creating %s..." % intl_config_h
|
||||
#
|
||||
# create intl/config.h
|
||||
result = utils.createConfigFile(conf,
|
||||
config_file = intl_config_h,
|
||||
config_pre = '''/* intl/config.h. Generated by SCons. */
|
||||
|
||||
/* -*- C++ -*- */
|
||||
/*
|
||||
* \file config.h
|
||||
* This file is part of LyX, the document processor.
|
||||
* Licence details can be found in the file COPYING.
|
||||
*
|
||||
* This is the compilation configuration file for LyX.
|
||||
* It was generated by scon.
|
||||
* You might want to change some of the defaults if something goes wrong
|
||||
* during the compilation.
|
||||
*/
|
||||
|
||||
#ifndef _CONFIG_H
|
||||
#define _CONFIG_H
|
||||
''',
|
||||
headers = [
|
||||
('unistd.h', 'HAVE_UNISTD_H', 'c'),
|
||||
('inttypes.h', 'HAVE_INTTYPES_H', 'c'),
|
||||
('string.h', 'HAVE_STRING_H', 'c'),
|
||||
('strings.h', 'HAVE_STRINGS_H', 'c'),
|
||||
('argz.h', 'HAVE_ARGZ_H', 'c'),
|
||||
('limits.h', 'HAVE_LIMITS_H', 'c'),
|
||||
('alloca.h', 'HAVE_ALLOCA_H', 'c'),
|
||||
('stddef.h', 'HAVE_STDDEF_H', 'c'),
|
||||
('stdint.h', 'HAVE_STDINT_H', 'c'),
|
||||
('sys/param.h', 'HAVE_SYS_PARAM_H', 'c'),
|
||||
],
|
||||
functions = [
|
||||
('getcwd', 'HAVE_GETCWD', None),
|
||||
('stpcpy', 'HAVE_STPCPY', None),
|
||||
('strcasecmp', 'HAVE_STRCASECMP', None),
|
||||
('strdup', 'HAVE_STRDUP', None),
|
||||
('strtoul', 'HAVE_STRTOUL', None),
|
||||
('alloca', 'HAVE_ALLOCA', None),
|
||||
('__fsetlocking', 'HAVE___FSETLOCKING', None),
|
||||
('mempcpy', 'HAVE_MEMPCPY', None),
|
||||
('__argz_count', 'HAVE___ARGZ_COUNT', None),
|
||||
('__argz_next', 'HAVE___ARGZ_NEXT', None),
|
||||
('__argz_stringify', 'HAVE___ARGZ_STRINGIFY', None),
|
||||
('setlocale', 'HAVE_SETLOCALE', None),
|
||||
('tsearch', 'HAVE_TSEARCH', None),
|
||||
('getegid', 'HAVE_GETEGID', None),
|
||||
('getgid', 'HAVE_GETGID', None),
|
||||
('getuid', 'HAVE_GETUID', None),
|
||||
('wcslen', 'HAVE_WCSLEN', None),
|
||||
('asprintf', 'HAVE_ASPRINTF', None),
|
||||
('wprintf', 'HAVE_WPRINTF', None),
|
||||
('snprintf', 'HAVE_SNPRINTF', None),
|
||||
('printf', 'HAVE_POSIX_PRINTF', None),
|
||||
('fcntl', 'HAVE_FCNTL', None),
|
||||
],
|
||||
types = [
|
||||
('intmax_t', 'HAVE_INTMAX_T', None),
|
||||
('long double', 'HAVE_LONG_DOUBLE', None),
|
||||
('long long', 'HAVE_LONG_LONG', None),
|
||||
('wchar_t', 'HAVE_WCHAR_T', None),
|
||||
('wint_t', 'HAVE_WINT_T', None),
|
||||
('uintmax_t', 'HAVE_INTTYPES_H_WITH_UINTMAX', '#include <inttypes.h>'),
|
||||
('uintmax_t', 'HAVE_STDINT_H_WITH_UINTMAX', '#include <stdint.h>'),
|
||||
],
|
||||
libs = [
|
||||
(('iconv', 'libiconv'), 'HAVE_ICONV', 'ICONV_LIB'),
|
||||
('c', 'HAVE_LIBC'),
|
||||
],
|
||||
custom_tests = [
|
||||
(conf.CheckLC_MESSAGES(),
|
||||
'HAVE_LC_MESSAGES',
|
||||
'Define if your <locale.h> file defines LC_MESSAGES.'
|
||||
),
|
||||
(conf.CheckIconvConst(),
|
||||
'ICONV_CONST',
|
||||
'Define as const if the declaration of iconv() needs const.',
|
||||
'#define ICONV_CONST',
|
||||
'#define ICONV_CONST const',
|
||||
),
|
||||
(conf.CheckType('intmax_t', includes='#include <stdint.h>') or \
|
||||
conf.CheckType('intmax_t', includes='#include <inttypes.h>'),
|
||||
'HAVE_INTMAX_T',
|
||||
"Define to 1 if you have the `intmax_t' type."
|
||||
),
|
||||
(env.has_key('nls') and env['nls'],
|
||||
'ENABLE_NLS',
|
||||
"Define to 1 if translation of program messages to the user's native anguage is requested.",
|
||||
),
|
||||
],
|
||||
config_post = '#endif'
|
||||
)
|
||||
|
||||
# these keys are needed in env
|
||||
for key in ['HAVE_ASPRINTF', 'HAVE_WPRINTF', 'HAVE_SNPRINTF', \
|
||||
'HAVE_POSIX_PRINTF', 'HAVE_ICONV', 'HAVE_LIBC']:
|
||||
# USE_ASPELL etc does not go through result
|
||||
if result.has_key(key):
|
||||
env[key] = result[key]
|
||||
env_cache[key] = env[key]
|
||||
|
||||
else:
|
||||
#
|
||||
# this comes as a big surprise, without this line
|
||||
@ -1085,6 +1205,20 @@ else:
|
||||
'HAVE_ICONV', 'HAVE_LIBGDI32', 'HAVE_LIBAIKSAURUS',
|
||||
'ICONV_LIB', 'AIKSAURUS_LIB']:
|
||||
env[key] = env_cache[key]
|
||||
#
|
||||
# nls related keys
|
||||
if env['nls'] and included_gettext:
|
||||
# only a few variables need to be rescanned
|
||||
for key in ['HAVE_ASPRINTF', 'HAVE_WPRINTF', 'HAVE_SNPRINTF', \
|
||||
'HAVE_POSIX_PRINTF', 'HAVE_ICONV', 'HAVE_LIBC']:
|
||||
env[key] = env_cache[key]
|
||||
|
||||
# this looks misplaced, but intl/libintl.h is needed by src/message.C
|
||||
if env['nls'] and included_gettext:
|
||||
# libgnuintl.h.in => libintl.h
|
||||
env.substFile('$BUILDDIR/intl/libintl.h', '$TOP_SRCDIR/intl/libgnuintl.h.in')
|
||||
env.Command('$BUILDDIR/intl/libgnuintl.h', '$BUILDDIR/intl/libintl.h',
|
||||
[Copy('$TARGET', '$SOURCE')])
|
||||
|
||||
#
|
||||
# Finish auto-configuration
|
||||
@ -1163,16 +1297,13 @@ if env['X11']:
|
||||
# TOP_SRCDIR/src: for support/* etc
|
||||
#
|
||||
env['CPPPATH'] += ['$TOP_SRCDIR/boost', '$BUILDDIR/common', '$TOP_SRCDIR/src']
|
||||
# for intl/config.h, intl/libintl.h and intl/libgnuintl.h
|
||||
if env['nls'] and included_gettext:
|
||||
env['CPPPATH'].append('$BUILDDIR/intl')
|
||||
#
|
||||
# QT_INC_PATH is not needed for *every* source file
|
||||
env['CPPPATH'].remove(qt_inc_path)
|
||||
|
||||
#
|
||||
# Customized builders
|
||||
#
|
||||
# install customized builders
|
||||
env['BUILDERS']['substFile'] = Builder(action = utils.env_subst)
|
||||
|
||||
#
|
||||
# A Link script for cygwin see
|
||||
# http://www.cygwin.com/ml/cygwin/2004-09/msg01101.html
|
||||
@ -1257,6 +1388,11 @@ if logfile != '' or platform_name == 'win32':
|
||||
# -h will print out help info
|
||||
Help(opts.GenerateHelpText(env))
|
||||
|
||||
# save environment settings (for fast_start option)
|
||||
cache_file = open(env_cache_file, 'w')
|
||||
cPickle.dump(env_cache, cache_file)
|
||||
cache_file.close()
|
||||
|
||||
|
||||
#----------------------------------------------------------
|
||||
# Start building
|
||||
@ -1366,124 +1502,6 @@ if build_intl:
|
||||
# intl
|
||||
#
|
||||
intlenv = env.Copy()
|
||||
#
|
||||
intl_config_h = os.path.join(intlenv.Dir('$BUILDDIR/intl').path, 'config.h')
|
||||
if not os.path.isfile(intl_config_h) or not fast_start:
|
||||
#
|
||||
print "Creating %s..." % intl_config_h
|
||||
#
|
||||
# start another configuration session.
|
||||
conf = Configure(intlenv,
|
||||
custom_tests = {
|
||||
'CheckLC_MESSAGES' : utils.checkLC_MESSAGES,
|
||||
'CheckIconvConst' : utils.checkIconvConst,
|
||||
}
|
||||
)
|
||||
# create config.h
|
||||
result = utils.createConfigFile(conf,
|
||||
config_file = intl_config_h,
|
||||
config_pre = '''/* intl/config.h. Generated by SCons. */
|
||||
|
||||
/* -*- C++ -*- */
|
||||
/*
|
||||
* \file config.h
|
||||
* This file is part of LyX, the document processor.
|
||||
* Licence details can be found in the file COPYING.
|
||||
*
|
||||
* This is the compilation configuration file for LyX.
|
||||
* It was generated by scon.
|
||||
* You might want to change some of the defaults if something goes wrong
|
||||
* during the compilation.
|
||||
*/
|
||||
|
||||
#ifndef _CONFIG_H
|
||||
#define _CONFIG_H
|
||||
''',
|
||||
headers = [
|
||||
('unistd.h', 'HAVE_UNISTD_H', 'c'),
|
||||
('inttypes.h', 'HAVE_INTTYPES_H', 'c'),
|
||||
('string.h', 'HAVE_STRING_H', 'c'),
|
||||
('strings.h', 'HAVE_STRINGS_H', 'c'),
|
||||
('argz.h', 'HAVE_ARGZ_H', 'c'),
|
||||
('limits.h', 'HAVE_LIMITS_H', 'c'),
|
||||
('alloca.h', 'HAVE_ALLOCA_H', 'c'),
|
||||
('stddef.h', 'HAVE_STDDEF_H', 'c'),
|
||||
('stdint.h', 'HAVE_STDINT_H', 'c'),
|
||||
('sys/param.h', 'HAVE_SYS_PARAM_H', 'c'),
|
||||
],
|
||||
functions = [
|
||||
('getcwd', 'HAVE_GETCWD', None),
|
||||
('stpcpy', 'HAVE_STPCPY', None),
|
||||
('strcasecmp', 'HAVE_STRCASECMP', None),
|
||||
('strdup', 'HAVE_STRDUP', None),
|
||||
('strtoul', 'HAVE_STRTOUL', None),
|
||||
('alloca', 'HAVE_ALLOCA', None),
|
||||
('__fsetlocking', 'HAVE___FSETLOCKING', None),
|
||||
('mempcpy', 'HAVE_MEMPCPY', None),
|
||||
('__argz_count', 'HAVE___ARGZ_COUNT', None),
|
||||
('__argz_next', 'HAVE___ARGZ_NEXT', None),
|
||||
('__argz_stringify', 'HAVE___ARGZ_STRINGIFY', None),
|
||||
('setlocale', 'HAVE_SETLOCALE', None),
|
||||
('tsearch', 'HAVE_TSEARCH', None),
|
||||
('getegid', 'HAVE_GETEGID', None),
|
||||
('getgid', 'HAVE_GETGID', None),
|
||||
('getuid', 'HAVE_GETUID', None),
|
||||
('wcslen', 'HAVE_WCSLEN', None),
|
||||
('asprintf', 'HAVE_ASPRINTF', None),
|
||||
('wprintf', 'HAVE_WPRINTF', None),
|
||||
('snprintf', 'HAVE_SNPRINTF', None),
|
||||
('printf', 'HAVE_POSIX_PRINTF', None),
|
||||
('fcntl', 'HAVE_FCNTL', None),
|
||||
],
|
||||
types = [
|
||||
('intmax_t', 'HAVE_INTMAX_T', None),
|
||||
('long double', 'HAVE_LONG_DOUBLE', None),
|
||||
('long long', 'HAVE_LONG_LONG', None),
|
||||
('wchar_t', 'HAVE_WCHAR_T', None),
|
||||
('wint_t', 'HAVE_WINT_T', None),
|
||||
('uintmax_t', 'HAVE_INTTYPES_H_WITH_UINTMAX', '#include <inttypes.h>'),
|
||||
('uintmax_t', 'HAVE_STDINT_H_WITH_UINTMAX', '#include <stdint.h>'),
|
||||
],
|
||||
libs = [
|
||||
(('iconv', 'libiconv'), 'HAVE_ICONV', 'ICONV_LIB'),
|
||||
('c', 'HAVE_LIBC'),
|
||||
],
|
||||
custom_tests = [
|
||||
(conf.CheckLC_MESSAGES(),
|
||||
'HAVE_LC_MESSAGES',
|
||||
'Define if your <locale.h> file defines LC_MESSAGES.'
|
||||
),
|
||||
(conf.CheckIconvConst(),
|
||||
'ICONV_CONST',
|
||||
'Define as const if the declaration of iconv() needs const.',
|
||||
'#define ICONV_CONST',
|
||||
'#define ICONV_CONST const',
|
||||
),
|
||||
(conf.CheckType('intmax_t', includes='#include <stdint.h>') or \
|
||||
conf.CheckType('intmax_t', includes='#include <inttypes.h>'),
|
||||
'HAVE_INTMAX_T',
|
||||
"Define to 1 if you have the `intmax_t' type."
|
||||
),
|
||||
(env.has_key('nls') and env['nls'],
|
||||
'ENABLE_NLS',
|
||||
"Define to 1 if translation of program messages to the user's native anguage is requested.",
|
||||
),
|
||||
],
|
||||
config_post = '#endif'
|
||||
)
|
||||
conf.Finish()
|
||||
# these keys are needed in env
|
||||
for key in ['HAVE_ASPRINTF', 'HAVE_WPRINTF', 'HAVE_SNPRINTF', \
|
||||
'HAVE_POSIX_PRINTF', 'HAVE_ICONV', 'HAVE_LIBC']:
|
||||
# USE_ASPELL etc does not go through result
|
||||
if result.has_key(key):
|
||||
env[key] = result[key]
|
||||
env_cache[key] = env[key]
|
||||
else:
|
||||
# only a few variables need to be rescanned
|
||||
for key in ['HAVE_ASPRINTF', 'HAVE_WPRINTF', 'HAVE_SNPRINTF', \
|
||||
'HAVE_POSIX_PRINTF', 'HAVE_ICONV', 'HAVE_LIBC']:
|
||||
env[key] = env_cache[key]
|
||||
|
||||
print "Processing files in intl..."
|
||||
|
||||
@ -1513,11 +1531,6 @@ if build_intl:
|
||||
]
|
||||
)
|
||||
|
||||
# libgnuintl.h.in => libintl.h
|
||||
env.substFile('$TOP_SRCDIR/intl/libintl.h', '$TOP_SRCDIR/intl/libgnuintl.h.in')
|
||||
env.Command('$TOP_SRCDIR/intl/libgnuintl.h', '$TOP_SRCDIR/intl/libintl.h',
|
||||
[Copy('$TARGET', '$SOURCE')])
|
||||
|
||||
intl = intlenv.StaticLibrary(
|
||||
target = '$LOCALLIBPATH/included_intl',
|
||||
LIBS = ['c'],
|
||||
@ -2206,9 +2219,12 @@ if build_po:
|
||||
|
||||
|
||||
if 'install' in targets:
|
||||
#
|
||||
# install to DESTDIR or prefix
|
||||
dest_dir = env.Dir(env.get('DESTDIR', prefix)).abspath
|
||||
# if dest_dir is different from prefix.
|
||||
if env.has_key('exec_prefix'):
|
||||
bin_dest_dir = env['exec_prefix']
|
||||
bin_dest_dir = Dir(env['exec_prefix']).abspath
|
||||
else:
|
||||
bin_dest_dir = os.path.join(dest_dir, 'bin')
|
||||
if add_suffix:
|
||||
@ -2308,9 +2324,3 @@ if 'install' in targets:
|
||||
|
||||
Default('lyx')
|
||||
Alias('all', ['lyx', 'client', 'tex2lyx'])
|
||||
|
||||
|
||||
# save environment settings (for fast_start option)
|
||||
cache_file = open(env_cache_file, 'w')
|
||||
cPickle.dump(env_cache, cache_file)
|
||||
cache_file.close()
|
||||
|
Loading…
Reference in New Issue
Block a user