Skip to content

Commit

Permalink
Install mmseg etc. and their manpages to system.
Browse files Browse the repository at this point in the history
Add notice for generating data files in doc/README.
Put data file in /usr/share/sunpinyin or so, wrt hier(7).
Remove redundant directories.
  • Loading branch information
CasperVector committed Aug 17, 2012
1 parent ce640d5 commit 47cc165
Show file tree
Hide file tree
Showing 20 changed files with 94 additions and 141 deletions.
2 changes: 1 addition & 1 deletion NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ libsunpinyin

* New LOGO!
* History cache focus more on recent commits.
* Supports --libdir and --libdatadir as configuration arguments.
* Supports --libdir and --datadir as configuration arguments.
* Hunpin support. (Contributed by Hanjie Xu)
* Fixed weird behavior of history with a single character.
* Fixed a potential issue for candidate ranking.
Expand Down
73 changes: 58 additions & 15 deletions SConstruct
Original file line number Diff line number Diff line change
Expand Up @@ -122,15 +122,51 @@ headers_plugin = [
'src/ime-core/imi_plugin.h',
]

bins = [
'src/mmseg',
'src/slmseg',
'src/ids2ngram',
'src/idngram_merge',
'src/slmbuild',
'src/slmprune',
'src/slminfo',
'src/slmthread',
'src/tslmendian',
'src/tslminfo',
'src/tslmpack',
'src/genpyt',
'src/getwordfreq',
]

mans = [
'man/mmseg.1',
'man/slmseg.1',
'man/ids2ngram.1',
'man/idngram_merge.1',
'man/slmbuild.1',
'man/slmprune.1',
'man/slminfo.1',
'man/slmthread.1',
'man/tslmendian.1',
'man/tslminfo.1',
'man/tslmpack.1',
'man/genpyt.1',
'man/getwordfreq.1',
]

docs = [
'doc/SLM.mk',
]

# options
AddOption('--prefix', dest='prefix', metavar='DIR',
help='installation prefix')

AddOption('--libdir', dest='libdir', metavar='DIR',
help='installation libdir')

AddOption('--libdatadir', dest='libdatadir', metavar='DIR',
help='installation libdata dir')
AddOption('--datadir', dest='datadir', metavar='DIR',
help='installation data dir')

AddOption('--rpath', dest='rpath', metavar='DIR',
help='encode rpath in the executables')
Expand All @@ -145,7 +181,7 @@ AddOption('--disable-plugins', dest='enable_plugins', action='store_false',
opts = Variables('configure.conf')
opts.Add('PREFIX', default='/usr/local')
opts.Add('LIBDIR', default='/usr/local/lib')
opts.Add('LIBDATADIR', default='/usr/local/lib')
opts.Add('DATADIR', default='/usr/local/share')
opts.Add('ENABLE_PLUGINS', default=False)

#
Expand Down Expand Up @@ -194,22 +230,25 @@ opts.Update(env)

if GetOption('prefix') is not None:
env['PREFIX'] = GetOption('prefix')
env['LIBDATADIR'] = os.path.join(env['PREFIX'], 'lib')
env['LIBDIR'] = os.path.join(env['PREFIX'], 'lib')
env['DATADIR'] = os.path.join(env['PREFIX'], 'share')

if GetOption('libdir') is not None:
env['LIBDIR'] = GetOption('libdir')

if GetOption('libdatadir') is not None:
env['LIBDATADIR'] = GetOption('libdatadir')
if GetOption('datadir') is not None:
env['DATADIR'] = GetOption('datadir')

env['ENABLE_PLUGINS'] = GetOption('enable_plugins')

opts.Save('configure.conf', env)

libdir = env['LIBDIR']
libdatadir = os.path.join(env['LIBDATADIR'], 'sunpinyin/data')
bindir = os.path.join(env['PREFIX'], 'bin')
mandir = os.path.join(env['PREFIX'], 'share/man')
docdir = os.path.join(env['PREFIX'], 'share/doc/sunpinyin')
headersdir = os.path.join(env['PREFIX'], 'include/sunpinyin-2.0')
datadir = os.path.join(env['DATADIR'], 'sunpinyin')
libdir = env['LIBDIR']

# pass through environmental variables
envvar = [('CC', 'CC'),
Expand All @@ -229,7 +268,7 @@ if env['ENABLE_PLUGINS']:

# merge some of critical compile flags
env.MergeFlags(['-pipe -DHAVE_CONFIG_H',
'-DSUNPINYIN_DATA_DIR=\\\'\\"%s\\"\\\'' % libdatadir])
'-DSUNPINYIN_DATA_DIR=\\\'\\"%s\\"\\\'' % datadir])

