Edit

kc3-lang/automake/m4/mkdirp.m4

Branch :

  • Show log

    Commit

  • Author : Alexandre Duret-Lutz
    Date : 2004-07-25 21:34:41
    Hash : 55846d15
    Message : * m4/mkdirp.m4 (AM_PROG_MKDIR_P): Remove `.' from the mkdir_p definition, it causes `make install' to fails for user with no right to write in the source-tree. * automake.in (handle_configure): Do not use mkdir_p in the definition for $(mkdir_p). Report from Harlan Stenn.

  • m4/mkdirp.m4
  • # AM_PROG_MKDIR_P
    # ---------------
    # Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
    
    # Copyright (C) 2003, 2004 Free Software Foundation, Inc.
    
    # This program is free software; you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation; either version 2, or (at your option)
    # any later version.
    
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    # GNU General Public License for more details.
    
    # You should have received a copy of the GNU General Public License
    # along with this program; if not, write to the Free Software
    # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    # 02111-1307, USA.
    
    # Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
    # created by `make install' are always world readable, even if the
    # installer happens to have an overly restrictive umask (e.g. 077).
    # This was a mistake.  There are at least two reasons why we must not
    # use `-m 0755':
    #   - it causes special bits like SGID to be ignored,
    #   - it may be too restrictive (some setups expect 775 directories).
    #
    # Do not use -m 0755 and let people choose whatever they expect by
    # setting umask.
    #
    # We cannot accept any implementation of `mkdir' that recognizes `-p'.
    # Some implementations (such as Solaris 8's) are not thread-safe: if a
    # parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
    # concurrently, both version can detect that a/ is missing, but only
    # one can create it and the other will error out.  Consequently we
    # restrict ourselves to GNU make (using the --version option ensures
    # this.)
    AC_DEFUN([AM_PROG_MKDIR_P],
    [if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
      # We used to keeping the `.' as first argument, in order to
      # allow $(mkdir_p) to be used without argument.  As in
      #   $(mkdir_p) $(somedir)
      # where $(somedir) is conditionally defined.  However this is wrong
      # for two reasons:
      #  1. if the package is installed by a user who cannot write `.'
      #     make install will fail,
      #  2. the above comment should most certainly read
      #     $(mkdir_p) $(DESTDIR)$(somedir)
      #     so it does not work when $(somedir) is undefined and
      #     $(DESTDIR) is not.
      #  To support the latter case, we have to write
      #     test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
      #  so the `.' trick is pointless.
      mkdir_p='mkdir -p --'
    else
      # On NextStep and OpenStep, the `mkdir' command does not
      # recognize any option.  It will interpret all options as
      # directories to create, and then abort because `.' already
      # exists.
      for d in ./-p ./--version;
      do
        test -d $d && rmdir $d
      done
      # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
      if test -f "$ac_aux_dir/mkinstalldirs"; then
        mkdir_p='$(mkinstalldirs)'
      else
        mkdir_p='$(install_sh) -d'
      fi
    fi
    AC_SUBST([mkdir_p])])