Markus Neteler wrote:
> > configure is autogenerated from configure.in by autoconf-2.13
> > So, the file configure.in has to be worked on, not configure.
> > Unfortunately a macro seems to be
> > missing for the .../share/ stuff, that's why this damn hack is needed.
>
> So do we need a LOC_ARG_WITH_SHARE macro to go with the
> LOC_ARG_WITH_{INC,LIB} macros? I.e.:
>
> aclocal.m4:
>
> AC_DEFUN(LOC_ARG_WITH_SHARE,[
> AC_ARG_WITH($1-share,
> LOC_PAD([ --with-$1-share=DIRS])[$2 data files are in DIRS])
> ])
Actually, this needs to be a single directory, unless the code which
locates the file can handle a list of directories. So:
AC_DEFUN(LOC_ARG_WITH_SHARE,[
AC_ARG_WITH($1-share,
LOC_PAD([ --with-$1-share=DIR])[$2 data files are in DIR])
])
Note that, unlike headers/libraries, where the compiler/linker has a
default search path, the default value (the empty string) isn't much
use; the option has to be specified explicitly for the file to be
found.
> configure.in:
>
> LOC_ARG_WITH_SHARE(proj, External PROJ.4)
Thanks for your help! Do we probably also need to define
LOC_CHECK_SHARE_PATH(proj,External PROJ.4,PROJSHARE)
Definitely; it's needed to actually read the option value.
LOC_CHECK_SHARE(epsg,External PROJ.4,$PROJSHARE)
Probably a good idea, although the file isn't needed until run-time
(AFAIK), so the test isn't critical.
Also, if it's possible to use GRASS at all without that file, it
should use the 4th argument to generate a warning (the default is a
fatal error), e.g.:
LOC_CHECK_SHARE(epsg,External PROJ.4,$PROJSHARE,[
AC_MSG_WARN([*** Unable to locate PROJ data files.])
])
If not, I don't know how to figure out PROJSHARE (which I then need in
include/Make/Platform.make[.in]. If yes, would you mind to write those?
AC_DEFUN(LOC_CHECK_SHARE_PATH,[
AC_MSG_CHECKING(for location of $2 data files)
case "$with_$1_share" in
y | ye | yes | n | no)
AC_MSG_ERROR([*** You must supply a directory to --with-$1-share.])
;;
esac
AC_MSG_RESULT($with_$1_share)
if test -n "$with_$1_share" ; then
if test -d "$with_$1_share"; then
$3="$$3 -I$dir"
else
AC_MSG_ERROR([*** $2 data directory $dir does not exist.])
fi
fi
])
AC_DEFUN(LOC_CHECK_SHARE,[
AC_CHECK_FILE($3/$1, , ifelse($4,,[
AC_MSG_ERROR([*** Unable to locate $2 data files.])
], $4))
])
--
Glynn Clements <glynn@gclements.plus.com>