Imported Upstream version 3.2.0
[debian/amanda] / config / gnulib / dos.m4
1 #serial 11   -*- autoconf -*-
2
3 # Define some macros required for proper operation of code in lib/*.c
4 # on MSDOS/Windows systems.
5
6 # Copyright (C) 2000-2001, 2004-2006, 2009-2010 Free Software Foundation, Inc.
7 # This file is free software; the Free Software Foundation
8 # gives unlimited permission to copy and/or distribute it,
9 # with or without modifications, as long as this notice is preserved.
10
11 # From Jim Meyering.
12
13 AC_DEFUN([gl_AC_DOS],
14   [
15     AC_CACHE_CHECK([whether system is Windows or MSDOS], [ac_cv_win_or_dos],
16       [
17         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[
18 #if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __CYGWIN__
19 neither MSDOS nor Windows
20 #endif]])],
21         [ac_cv_win_or_dos=yes],
22         [ac_cv_win_or_dos=no])
23       ])
24
25     if test x"$ac_cv_win_or_dos" = xyes; then
26       ac_fs_accepts_drive_letter_prefix=1
27       ac_fs_backslash_is_file_name_separator=1
28       AC_CACHE_CHECK([whether drive letter can start relative path],
29                      [ac_cv_drive_letter_can_be_relative],
30         [
31           AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[
32 #if defined __CYGWIN__
33 drive letters are always absolute
34 #endif]])],
35           [ac_cv_drive_letter_can_be_relative=yes],
36           [ac_cv_drive_letter_can_be_relative=no])
37         ])
38       if test x"$ac_cv_drive_letter_can_be_relative" = xyes; then
39         ac_fs_drive_letter_can_be_relative=1
40       else
41         ac_fs_drive_letter_can_be_relative=0
42       fi
43     else
44       ac_fs_accepts_drive_letter_prefix=0
45       ac_fs_backslash_is_file_name_separator=0
46       ac_fs_drive_letter_can_be_relative=0
47     fi
48
49     AC_DEFINE_UNQUOTED([FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX],
50       $ac_fs_accepts_drive_letter_prefix,
51       [Define on systems for which file names may have a so-called
52        `drive letter' prefix, define this to compute the length of that
53        prefix, including the colon.])
54
55     AH_VERBATIM(ISSLASH,
56     [#if FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR
57 # define ISSLASH(C) ((C) == '/' || (C) == '\\')
58 #else
59 # define ISSLASH(C) ((C) == '/')
60 #endif])
61
62     AC_DEFINE_UNQUOTED([FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR],
63       $ac_fs_backslash_is_file_name_separator,
64       [Define if the backslash character may also serve as a file name
65        component separator.])
66
67     AC_DEFINE_UNQUOTED([FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE],
68       $ac_fs_drive_letter_can_be_relative,
69       [Define if a drive letter prefix denotes a relative path if it is
70        not followed by a file name component separator.])
71   ])