Commit | Line | Data |
---|---|---|
caf8a9b2 | 1 | # serial 6 |
ae0d7250 PE |
2 | # See if we need to provide symlink replacement. |
3 | ||
ab422c4d | 4 | dnl Copyright (C) 2009-2013 Free Software Foundation, Inc. |
ae0d7250 PE |
5 | dnl This file is free software; the Free Software Foundation |
6 | dnl gives unlimited permission to copy and/or distribute it, | |
7 | dnl with or without modifications, as long as this notice is preserved. | |
8 | ||
9 | # Written by Eric Blake. | |
10 | ||
11 | AC_DEFUN([gl_FUNC_SYMLINK], | |
12 | [ | |
13 | AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) | |
caf8a9b2 | 14 | AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles |
ae0d7250 PE |
15 | AC_CHECK_FUNCS_ONCE([symlink]) |
16 | dnl The best we can do on mingw is provide a dummy that always fails, so | |
17 | dnl that compilation can proceed with fewer ifdefs. On FreeBSD 7.2, AIX 7.1, | |
18 | dnl and Solaris 9, we want to fix a bug with trailing slash handling. | |
19 | if test $ac_cv_func_symlink = no; then | |
20 | HAVE_SYMLINK=0 | |
ae0d7250 PE |
21 | else |
22 | AC_CACHE_CHECK([whether symlink handles trailing slash correctly], | |
23 | [gl_cv_func_symlink_works], | |
24 | [AC_RUN_IFELSE( | |
25 | [AC_LANG_PROGRAM( | |
26 | [[#include <unistd.h> | |
27 | ]], | |
28 | [[int result = 0; | |
29 | if (!symlink ("a", "conftest.link/")) | |
30 | result |= 1; | |
31 | if (symlink ("conftest.f", "conftest.lnk2")) | |
32 | result |= 2; | |
33 | else if (!symlink ("a", "conftest.lnk2/")) | |
34 | result |= 4; | |
35 | return result; | |
36 | ]])], | |
37 | [gl_cv_func_symlink_works=yes], [gl_cv_func_symlink_works=no], | |
caf8a9b2 PE |
38 | [case "$host_os" in |
39 | # Guess yes on glibc systems. | |
40 | *-gnu*) gl_cv_func_symlink_works="guessing yes" ;; | |
41 | # If we don't know, assume the worst. | |
42 | *) gl_cv_func_symlink_works="guessing no" ;; | |
43 | esac | |
44 | ]) | |
ae0d7250 | 45 | rm -f conftest.f conftest.link conftest.lnk2]) |
caf8a9b2 PE |
46 | case "$gl_cv_func_symlink_works" in |
47 | *yes) ;; | |
48 | *) | |
49 | REPLACE_SYMLINK=1 | |
50 | ;; | |
51 | esac | |
ae0d7250 PE |
52 | fi |
53 | ]) |