if 'install' in targets:
# create the directory if needed
- if not os.path.isdir(env['PREFIX']):
+ if not os.path.isdir(env['DEST_DIR']):
try:
- os.makedirs(env['PREFIX'])
+ os.makedirs(env['DEST_DIR'])
except:
pass
- if not os.path.isdir(env['PREFIX']):
- print 'Can not create directory', env['PREFIX']
+ if not os.path.isdir(env['DEST_DIR']):
+ print 'Can not create directory', env['DEST_DIR']
Exit(3)
#
import glob
#
- # windows: $PREFIX/Resources
- # others: $PREDIX/share/lyx
- share_dir = env['SHARE_DIR']
- # windows: $PREFIX/Resouces/man/man1
- # others: $PREFIX/man/man1
- man_dir = env['MAN_DIR']
- # windows: $PREFIX/Resources/locale
- # others: $PREFIX/share/locale
- locale_dir = env['LOCALE_DIR']
# do not install these files
exclude_list = ['Makefile.am', 'Makefile.in', 'Makefile',
'lyx2lyx_version.py', 'lyx2lyx_version.py.in']
#
# install lyx
target_name = os.path.split(str(lyx[0]))[1].replace('lyx', 'lyx%s' % program_suffix)
- target = os.path.join(env['BIN_DIR'], target_name)
+ target = os.path.join(env['BIN_DEST_DIR'], target_name)
env.InstallAs(target, lyx)
Alias('install', target)
# install lyx as lyx-qt3
target_name = os.path.split(str(lyx[0]))[1].replace('lyx', 'lyx-%s%s' % (frontend, program_suffix))
- target = os.path.join(env['BIN_DIR'], target_name)
+ target = os.path.join(env['BIN_DEST_DIR'], target_name)
env.InstallAs(target, lyx)
Alias('install', target)
#
# install tex2lyx
target_name = os.path.split(str(tex2lyx[0]))[1].replace('tex2lyx', 'tex2lyx%s' % program_suffix)
- target = os.path.join(env['BIN_DIR'], target_name)
+ target = os.path.join(env['BIN_DEST_DIR'], target_name)
env.InstallAs(target, tex2lyx)
Alias('install', target)
#
# install lyxclient, may not exist
if client != None:
target_name = os.path.split(str(client[0]))[1].replace('client', 'client%s' % program_suffix)
- target = os.path.join(env['BIN_DIR'], target_name)
+ target = os.path.join(env['BIN_DEST_DIR'], target_name)
env.InstallAs(target, client)
Alias('install', target)
#
# share/lyx
- dirs = install(env['SHARE_DIR'],
+ dirs = install(env['SHARE_DEST_DIR'],
[env.subst('$TOP_SRC_DIR/lib/') + file for file in ['configure.py', 'encodings',
'chkconfig.ltx', 'CREDITS', 'external_templates', 'symbols', 'languages',
'lyxrc.example', 'syntax.default', 'bind', 'images', 'layouts', 'scripts',
'templates', 'examples', 'kbd', 'lyx2lyx', 'tex', 'clipart', 'doc', 'ui']]
)
- env.substFile('$SHARE_DIR/lyx2lyx/lyx2lyx_version.py',
+ env.substFile('$SHARE_DEST_DIR/lyx2lyx/lyx2lyx_version.py',
'$TOP_SRC_DIR/lib/lyx2lyx/lyx2lyx_version.py.in')
Alias('install', dirs)
# man
- env.InstallAs(os.path.join(env['MAN_DIR'], 'lyx.1'),
+ env.InstallAs(os.path.join(env['MAN_DEST_DIR'], 'lyx.1'),
env.subst('$TOP_SRC_DIR/lyx.man'))
- env.InstallAs(os.path.join(env['MAN_DIR'], 'tex2lyx.1'),
+ env.InstallAs(os.path.join(env['MAN_DEST_DIR'], 'tex2lyx.1'),
env.subst('$TOP_SRC_DIR/src/tex2lyx/tex2lyx.man'))
- env.InstallAs(os.path.join(env['MAN_DIR'], 'lyxclient.1'),
+ env.InstallAs(os.path.join(env['MAN_DEST_DIR'], 'lyxclient.1'),
env.subst('$TOP_SRC_DIR/src/client/lyxclient.man'))
- Alias('install', [os.path.join(env['MAN_DIR'], x) for
+ Alias('install', [os.path.join(env['MAN_DEST_DIR'], x) for
x in ['lyx.1', 'tex2lyx.1', 'lyxclient.1']])
# locale files?
# ru.gmo ==> ru/LC_MESSAGES/lyxSUFFIX.mo
for gmo in gmo_files:
lan = os.path.split(str(gmo))[1].split('.')[0]
- dest_file = os.path.join(env['LOCALE_DIR'], lan, 'LC_MESSAGES', 'lyx' + env['PROGRAM_SUFFIX'] + '.mo')
+ dest_file = os.path.join(env['LOCALE_DEST_DIR'], lan, 'LC_MESSAGES', 'lyx' + env['PROGRAM_SUFFIX'] + '.mo')
env.InstallAs(dest_file, gmo)
Alias('install', dest_file)
PathOption('extra_lib_path1', 'Extra library path', None),
# can be set to a non-existing directory
('prefix', 'install architecture-independent files in PREFIX', None),
+ # will install to dest_dir if defined. Otherwise, prefix will be used.
+ ('dest_dir', 'install to dest_dir', None),
# version suffix
('version_suffix', 'install lyx as lyx-suffix', ''),
#
('LDFLAGS', '$LDFLAGS', None),
)
+# whether or not use current config.h, and cached tests
+if (not ARGUMENTS.has_key('fast_start') or \
+ ARGUMENTS['fast_start'] in ['y', 'yes', 't', 'true', '1', 'all']) \
+ and os.path.isfile(env_cache_file):
+ fast_start = True
+ cache_file = open(env_cache_file)
+ env_cache = cPickle.load(cache_file)
+ cache_file.close()
+ # import cached options, but we should ignore qt_dir when frontend changes
+ if ARGUMENTS.has_key('frontend') and env_cache['arg_cache'].has_key('frontend') \
+ and ARGUMENTS['frontend'] != env_cache['arg_cache']['frontend'] \
+ and env_cache['arg_cache'].has_key('qt_dir'):
+ env_cache['arg_cache'].pop('qt_dir')
+ # and we do not cache fast_start
+ if env_cache['arg_cache'].has_key('fast_start'):
+ env_cache['arg_cache'].pop('fast_start')
+ print '------------ fast_start mode --------------------'
+ print ' Use cached test results and current config.h'
+ print ' use fast_start=no to override'
+ print
+ for key in env_cache['arg_cache'].keys():
+ if not ARGUMENTS.has_key(key):
+ ARGUMENTS[key] = env_cache['arg_cache'][key]
+ print "Restoring cached option %s=%s" % (key, ARGUMENTS[key])
+ print '-------------------------------------------------'
+else:
+ fast_start = False
+ env_cache = {}
+
+# save arguments
+env_cache['arg_cache'] = ARGUMENTS
+
#---------------------------------------------------------
# Setting up environment
#
use_X11 = env.get('X11', default_with_x)
-# whether or not use current config.h, and cached tests
-if env['fast_start'] and os.path.isfile(env_cache_file):
- fast_start = True
- SetOption('implicit_cache', 1)
- cache_file = open(env_cache_file)
- env_cache = cPickle.load(cache_file)
- cache_file.close()
- print '------------ fast_start mode --------------------'
- print ' Use cached test results and current config.h'
- print ' use fast_start=no to override'
- print '-------------------------------------------------'
-else:
- fast_start = False
- SetOption('implicit_cache', 0)
- env_cache = {}
# set individual variables since I do not really like ENV = os.environ
env['ENV']['PATH'] = os.environ.get('PATH')
env['SCONS_DIR'] = SCONS_DIR
# install to default_prefix by default
env['PREFIX'] = env.get('prefix', default_prefix)
-if env.has_key('exec_prefix'):
- env['BIN_DIR'] = env['exec_prefix']
-else:
- env['BIN_DIR'] = os.path.join(env['PREFIX'], 'bin')
# program suffix
if env.has_key('version_suffix'):
env['PROGRAM_SUFFIX'] = env['version_suffix']
env['PROGRAM_SUFFIX'] = ''
env['ADD_SUFFIX_TO_EXECUTABLES'] = add_suffix_to_executables
env['SHARE_DIR'] = os.path.join(env['PREFIX'], share_dir + env['PROGRAM_SUFFIX'])
-env['MAN_DIR'] = os.path.join(env['PREFIX'], man_dir)
env['LOCALE_DIR'] = os.path.join(env['PREFIX'], locale_dir)
+#
+# if dest_dir is different from prefix.
+env['DEST_DIR'] = env.get('dest_dir', env['PREFIX'])
+if env.has_key('exec_prefix'):
+ env['BIN_DEST_DIR'] = env['exec_prefix']
+else:
+ env['BIN_DEST_DIR'] = os.path.join(env['DEST_DIR'], 'bin')
+env['SHARE_DEST_DIR'] = os.path.join(env['DEST_DIR'], share_dir + env['PROGRAM_SUFFIX'])
+env['MAN_DEST_DIR'] = os.path.join(env['DEST_DIR'], man_dir)
+env['LOCALE_DEST_DIR'] = os.path.join(env['DEST_DIR'], locale_dir)
#
# this is a bit out of place (after auto-configration) but
# HAVE_SYS_UTIME_H
# HAVE_UNISTD_H
# HAVE_UTIME_H
+ # HAVE_STRING_H
+ # HAVE_STRINGS_H
# HAVE_ISTREAM
# HAVE_OSTREAM
# HAVE_IOS
('unistd.h', 'HAVE_UNISTD_H', 'c'),
('inttypes.h', 'HAVE_INTTYPES_H', 'c'),
('utime.h', 'HAVE_UTIME_H', 'c'),
+ ('string.h', 'HAVE_STRING_H', 'c'),
+ ('strings.h', 'HAVE_STRINGS_H', 'c'),
('istream', 'HAVE_ISTREAM', 'cxx'),
('ostream', 'HAVE_OSTREAM', 'cxx'),
- ('ios', 'HAVE_IOS', 'cxx')
+ ('ios', 'HAVE_IOS', 'cxx'),
]
for header in headers:
# HAVE_STRERROR
# HAVE_STD_COUNT
# HAVE_GETCWD
+ # HAVE_STRCPY
+ # HAVE_STRCASECMP
+ # HAVE_STRDUP
+ # HAVE_STRTOUL
# Check functions
functions = [
}
'''),
('getcwd', 'HAVE_GETCWD', None),
+ ('stpcpy', 'HAVE_STPCPY', None),
+ ('strcasecmp', 'HAVE_STRCASECMP', None),
+ ('strdup', 'HAVE_STRDUP', None),
+ ('strtoul', 'HAVE_STRTOUL', None)
]
# HAVE_ASPRINTF
str(env['LIBPATH']), str(env['BOOST_LIBRARIES']),
str(env['EXTRA_LIBS']), str(env['SYSTEM_LIBS']), str(env['CPPPATH']),
env['frontend'], packaging_method,
- env['PREFIX'], env['BIN_DIR'], env['SHARE_DIR'])
+ env['PREFIX'], env['BIN_DEST_DIR'], env['SHARE_DIR'])
if env['frontend'] in ['qt3', 'qt4']:
env['VERSION_INFO'] += ''' include dir: %s