summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2011-08-05 20:39:07 +0800
committerPeng Wu <alexepico@gmail.com>2011-08-05 20:44:36 +0800
commit589b10be816c4264fc1663f4680e4d71861f1682 (patch)
tree6afd902bc10eef7c16618c3f537b8436fd057010
parent0572b575851a7c7055ae10b7c22d072fe685c5be (diff)
downloadlibpinyin-589b10be816c4264fc1663f4680e4d71861f1682.tar.gz
libpinyin-589b10be816c4264fc1663f4680e4d71861f1682.tar.xz
libpinyin-589b10be816c4264fc1663f4680e4d71861f1682.zip
refine autoconf
-rw-r--r--Makefile.data2
-rw-r--r--data/Makefile.am11
-rw-r--r--utils/storage/gen_binary_files.cpp35
3 files changed, 37 insertions, 11 deletions
diff --git a/Makefile.data b/Makefile.data
index 3cb9f4a..1fc61b6 100644
--- a/Makefile.data
+++ b/Makefile.data
@@ -2,7 +2,7 @@ clean:
make -C data clean
build:
- make -C data build-data
+ make -C data
rebuild:
git reset --hard
diff --git a/data/Makefile.am b/data/Makefile.am
index a9dab88..c1ad4d8 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -26,8 +26,7 @@ binary_model_data = gb_char.bin gbk_char.bin \
MAINTAINERCLEANFILES = Makefile.in
-EXTRA_DIST = $(textual_model_data) \
- $(binary_model_data)
+EXTRA_DIST = $(textual_model_data)
libpinyin_db_DATA = $(binary_model_data)
@@ -35,9 +34,7 @@ libpinyin_dbdir = $(pkgdatadir)/data
CLEANFILES = $(binary_model_data)
-build-data: $(textual_model_data)
+$(binary_model_data): $(textual_model_data)
$(RM) $(binary_model_data)
- cd ../utils/storage ; ./gen_binary_files ; cd -
- cd ../utils/storage ; ./import_interpolation < ../../data/interpolation.text ; cd -
-
-$(binary_model_data): build-data
+ cd ../utils/storage ; ./gen_binary_files --table-dir $(abs_top_srcdir)/data; cd -
+ cd ../utils/storage ; ./import_interpolation < $(abs_top_srcdir)/data/interpolation.text ; cd -
diff --git a/utils/storage/gen_binary_files.cpp b/utils/storage/gen_binary_files.cpp
index 95374c1..14aa973 100644
--- a/utils/storage/gen_binary_files.cpp
+++ b/utils/storage/gen_binary_files.cpp
@@ -20,9 +20,32 @@
*/
#include <stdio.h>
+#include <locale.h>
#include "pinyin.h"
+void print_help(){
+ printf("Usage: gen_binary_files --table-dir <DIRNAME>\n");
+}
+
int main(int argc, char * argv[]){
+ int i = 1;
+ const char * table_dir = "../../data";
+
+ setlocale(LC_ALL, "");
+ while ( i < argc ){
+ if ( strcmp("--help", argv[i]) == 0 ){
+ print_help();
+ exit(0);
+ } else if ( strcmp("--table-dir", argv[i]) == 0){
+ if ( ++i >= argc ){
+ print_help();
+ exit(EINVAL);
+ }
+ table_dir = argv[i];
+ }
+ ++i;
+ }
+
/* generate pinyin index*/
PinyinCustomSettings custom;
PinyinLargeTable pinyinlargetable(&custom);
@@ -31,7 +54,10 @@ int main(int argc, char * argv[]){
/* generate phrase index */
FacadePhraseIndex phrase_index;
- FILE * gbfile = fopen("../../data/gb_char.table", "r");
+ gchar * filename = g_build_filename(table_dir, "gb_char.table", NULL);
+ FILE * gbfile = fopen(filename, "r");
+ g_free(filename);
+
if ( gbfile == NULL) {
fprintf(stderr, "open gb_char.table failed!");
exit(ENOENT);
@@ -45,9 +71,12 @@ int main(int argc, char * argv[]){
phrase_index.load_text(1, gbfile);
fclose(gbfile);
- FILE * gbkfile = fopen("../../data/gbk_char.table","r");
+ filename = g_build_filename(table_dir, "gbk_char.table", NULL);
+ FILE * gbkfile = fopen(filename, "r");
+ g_free(filename);
+
if ( gbkfile == NULL) {
- fprintf(stderr, "open gb_char.table failed!");
+ fprintf(stderr, "open gbk_char.table failed!");
exit(ENOENT);
}