MAINTAINERCLEANFILES = Makefile.in
-EXTRA_DIST = $(textual_model_data) \
- $(binary_model_data)
+EXTRA_DIST = $(textual_model_data)
libpinyin_db_DATA = $(binary_model_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 -
*/
#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);
/* 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);
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);
}