1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
# if not 1, append datestamp to the version number.
m4_define([libpinyin_released], [1])
m4_define([libpinyin_major_version], [1])
m4_define([libpinyin_minor_version], [7])
m4_define([libpinyin_micro_version], [0])
m4_define(libpinyin_maybe_datestamp,
m4_esyscmd([if test x]libpinyin_released[ != x1; then date +.%Y%m%d | tr -d '\n\r'; fi]))
m4_define([libpinyin_abi_current], [10])
m4_define([libpinyin_abi_revision], [0])
m4_define([libpinyin_version],
libpinyin_major_version.libpinyin_minor_version.libpinyin_micro_version[]libpinyin_maybe_datestamp)
m4_define([libpinyin_binary_version],
[libpinyin_abi_current.libpinyin_abi_revision])
AC_PREREQ(2.60)
AC_INIT([libpinyin], [libpinyin_version], [https://github.com/libpinyin/libpinyin/issues/new])
AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([config.h.in])
AC_CONFIG_HEADER([config.h])
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
# Define a string for binary compatibility
m4_define([lt_current], [libpinyin_abi_current])
m4_define([lt_revision], [libpinyin_abi_revision])
LT_VERSION_INFO="lt_current:lt_revision"
AC_SUBST(LT_VERSION_INFO)
LIBPINYIN_BINARY_VERSION="libpinyin_binary_version"
AC_SUBST(LIBPINYIN_BINARY_VERSION)
# Checks for programs.
AC_PROG_CXX
AC_PROG_CC
AC_PROG_CPP
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET
AC_GNU_SOURCE
AX_CXX_COMPILE_STDCXX([11])
# Init libtool
AC_PROG_LIBTOOL
AC_SUBST(LIBTOOL_DEPS)
# libtool option to control which symbols are exported
# right now, symbols starting with _ are not exported
LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"'
AC_SUBST(LIBTOOL_EXPORT_OPTIONS)
# Checks for libraries.
PKG_CHECK_MODULES(GLIB2, [glib-2.0 >= 2.4.0])
# Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS([locale.h stdlib.h string.h sys/time.h unistd.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STDBOOL
AC_C_CONST
AC_C_INLINE
AC_TYPE_SIZE_T
AC_HEADER_TIME
# Checks for library functions.
AC_FUNC_MALLOC
AC_FUNC_MEMCMP
AC_FUNC_REALLOC
AC_FUNC_STAT
AC_FUNC_MMAP
AC_CHECK_FUNCS([gettimeofday memmove memset setlocale])
AC_CHECK_HEADERS([libintl.h string.h])
# Check Berkeley DB or Kyoto Cabinet
DBM="BerkeleyDB"
AC_ARG_WITH(dbm,
AS_HELP_STRING([--with-dbm[=NAME]],
[Select BerkeleyDB or KyotoCabinet]),
[DBM=$with_dbm], []
)
if test x"$DBM" = x"BerkeleyDB"; then
# Check Berkeley DB
AC_CHECK_HEADER([db.h], [], AC_MSG_ERROR([Cannot find Berkeley DB library version 4]))
AC_SEARCH_LIBS([db_create], [db], [], AC_MSG_ERROR([Cannot find Berkeley DB library version 4]))
AC_DEFINE([HAVE_BERKELEY_DB], [], [Have Berkeley DB.])
fi
AM_CONDITIONAL([BERKELEYDB], [test x"$DBM" = x"BerkeleyDB"])
if test x"$DBM" = x"KyotoCabinet"; then
# Check Kyoto Cabinet
PKG_CHECK_MODULES(KYOTOCABINET, [kyotocabinet], [])
AC_SEARCH_LIBS([kcdbopen], [kyotocabinet], [], AC_MSG_ERROR([Cannot find Kyoto Cabinet library]))
AC_DEFINE([HAVE_KYOTO_CABINET], [], [Have Kyoto Cabinet.])
fi
AM_CONDITIONAL([KYOTOCABINET], [test x"$DBM" = x"KyotoCabinet"])
AC_CONFIG_FILES([libpinyin.pc
libpinyin.spec
Makefile
doc/Makefile
data/Makefile
src/Makefile
src/include/Makefile
src/storage/Makefile
src/lookup/Makefile
tests/Makefile
tests/include/Makefile
tests/storage/Makefile
tests/lookup/Makefile
utils/Makefile
utils/storage/Makefile
utils/segment/Makefile
utils/training/Makefile
])
AC_OUTPUT
AC_MSG_RESULT([
Build options:
Version $VERSION
Install prefix $prefix
DBM $DBM
])
|