if GetOption('rpath') is not None and GetOS() != 'Darwin':
env.MergeFlags('-Wl,-R -Wl,%s' % GetOption('rpath'))
Expand Down Expand Up @@ -379,6 +418,7 @@ env.Command('src/pinyin/quanpin_trie.h', 'python/pinyin_data.py',
env.Object(slmsource)

SConscript(['src/SConscript'], exports='env')
SConscript(['man/SConscript'], exports='env')

libname_default = '%ssunpinyin%s' % (env.subst('${SHLIBPREFIX}'),
env.subst('${SHLIBSUFFIX}'))
Expand Down Expand Up @@ -412,16 +452,19 @@ def DoInstall():

lib_pkgconfig_target = env.Install(os.path.join(libdir, 'pkgconfig'),
['sunpinyin-2.0.pc'])
libdata_target = env.Install(libdatadir,
['data/lm_sc.t3g',
'data/pydict_sc.bin'])
bin_target = env.Install(bindir, bins)
man_target = env.Install(mandir, mans)
doc_target = env.Install(docdir, docs)
header_targets = []
for header in headers:
header_targets.append(env.InstallAs(headersdir + header[3:], header))
env.Alias('install-bin', bin_target)
env.Alias('install-man', man_target)
env.Alias('install-doc', doc_target)
env.Alias('install-headers', header_targets)
env.Alias('install-lib', lib_target + [lib_pkgconfig_target])
env.Alias('install-libdata', libdata_target)
env.Depends('install-libdata', 'install-lib')
Mkdir(datadir)

DoInstall()
env.Alias('install', ['install-lib', 'install-libdata', 'install-headers'])
env.Alias('install', ['install-bin', 'install-lib', 'install-headers'])

14 changes: 14 additions & 0 deletions doc/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
How to install data files for sunpinyin
=======================================

Get `lm_sc.t3g.arpa.tar.bz2' and `dict.utf8.tar.bz2' from [1],
unpack them into some directory, and issue the following command in that
directory:

make -f /path/to/SLM.mk data_bin

Then copy generated `lm_sc.t3g' and `pydict3_sc.bin' to sunpinyin's data
directory, usually /usr/share/sunpinyin/, and you are done.

[1] https://code.google.com/p/open-gram/downloads

1 change: 1 addition & 0 deletions doc/SLM.mk
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ slm_bigram2: slm2_ids tslm2_info
slm_bigram3: slm3_ids tslm2_info
slm_trigram2: slm2_ids tslm3_info
slm_trigram3: slm3_ids tslm3_info
data_bin: tslm3_pack lexicon3

bootstrap2:
make mmseg_bigram
Expand Down
124 changes: 0 additions & 124 deletions doc/slm.mk

This file was deleted.

20 changes: 20 additions & 0 deletions man/SConscript
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import os
Import('env')

pod2man = Builder(action = 'pod2man < $SOURCE > $TARGET')
env.Append(BUILDERS = {'Man': pod2man})

env.Man('mmseg.1', 'mmseg.pod')
env.Man('slmseg.1', 'slmseg.pod')
env.Man('ids2ngram.1', 'ids2ngram.pod')
env.Man('idngram_merge.1', 'idngram_merge.pod')
env.Man('slmbuild.1', 'slmbuild.pod')
env.Man('slmprune.1', 'slmprune.pod')
env.Man('slminfo.1', 'slminfo.pod')
env.Man('slmthread.1', 'slmthread.pod')
env.Man('tslmendian.1', 'tslmendian.pod')
env.Man('tslminfo.1', 'tslminfo.pod')
env.Man('tslmpack.1', 'tslmpack.pod')
env.Man('genpyt.1', 'genpyt.pod')
env.Man('getwordfreq.1', 'getwordfreq.pod')

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
1 change: 0 additions & 1 deletion swap/README

This file was deleted.

0 comments on commit 47cc165

Please sign in to comment.