1
# GA_ARG_PARSE(ARG, VAR_LIBS, VAR_LDFLAGS, VAR_CPPFLAGS)
2
# ------------------------------------------------------
3
# Parse whitespace-separated ARG into appropriate LIBS, LDFLAGS, and
5
# some examples (not exhaustive):
6
# $arg="/apps/mpi/hp/2.03.01.00/include/64 /apps/mpi/hp/2.03.01.00/lib/linux_amd64 -lmtmpi"
8
# $arg="-I/usr/local/include -L/usr/local/lib -lsomelib"
9
# $arg="/usr/lib/mpich-shmem -lfmpich-shmem -lmpich-shmem -lpmpich-shmem"
10
# $arg="/usr/lib/mpich-shmem/include /usr/lib/mpich-shmem/lib -lfmpich-shmem -lmpich-shmem -lpmpich-shmem"
11
# $arg="/usr/local/lib64 /usr/local/include64"
12
AC_DEFUN([GA_ARG_PARSE],
13
[AC_COMPUTE_INT([ga_arg_parse_sizeof_voidp], [(long int) (sizeof (void*))])
18
[-l*], [$2="$$2 $arg"],
19
[-L*], [$3="$$3 $arg"],
20
[-WL*], [$3="$$3 $arg"],
21
[-Wl*], [$3="$$3 $arg"],
22
[-I*], [$4="$$4 $arg"],
23
[*.a], [$2="$$2 $arg"],
24
[*.so], [$2="$$2 $arg"],
25
[*lib], [AS_IF([test -d $arg], [$3="$$3 -L$arg"],
26
[AC_MSG_WARN([$arg of $1 not parsed])])],
27
[*lib/], [AS_IF([test -d $arg], [$3="$$3 -L$arg"],
28
[AC_MSG_WARN([$arg of $1 not parsed])])],
29
[*lib64], [AS_IF([test -d $arg], [$3="$$3 -L$arg"],
30
[AC_MSG_WARN([$arg of $1 not parsed])])],
31
[*lib64/], [AS_IF([test -d $arg], [$3="$$3 -L$arg"],
32
[AC_MSG_WARN([$arg of $1 not parsed])])],
33
[*include], [AS_IF([test -d $arg], [$4="$$4 -I$arg"],
34
[AC_MSG_WARN([$arg of $1 not parsed])])],
35
[*include/], [AS_IF([test -d $arg], [$4="$$4 -I$arg"],
36
[AC_MSG_WARN([$arg of $1 not parsed])])],
37
[*include64], [AS_IF([test -d $arg], [$4="$$4 -I$arg"],
38
[AC_MSG_WARN([$arg of $1 not parsed])])],
39
[*include64/], [AS_IF([test -d $arg], [$4="$$4 -I$arg"],
40
[AC_MSG_WARN([$arg of $1 not parsed])])],
42
# $arg didn't fit the most common cases
43
# check for subdirectories e.g. lib,include
44
AS_IF([test "x$ga_arg_parse_ok" = xno],
45
[AS_IF([test "x$ga_arg_parse_sizeof_voidp" = x8],
46
[AS_IF([test -d $arg/lib64], [$3="$$3 -L$arg/lib64"; ga_arg_parse_ok=yes],
47
[test -d $arg/lib], [$3="$$3 -L$arg/lib"; ga_arg_parse_ok=yes])
48
AS_IF([test -d $arg/include64],[$4="$$4 -I$arg/include64"; ga_arg_parse_ok=yes],
49
[test -d $arg/include], [$4="$$4 -I$arg/include"; ga_arg_parse_ok=yes])],
50
[AS_IF([test -d $arg/lib], [$3="$$3 -L$arg/lib"; ga_arg_parse_ok=yes])
51
AS_IF([test -d $arg/include], [$4="$$4 -I$arg/include"; ga_arg_parse_ok=yes])])])
52
# $arg still unknown, look for "lib" and "include" anywhere...
53
AS_IF([test "x$ga_arg_parse_ok" = xno],
55
[*lib*], [AS_IF([test -d $arg], [$3="$$3 -L$arg"; ga_arg_parse_ok=yes])],
56
[*include*],[AS_IF([test -d $arg], [$4="$$4 -I$arg"; ga_arg_parse_ok=yes])])])
57
# warn user that $arg fell through
58
AS_IF([test "x$ga_arg_parse_ok" = xno],
59
[AC_MSG_WARN([$arg of $1 not parsed])])