mirror of https://github.com/GOSTSec/sgminer
Ycros
14 years ago
committed by
Con Kolivas
15 changed files with 1868 additions and 15 deletions
@ -0,0 +1,9 @@ |
|||||||
|
/Makefile.am |
||||||
|
/dummy.c |
||||||
|
/memchr.c |
||||||
|
/memchr.valgrind |
||||||
|
/memmem.c |
||||||
|
/stddef.in.h |
||||||
|
/stdint.in.h |
||||||
|
/str-two-way.h |
||||||
|
/string.in.h |
@ -0,0 +1,10 @@ |
|||||||
|
/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
|
||||||
|
that the values passed as arguments n, ..., m must be non-NULL pointers. |
||||||
|
n = 1 stands for the first argument, n = 2 for the second argument etc. */ |
||||||
|
#ifndef _GL_ARG_NONNULL |
||||||
|
# if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3 |
||||||
|
# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) |
||||||
|
# else |
||||||
|
# define _GL_ARG_NONNULL(params) |
||||||
|
# endif |
||||||
|
#endif |
@ -0,0 +1,255 @@ |
|||||||
|
#ifndef _GL_CXXDEFS_H |
||||||
|
#define _GL_CXXDEFS_H |
||||||
|
|
||||||
|
/* The three most frequent use cases of these macros are:
|
||||||
|
|
||||||
|
* For providing a substitute for a function that is missing on some |
||||||
|
platforms, but is declared and works fine on the platforms on which |
||||||
|
it exists: |
||||||
|
|
||||||
|
#if @GNULIB_FOO@ |
||||||
|
# if !@HAVE_FOO@ |
||||||
|
_GL_FUNCDECL_SYS (foo, ...); |
||||||
|
# endif |
||||||
|
_GL_CXXALIAS_SYS (foo, ...); |
||||||
|
_GL_CXXALIASWARN (foo); |
||||||
|
#elif defined GNULIB_POSIXCHECK |
||||||
|
... |
||||||
|
#endif |
||||||
|
|
||||||
|
* For providing a replacement for a function that exists on all platforms, |
||||||
|
but is broken/insufficient and needs to be replaced on some platforms: |
||||||
|
|
||||||
|
#if @GNULIB_FOO@ |
||||||
|
# if @REPLACE_FOO@ |
||||||
|
# if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
||||||
|
# undef foo |
||||||
|
# define foo rpl_foo |
||||||
|
# endif |
||||||
|
_GL_FUNCDECL_RPL (foo, ...); |
||||||
|
_GL_CXXALIAS_RPL (foo, ...); |
||||||
|
# else |
||||||
|
_GL_CXXALIAS_SYS (foo, ...); |
||||||
|
# endif |
||||||
|
_GL_CXXALIASWARN (foo); |
||||||
|
#elif defined GNULIB_POSIXCHECK |
||||||
|
... |
||||||
|
#endif |
||||||
|
|
||||||
|
* For providing a replacement for a function that exists on some platforms |
||||||
|
but is broken/insufficient and needs to be replaced on some of them and |
||||||
|
is additionally either missing or undeclared on some other platforms: |
||||||
|
|
||||||
|
#if @GNULIB_FOO@ |
||||||
|
# if @REPLACE_FOO@ |
||||||
|
# if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
||||||
|
# undef foo |
||||||
|
# define foo rpl_foo |
||||||
|
# endif |
||||||
|
_GL_FUNCDECL_RPL (foo, ...); |
||||||
|
_GL_CXXALIAS_RPL (foo, ...); |
||||||
|
# else |
||||||
|
# if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ |
||||||
|
_GL_FUNCDECL_SYS (foo, ...); |
||||||
|
# endif |
||||||
|
_GL_CXXALIAS_SYS (foo, ...); |
||||||
|
# endif |
||||||
|
_GL_CXXALIASWARN (foo); |
||||||
|
#elif defined GNULIB_POSIXCHECK |
||||||
|
... |
||||||
|
#endif |
||||||
|
*/ |
||||||
|
|
||||||
|
/* _GL_EXTERN_C declaration;
|
||||||
|
performs the declaration with C linkage. */ |
||||||
|
#if defined __cplusplus |
||||||
|
# define _GL_EXTERN_C extern "C" |
||||||
|
#else |
||||||
|
# define _GL_EXTERN_C extern |
||||||
|
#endif |
||||||
|
|
||||||
|
/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes);
|
||||||
|
declares a replacement function, named rpl_func, with the given prototype, |
||||||
|
consisting of return type, parameters, and attributes. |
||||||
|
Example: |
||||||
|
_GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) |
||||||
|
_GL_ARG_NONNULL ((1))); |
||||||
|
*/ |
||||||
|
#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ |
||||||
|
_GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) |
||||||
|
#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ |
||||||
|
_GL_EXTERN_C rettype rpl_func parameters_and_attributes |
||||||
|
|
||||||
|
/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes);
|
||||||
|
declares the system function, named func, with the given prototype, |
||||||
|
consisting of return type, parameters, and attributes. |
||||||
|
Example: |
||||||
|
_GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) |
||||||
|
_GL_ARG_NONNULL ((1))); |
||||||
|
*/ |
||||||
|
#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ |
||||||
|
_GL_EXTERN_C rettype func parameters_and_attributes |
||||||
|
|
||||||
|
/* _GL_CXXALIAS_RPL (func, rettype, parameters);
|
||||||
|
declares a C++ alias called GNULIB_NAMESPACE::func |
||||||
|
that redirects to rpl_func, if GNULIB_NAMESPACE is defined. |
||||||
|
Example: |
||||||
|
_GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); |
||||||
|
*/ |
||||||
|
#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ |
||||||
|
_GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) |
||||||
|
#if defined __cplusplus && defined GNULIB_NAMESPACE |
||||||
|
# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ |
||||||
|
namespace GNULIB_NAMESPACE \ |
||||||
|
{ \ |
||||||
|
rettype (*const func) parameters = ::rpl_func; \ |
||||||
|
} \ |
||||||
|
_GL_EXTERN_C int _gl_cxxalias_dummy |
||||||
|
#else |
||||||
|
# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ |
||||||
|
_GL_EXTERN_C int _gl_cxxalias_dummy |
||||||
|
#endif |
||||||
|
|
||||||
|
/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters);
|
||||||
|
is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); |
||||||
|
except that the C function rpl_func may have a slightly different |
||||||
|
declaration. A cast is used to silence the "invalid conversion" error |
||||||
|
that would otherwise occur. */ |
||||||
|
#if defined __cplusplus && defined GNULIB_NAMESPACE |
||||||
|
# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ |
||||||
|
namespace GNULIB_NAMESPACE \ |
||||||
|
{ \ |
||||||
|
rettype (*const func) parameters = \ |
||||||
|
reinterpret_cast<rettype(*)parameters>(::rpl_func); \ |
||||||
|
} \ |
||||||
|
_GL_EXTERN_C int _gl_cxxalias_dummy |
||||||
|
#else |
||||||
|
# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ |
||||||
|
_GL_EXTERN_C int _gl_cxxalias_dummy |
||||||
|
#endif |
||||||
|
|
||||||
|
/* _GL_CXXALIAS_SYS (func, rettype, parameters);
|
||||||
|
declares a C++ alias called GNULIB_NAMESPACE::func |
||||||
|
that redirects to the system provided function func, if GNULIB_NAMESPACE |
||||||
|
is defined. |
||||||
|
Example: |
||||||
|
_GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); |
||||||
|
*/ |
||||||
|
#if defined __cplusplus && defined GNULIB_NAMESPACE |
||||||
|
/* If we were to write
|
||||||
|
rettype (*const func) parameters = ::func; |
||||||
|
like above in _GL_CXXALIAS_RPL_1, the compiler could optimize calls |
||||||
|
better (remove an indirection through a 'static' pointer variable), |
||||||
|
but then the _GL_CXXALIASWARN macro below would cause a warning not only |
||||||
|
for uses of ::func but also for uses of GNULIB_NAMESPACE::func. */ |
||||||
|
# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ |
||||||
|
namespace GNULIB_NAMESPACE \ |
||||||
|
{ \ |
||||||
|
static rettype (*func) parameters = ::func; \ |
||||||
|
} \ |
||||||
|
_GL_EXTERN_C int _gl_cxxalias_dummy |
||||||
|
#else |
||||||
|
# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ |
||||||
|
_GL_EXTERN_C int _gl_cxxalias_dummy |
||||||
|
#endif |
||||||
|
|
||||||
|
/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters);
|
||||||
|
is like _GL_CXXALIAS_SYS (func, rettype, parameters); |
||||||
|
except that the C function func may have a slightly different declaration. |
||||||
|
A cast is used to silence the "invalid conversion" error that would |
||||||
|
otherwise occur. */ |
||||||
|
#if defined __cplusplus && defined GNULIB_NAMESPACE |
||||||
|
# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ |
||||||
|
namespace GNULIB_NAMESPACE \ |
||||||
|
{ \ |
||||||
|
static rettype (*func) parameters = \ |
||||||
|
reinterpret_cast<rettype(*)parameters>(::func); \ |
||||||
|
} \ |
||||||
|
_GL_EXTERN_C int _gl_cxxalias_dummy |
||||||
|
#else |
||||||
|
# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ |
||||||
|
_GL_EXTERN_C int _gl_cxxalias_dummy |
||||||
|
#endif |
||||||
|
|
||||||
|
/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2);
|
||||||
|
is like _GL_CXXALIAS_SYS (func, rettype, parameters); |
||||||
|
except that the C function is picked among a set of overloaded functions, |
||||||
|
namely the one with rettype2 and parameters2. Two consecutive casts |
||||||
|
are used to silence the "cannot find a match" and "invalid conversion" |
||||||
|
errors that would otherwise occur. */ |
||||||
|
#if defined __cplusplus && defined GNULIB_NAMESPACE |
||||||
|
/* The outer cast must be a reinterpret_cast.
|
||||||
|
The inner cast: When the function is defined as a set of overloaded |
||||||
|
functions, it works as a static_cast<>, choosing the designated variant. |
||||||
|
When the function is defined as a single variant, it works as a |
||||||
|
reinterpret_cast<>. The parenthesized cast syntax works both ways. */ |
||||||
|
# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ |
||||||
|
namespace GNULIB_NAMESPACE \ |
||||||
|
{ \ |
||||||
|
static rettype (*func) parameters = \ |
||||||
|
reinterpret_cast<rettype(*)parameters>( \ |
||||||
|
(rettype2(*)parameters2)(::func)); \ |
||||||
|
} \ |
||||||
|
_GL_EXTERN_C int _gl_cxxalias_dummy |
||||||
|
#else |
||||||
|
# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ |
||||||
|
_GL_EXTERN_C int _gl_cxxalias_dummy |
||||||
|
#endif |
||||||
|
|
||||||
|
/* _GL_CXXALIASWARN (func);
|
||||||
|
causes a warning to be emitted when ::func is used but not when |
||||||
|
GNULIB_NAMESPACE::func is used. func must be defined without overloaded |
||||||
|
variants. */ |
||||||
|
#if defined __cplusplus && defined GNULIB_NAMESPACE |
||||||
|
# define _GL_CXXALIASWARN(func) \ |
||||||
|
_GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) |
||||||
|
# define _GL_CXXALIASWARN_1(func,namespace) \ |
||||||
|
_GL_CXXALIASWARN_2 (func, namespace) |
||||||
|
/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
|
||||||
|
we enable the warning only when not optimizing. */ |
||||||
|
# if !__OPTIMIZE__ |
||||||
|
# define _GL_CXXALIASWARN_2(func,namespace) \ |
||||||
|
_GL_WARN_ON_USE (func, \ |
||||||
|
"The symbol ::" #func " refers to the system function. " \ |
||||||
|
"Use " #namespace "::" #func " instead.") |
||||||
|
# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING |
||||||
|
# define _GL_CXXALIASWARN_2(func,namespace) \ |
||||||
|
extern __typeof__ (func) func |
||||||
|
# else |
||||||
|
# define _GL_CXXALIASWARN_2(func,namespace) \ |
||||||
|
_GL_EXTERN_C int _gl_cxxalias_dummy |
||||||
|
# endif |
||||||
|
#else |
||||||
|
# define _GL_CXXALIASWARN(func) \ |
||||||
|
_GL_EXTERN_C int _gl_cxxalias_dummy |
||||||
|
#endif |
||||||
|
|
||||||
|
/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes);
|
||||||
|
causes a warning to be emitted when the given overloaded variant of ::func |
||||||
|
is used but not when GNULIB_NAMESPACE::func is used. */ |
||||||
|
#if defined __cplusplus && defined GNULIB_NAMESPACE |
||||||
|
# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ |
||||||
|
_GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ |
||||||
|
GNULIB_NAMESPACE) |
||||||
|
# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ |
||||||
|
_GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) |
||||||
|
/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
|
||||||
|
we enable the warning only when not optimizing. */ |
||||||
|
# if !__OPTIMIZE__ |
||||||
|
# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ |
||||||
|
_GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \ |
||||||
|
"The symbol ::" #func " refers to the system function. " \ |
||||||
|
"Use " #namespace "::" #func " instead.") |
||||||
|
# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING |
||||||
|
# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ |
||||||
|
extern __typeof__ (func) func |
||||||
|
# else |
||||||
|
# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ |
||||||
|
_GL_EXTERN_C int _gl_cxxalias_dummy |
||||||
|
# endif |
||||||
|
#else |
||||||
|
# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ |
||||||
|
_GL_EXTERN_C int _gl_cxxalias_dummy |
||||||
|
#endif |
||||||
|
|
||||||
|
#endif /* _GL_CXXDEFS_H */ |
@ -0,0 +1,46 @@ |
|||||||
|
#ifndef _GL_WARN_ON_USE |
||||||
|
|
||||||
|
# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) |
||||||
|
/* A compiler attribute is available in gcc versions 4.3.0 and later. */ |
||||||
|
# define _GL_WARN_ON_USE(function, message) \ |
||||||
|
extern __typeof__ (function) function __attribute__ ((__warning__ (message))) |
||||||
|
# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING |
||||||
|
/* Verify the existence of the function. */ |
||||||
|
# define _GL_WARN_ON_USE(function, message) \ |
||||||
|
extern __typeof__ (function) function |
||||||
|
# else /* Unsupported. */ |
||||||
|
# define _GL_WARN_ON_USE(function, message) \ |
||||||
|
_GL_WARN_EXTERN_C int _gl_warn_on_use |
||||||
|
# endif |
||||||
|
#endif |
||||||
|
|
||||||
|
/* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string")
|
||||||
|
is like _GL_WARN_ON_USE (function, "string"), except that the function is |
||||||
|
declared with the given prototype, consisting of return type, parameters, |
||||||
|
and attributes. |
||||||
|
This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does |
||||||
|
not work in this case. */ |
||||||
|
#ifndef _GL_WARN_ON_USE_CXX |
||||||
|
# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) |
||||||
|
# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ |
||||||
|
extern rettype function parameters_and_attributes \ |
||||||
|
__attribute__ ((__warning__ (msg))) |
||||||
|
# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING |
||||||
|
/* Verify the existence of the function. */ |
||||||
|
# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ |
||||||
|
extern rettype function parameters_and_attributes |
||||||
|
# else /* Unsupported. */ |
||||||
|
# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ |
||||||
|
_GL_WARN_EXTERN_C int _gl_warn_on_use |
||||||
|
# endif |
||||||
|
#endif |
||||||
|
|
||||||
|
/* _GL_WARN_EXTERN_C declaration;
|
||||||
|
performs the declaration with C linkage. */ |
||||||
|
#ifndef _GL_WARN_EXTERN_C |
||||||
|
# if defined __cplusplus |
||||||
|
# define _GL_WARN_EXTERN_C extern "C" |
||||||
|
# else |
||||||
|
# define _GL_WARN_EXTERN_C extern |
||||||
|
# endif |
||||||
|
#endif |
@ -0,0 +1,17 @@ |
|||||||
|
/00gnulib.m4 |
||||||
|
/extensions.m4 |
||||||
|
/gnulib-common.m4 |
||||||
|
/gnulib-comp.m4 |
||||||
|
/gnulib-tool.m4 |
||||||
|
/include_next.m4 |
||||||
|
/longlong.m4 |
||||||
|
/memchr.m4 |
||||||
|
/memmem.m4 |
||||||
|
/mmap-anon.m4 |
||||||
|
/multiarch.m4 |
||||||
|
/onceonly.m4 |
||||||
|
/stddef_h.m4 |
||||||
|
/stdint.m4 |
||||||
|
/string_h.m4 |
||||||
|
/warn-on-use.m4 |
||||||
|
/wchar_t.m4 |
@ -0,0 +1,35 @@ |
|||||||
|
# Copyright (C) 2002-2011 Free Software Foundation, Inc. |
||||||
|
# |
||||||
|
# This file is free software, distributed under the terms of the GNU |
||||||
|
# General Public License. As a special exception to the GNU General |
||||||
|
# Public License, this file may be distributed as part of a program |
||||||
|
# that contains a configuration script generated by Autoconf, under |
||||||
|
# the same distribution terms as the rest of that program. |
||||||
|
# |
||||||
|
# Generated by gnulib-tool. |
||||||
|
# |
||||||
|
# This file represents the specification of how gnulib-tool is used. |
||||||
|
# It acts as a cache: It is written and read by gnulib-tool. |
||||||
|
# In projects that use version control, this file is meant to be put under |
||||||
|
# version control, like the configure.ac and various Makefile.am files. |
||||||
|
|
||||||
|
|
||||||
|
# Specification in the form of a command-line invocation: |
||||||
|
# gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=. --no-conditional-dependencies --no-libtool --macro-prefix=gl memmem |
||||||
|
|
||||||
|
# Specification in the form of a few gnulib-tool.m4 macro invocations: |
||||||
|
gl_LOCAL_DIR([]) |
||||||
|
gl_MODULES([ |
||||||
|
memmem |
||||||
|
]) |
||||||
|
gl_AVOID([]) |
||||||
|
gl_SOURCE_BASE([lib]) |
||||||
|
gl_M4_BASE([m4]) |
||||||
|
gl_PO_BASE([]) |
||||||
|
gl_DOC_BASE([doc]) |
||||||
|
gl_TESTS_BASE([tests]) |
||||||
|
gl_LIB([libgnu]) |
||||||
|
gl_MAKEFILE_NAME([]) |
||||||
|
gl_MACRO_PREFIX([gl]) |
||||||
|
gl_PO_DOMAIN([]) |
||||||
|
gl_WITNESS_C_DOMAIN([]) |
@ -0,0 +1,162 @@ |
|||||||
|
#! /bin/sh |
||||||
|
# mkinstalldirs --- make directory hierarchy |
||||||
|
|
||||||
|
scriptversion=2009-04-28.21; # UTC |
||||||
|
|
||||||
|
# Original author: Noah Friedman <friedman@prep.ai.mit.edu> |
||||||
|
# Created: 1993-05-16 |
||||||
|
# Public domain. |
||||||
|
# |
||||||
|
# This file is maintained in Automake, please report |
||||||
|
# bugs to <bug-automake@gnu.org> or send patches to |
||||||
|
# <automake-patches@gnu.org>. |
||||||
|
|
||||||
|
nl=' |
||||||
|
' |
||||||
|
IFS=" "" $nl" |
||||||
|
errstatus=0 |
||||||
|
dirmode= |
||||||
|
|
||||||
|
usage="\ |
||||||
|
Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... |
||||||
|
|
||||||
|
Create each directory DIR (with mode MODE, if specified), including all |
||||||
|
leading file name components. |
||||||
|
|
||||||
|
Report bugs to <bug-automake@gnu.org>." |
||||||
|
|
||||||
|
# process command line arguments |
||||||
|
while test $# -gt 0 ; do |
||||||
|
case $1 in |
||||||
|
-h | --help | --h*) # -h for help |
||||||
|
echo "$usage" |
||||||
|
exit $? |
||||||
|
;; |
||||||
|
-m) # -m PERM arg |
||||||
|
shift |
||||||
|
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } |
||||||
|
dirmode=$1 |
||||||
|
shift |
||||||
|
;; |
||||||
|
--version) |
||||||
|
echo "$0 $scriptversion" |
||||||
|
exit $? |
||||||
|
;; |
||||||
|
--) # stop option processing |
||||||
|
shift |
||||||
|
break |
||||||
|
;; |
||||||
|
-*) # unknown option |
||||||
|
echo "$usage" 1>&2 |
||||||
|
exit 1 |
||||||
|
;; |
||||||
|
*) # first non-opt arg |
||||||
|
break |
||||||
|
;; |
||||||
|
esac |
||||||
|
done |
||||||
|
|
||||||
|
for file |
||||||
|
do |
||||||
|
if test -d "$file"; then |
||||||
|
shift |
||||||
|
else |
||||||
|
break |
||||||
|
fi |
||||||
|
done |
||||||
|
|
||||||
|
case $# in |
||||||
|
0) exit 0 ;; |
||||||
|
esac |
||||||
|
|
||||||
|
# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and |
||||||
|
# mkdir -p a/c at the same time, both will detect that a is missing, |
||||||
|
# one will create a, then the other will try to create a and die with |
||||||
|
# a "File exists" error. This is a problem when calling mkinstalldirs |
||||||
|
# from a parallel make. We use --version in the probe to restrict |
||||||
|
# ourselves to GNU mkdir, which is thread-safe. |
||||||
|
case $dirmode in |
||||||
|
'') |
||||||
|
if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then |
||||||
|
echo "mkdir -p -- $*" |
||||||
|
exec 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. |
||||||
|
test -d ./-p && rmdir ./-p |
||||||
|
test -d ./--version && rmdir ./--version |
||||||
|
fi |
||||||
|
;; |
||||||
|
*) |
||||||
|
if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && |
||||||
|
test ! -d ./--version; then |
||||||
|
echo "mkdir -m $dirmode -p -- $*" |
||||||
|
exec mkdir -m "$dirmode" -p -- "$@" |
||||||
|
else |
||||||
|
# Clean up after NextStep and OpenStep mkdir. |
||||||
|
for d in ./-m ./-p ./--version "./$dirmode"; |
||||||
|
do |
||||||
|
test -d $d && rmdir $d |
||||||
|
done |
||||||
|
fi |
||||||
|
;; |
||||||
|
esac |
||||||
|
|
||||||
|
for file |
||||||
|
do |
||||||
|
case $file in |
||||||
|
/*) pathcomp=/ ;; |
||||||
|
*) pathcomp= ;; |
||||||
|
esac |
||||||
|
oIFS=$IFS |
||||||
|
IFS=/ |
||||||
|
set fnord $file |
||||||
|
shift |
||||||
|
IFS=$oIFS |
||||||
|
|
||||||
|
for d |
||||||
|
do |
||||||
|
test "x$d" = x && continue |
||||||
|
|
||||||
|
pathcomp=$pathcomp$d |
||||||
|
case $pathcomp in |
||||||
|
-*) pathcomp=./$pathcomp ;; |
||||||
|
esac |
||||||
|
|
||||||
|
if test ! -d "$pathcomp"; then |
||||||
|
echo "mkdir $pathcomp" |
||||||
|
|
||||||
|
mkdir "$pathcomp" || lasterr=$? |
||||||
|
|
||||||
|
if test ! -d "$pathcomp"; then |
||||||
|
errstatus=$lasterr |
||||||
|
else |
||||||
|
if test ! -z "$dirmode"; then |
||||||
|
echo "chmod $dirmode $pathcomp" |
||||||
|
lasterr= |
||||||
|
chmod "$dirmode" "$pathcomp" || lasterr=$? |
||||||
|
|
||||||
|
if test ! -z "$lasterr"; then |
||||||
|
errstatus=$lasterr |
||||||
|
fi |
||||||
|
fi |
||||||
|
fi |
||||||
|
fi |
||||||
|
|
||||||
|
pathcomp=$pathcomp/ |
||||||
|
done |
||||||
|
done |
||||||
|
|
||||||
|
exit $errstatus |
||||||
|
|
||||||
|
# Local Variables: |
||||||
|
# mode: shell-script |
||||||
|
# sh-indentation: 2 |
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp) |
||||||
|
# time-stamp-start: "scriptversion=" |
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H" |
||||||
|
# time-stamp-time-zone: "UTC" |
||||||
|
# time-stamp-end: "; # UTC" |
||||||
|
# End: |
Loading…
Reference in new issue