File: cercs.m4

package info (click to toggle)
adios 1.3-11
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 7,376 kB
  • sloc: ansic: 48,186; sh: 9,682; cpp: 2,662; f90: 1,390; makefile: 895; python: 372; xml: 301
file content (256 lines) | stat: -rw-r--r-- 8,797 bytes parent folder | download | duplicates (6)
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
dnl  Mon Jan 28 13:01:16 EST 2008
dnl
dnl cercs_require_package(package, include_file, library_file)
dnl   either include file or library_file may be left off if not needed
dnl   this macro searches for the files using find_cercs_file().  If
dnl   found, it adds directory in which the found file resides to either 
dnl   CPPFLAGS (with a -I prefix)  or LDFLAGS (with a -L prefix)
dnl
AC_DEFUN([CERCS_REQUIRE_PACKAGE],
[
AC_REQUIRE([CERCS_SET_ARCHIVE])
AC_REQUIRE([CERCS_HAS_CYGPATH])
if test -z "$with_local_specified"; then
CERCS_REQUIRE_OTHER_PACKAGE($1,$2,$3)
else
CERCS_REQUIRE_OTHER_PACKAGE($1,$2,$3,1)
fi
])
dnl
dnl
AC_DEFUN([CERCS_REQUIRE_OTHER_PACKAGE],
[
AC_REQUIRE([CERCS_SET_ARCHIVE])
AC_REQUIRE([CERCS_HAS_CYGPATH])
AC_ARG_WITH(translit($1, `/',`_'), translit([  --with-$1=DIR	Where to find $1 package], `/',`_'))
define([with_translit], translit(with_$1, `/',`_'))
if test -n "$with_translit"; then
dnl
dnl if they did a with, kill the cache variables
dnl
translit(unset cercs_cv_$1_include_arg,  `/',`_')
translit(unset cercs_cv_$1_link_arg,  `/',`_')
if test `echo $with_translit | sed 's/\(.\).*/\1/g'` != "/"; then
with_translit=`pwd`/$with_translit
fi
fi
ifelse([$2], , ,
dnl
dnl  if arg2 (include_file) is specified
dnl
AC_MSG_CHECKING(needed include args for $1 package)
AC_CACHE_VAL(translit(cercs_cv_$1_include_arg, `/',`_'), 
[
ifelse([$4],1,[
search_list="$PWD/../$1 $PWD/../../$1 $PWD/../../../$1"
CERCS_SEARCH($search_list)
if test -n "$tmp_search_results"; then
cercs_tmp=$tmp_search_results
fi
],
CERCS_FIND_FILE($1, $2, cercs_tmp, $with_translit, include))
if test -n "$cercs_tmp" -a "$cercs_tmp" != "/usr/include/$2"; then
translit(cercs_cv_$1_include_arg, `/',`_')=-I`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s#.$2##g"`
fi
])
AC_MSG_RESULT(translit($cercs_cv_$1_include_arg, `/',`_'))
dnl
dnl  add the result to CPPFLAGS if it is absent
dnl
translit(if test -n "$cercs_cv_$1_include_arg"; then, `/',`_')
translit(arg="$cercs_cv_$1_include_arg", `/',`_')
no_dash_arg=`echo $arg | sed 's/^-//g'`
[if test `echo $DT_CPPFLAGS | grep -c "$no_dash_arg"` -eq 0; then
if test `echo $arg | grep -c "$1"` -eq 0; then
DT_CPPFLAGS="$DT_CPPFLAGS $arg";
else
DT_CPPFLAGS="$arg $DT_CPPFLAGS"
fi
fi]
fi
)
ifelse([$3], , ,
dnl
dnl  if arg3 (library_file) is specified
dnl
AC_MSG_CHECKING(needed link args for $1 package)
AC_CACHE_VAL(translit(cercs_cv_$1_link_dir,  `/',`_'), 
[
ifelse([$4],1,[
search_list="$PWD/../$1 $PWD/../../$1 $PWD/../../../$1"
CERCS_SEARCH($search_list)
if test -n "$tmp_search_results"; then
cercs_tmp=$tmp_search_results
fi
],
CERCS_FIND_FILE($1, $3, cercs_tmp, $with_translit, lib))
if test -n "$cercs_tmp" -a "$cercs_tmp" != "$3"; then
translit(cercs_cv_$1_link_dir, `/',`_')=`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s/.$3//g"`
else
translit(cercs_cv_$1_link_dir="",  `/',`_')
fi
])
AC_MSG_RESULT(translit($cercs_cv_$1_link_dir, `/',`_'))
ld_arg="-L"
new_flags=$LDFLAGS
dnl
dnl  add the result to LDFLAGS if it is absent
dnl
translit(cercs_cv_$1_link_arg=`echo $cercs_cv_$1_link_dir, `/',`_') | sed "/./ s/^/$ld_arg/1"`
translit(if test -n "$cercs_cv_$1_link_arg"; then, `/',`_')
translit(arg=$cercs_cv_$1_link_arg, `/',`_')
no_dash_arg=`echo $arg | sed 's/^-//g'`
[if test `echo $new_flags | grep -c "$no_dash_arg"` -eq 0; then
root=`echo $3 | sed 's/\..*//'`
translit(if test ! -r $cercs_cv_$1_link_dir, `/`, `_`)/$root.la; then
if eval "test \"\${LIBTOOL+set}\" = set"; then
translit(arg="$cercs_cv_$1_link_arg "`echo $cercs_cv_$1_link_dir, `/',`_') | sed "/./ s/^/-R/1"`
fi
fi
if test `echo $arg | grep -c "$1"` -eq 0; then
dnl if arg does not includes a project spec add it at the end
new_flags="$new_flags $arg"
else
new_flags="$arg $new_flags"
fi
fi]
DT_LDFLAGS=$new_flags
fi
)
])dnl
dnl
dnl cercs_find_file(package, file_to_find, variable_to_set, suggestion, dir_name)
dnl    search a set of standard directories to find file_to_find.  When found,
dnl    set $variable_to_set to the path of the file.  Use package and
dnl    suggestions to help search.  Mostly this searches ~chaos (if it exists)
dnl    and the usual suspects like:
dnl    /usr/{include,lib} /usr/local/{include,lib} /opt/<package>/{include,lib}
dnl    /opt/misc/{include,lib}.
dnl
AC_DEFUN([CERCS_FIND_FILE],
[
AC_REQUIRE([CERCS_HAS_CSH])
AC_REQUIRE([CERCS_SET_ARCHIVE])
$3=""
search_list="./$2"
CHAOS_HOMEDIR=""
if test -n "$CSH"; then
CHAOS_HOMEDIR=`echo "echo ~chaos" | csh -sf  2>/dev/null | sed 's%/$%%'` || CHAOS_HOMEDIR=""
fi
if test -n "$4"; then
if test `echo $4 | cut -c1` = "~"; then
EXPANDED=`echo "echo $4" | csh -sf 2>/dev/null` || EXPANDED=""
else
EXPANDED=$4
fi

echo "Datatap = $datatap_dir"

search_list="$datatap_dir/$2 $datatap_dir/lib/$2 $datatap_dir/include/$2 $search_list $EXPANDED/$2 $EXPANDED/$5/$2 $EXPANDED/share/$2 $EXPANDED/$cercs_cv_archive/$2 $EXPANDED/$cercs_cv_archive/$5/$2 $EXPANDED/$1/$2 $EXPANDED/$1/$cercs_cv_archive/$2 $EXPANDED/$1/$5/$2 $EXPANDED/$1/$5/$cercs_cv_archive/$2"
fi
if test -z "$with_installed_specified"; then
search_list="$search_list `pwd`/../$1/$2 `pwd`/../$5/$2 `pwd`/../share/$2"
if test "$CHAOS_HOMEDIR" != "$HOME"; then
search_list="$search_list $HOME/$1/$2 $HOME/$cercs_cv_archive/$5/$2 $HOME/$5/$2"
fi
fi
if test -n "$CHAOS_HOMEDIR" -a -n "$cercs_cv_archive"; then
search_list="$search_list $CHAOS_HOMEDIR/$cercs_cv_archive/$1/$5/$2 $CHAOS_HOMEDIR/$cercs_cv_archive/$5/$2 $CHAOS_HOMEDIR/$1/$cercs_cv_archive/$5/$2 $CHAOS_HOMEDIR/$1/$5/$2 $CHAOS_HOMEDIR/$5/$2"
fi
if test "$libdir" != '${exec_prefix}/lib'; then
tmpdir=`echo ${libdir} |  sed 's%/$%%'` 
search_list="$tmpdir/$2 $search_list"
fi
if test "$exec_prefix" != "NONE"; then
tmpdir=`echo ${exec_prefix} |  sed 's%/$%%'` 
search_list="$tmpdir/lib/$2 $search_list"
fi
if test "$includedir" != '${prefix}/include'; then
tmpdir=`echo ${includedir} |  sed 's%/$%%'` 
search_list="$tmpdir/$2 $search_list"
fi
if test "$prefix" != "NONE"; then
tmpdir=`echo ${prefix} |  sed 's%/$%%'` 
search_list="$tmpdir/$5/$2 $search_list"
fi
if test "$5" == "lib"; then
  for tmp_lib_value in $sys_lib_search_path_spec; do
     search_list="$search_list $tmp_lib_value/$2"
  done
fi

search_list="$datatap_dir/$2 $datatap_dir/lib/$2 $datatap_dir/include/$2 $search_list /usr/$5/$2 /usr/local/$5/$2 /opt/$1/$5/$2 /opt/misc/$5/$2 /opt/misc/$5/$cercs_cv_archive/$2"
CERCS_SEARCH($search_list)
if test -n "$tmp_search_results"; then
$3=$tmp_search_results
fi
])dnl
AC_DEFUN([CERCS_SET_INSTALLED],[AC_ARG_WITH(installed, [  --with-installed        Don't use local copies of CERCS packages],with_installed_specified=1)])
AC_DEFUN([CERCS_SET_LOCAL],[AC_ARG_WITH(local, [  --with-local            Use only local copies of CERCS packages],with_local_specified=1)])
dnl
dnl CERCS_SET_ARCHIVE()
dnl   set the $cercs_cv_machine_target variable to a standard archive name
dnl
AC_DEFUN([CERCS_SET_ARCHIVE],[
AC_REQUIRE([CERCS_SET_INSTALLED])
AC_REQUIRE([CERCS_SET_LOCAL])
AC_REQUIRE([CERCS_HAS_CSH])
CHAOS_HOMEDIR=""
if test -n "$CSH"; then
CHAOS_HOMEDIR=`echo "echo ~chaos" | csh -sf  2>/dev/null | sed 's%/$%%'` || CHAOS_HOMEDIR=""
fi
if test "$cross_compiling" = yes ; then
  cpu=$host_cpu
  vendor=$host_vendot
  os=$host_os
else
  cpu=
  vendor=
  os=
fi
if test -x $CHAOS_HOMEDIR/bin/cercs_arch; then
cercs_cv_archive=`$CHAOS_HOMEDIR/bin/cercs_arch "$cpu" "$vendor" "$os"`
else
cercs_cv_archive=${cercs_cv_archive-`cercs_arch 2>/dev/null`} || cercs_cv_archive=""
fi
])dnl
dnl
dnl  CERCS_SEARCH(variable to define, options to try)
define(CERCS_SEARCH,
[tmp_search_results=""
echo "configure:__oline__: searching for $1 " >&5
for tmp_search_value in $1; do 
   if test -r $tmp_search_value; then 
	tmp_search_results=$tmp_search_value
	echo "configure:__oline__: first found $tmp_search_results " >&5
	break
   fi 
done
])dnl
dnl
dnl
dnl CERCS_LIB_PREFIX
dnl  this macro tries to set a reasonable default for the prefix value
dnl  call with two arguments, project name and library name
dnl
AC_DEFUN([CERCS_LIB_PREFIX],
[if test "x$prefix" = xNONE; then
AC_REQUIRE([CERCS_SET_ARCHIVE])
search_list=""
CHAOS_HOMEDIR=""
if test -n "$CSH"; then
CHAOS_HOMEDIR=`echo "echo ~chaos" | csh -sf  2>/dev/null | sed 's%/$%%'` || CHAOS_HOMEDIR=""
fi
if test -n "$CHAOS_HOMEDIR"; then
search_list="$search_list $CHAOS_HOMEDIR/$cercs_cv_archive/lib/$2 $CHAOS_HOMEDIR/lib/$2"
fi
search_list="$search_list /usr/lib/$2 /usr/local/lib/$2 /opt/$1/lib/$2 /opt/misc/lib/$2"
CERCS_SEARCH($search_list)
if test -n "$tmp_search_results"; then
    prefix=`echo $tmp_search_results|sed "s%$cercs_cv_archive/lib/$2%%g;s%lib/$2%%g;s%/[^/][^/]*//*[^/][^/]*$%%"`
    exec_prefix=`echo $tmp_search_results|sed 's%lib/$2%%g;s%/[^/][^/]*//*[^/][^/]*$%%'`
fi
fi
])dnl
AC_DEFUN([CERCS_HAS_CSH], [AC_PATH_PROG(CSH,csh)])dnl
AC_DEFUN([CERCS_HAS_CYGPATH], [AC_CHECK_PROG(PATHPROG,cygpath,[cygpath -w],[echo])])dnl