mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-12-22 20:57:53 +00:00
parallel: Implemented --profile. Untested.
This commit is contained in:
parent
05eae86b69
commit
ea0dfc913e
4
aclocal.m4
vendored
4
aclocal.m4
vendored
|
@ -13,8 +13,8 @@
|
|||
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],,
|
||||
[m4_warning([this file was generated for autoconf 2.67.
|
||||
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],,
|
||||
[m4_warning([this file was generated for autoconf 2.65.
|
||||
You have another version of autoconf. It may work, but is not guaranteed to.
|
||||
If you have problems, you may need to regenerate the build system entirely.
|
||||
To do so, use the procedure documented by the package, typically `autoreconf'.])])
|
||||
|
|
249
configure
vendored
249
configure
vendored
|
@ -1,13 +1,13 @@
|
|||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.67 for parallel 20100922.
|
||||
# Generated by GNU Autoconf 2.65 for parallel 20100922.
|
||||
#
|
||||
# Report bugs to <bug-parallel@gnu.org>.
|
||||
#
|
||||
#
|
||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
|
||||
# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
|
||||
# Foundation, Inc.
|
||||
# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
#
|
||||
#
|
||||
# This configure script is free software; the Free Software Foundation
|
||||
|
@ -318,7 +318,7 @@ $as_echo X"$as_dir" |
|
|||
test -d "$as_dir" && break
|
||||
done
|
||||
test -z "$as_dirs" || eval "mkdir $as_dirs"
|
||||
} || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
|
||||
} || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
|
||||
|
||||
|
||||
} # as_fn_mkdir_p
|
||||
|
@ -358,19 +358,19 @@ else
|
|||
fi # as_fn_arith
|
||||
|
||||
|
||||
# as_fn_error STATUS ERROR [LINENO LOG_FD]
|
||||
# ----------------------------------------
|
||||
# as_fn_error ERROR [LINENO LOG_FD]
|
||||
# ---------------------------------
|
||||
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
|
||||
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
|
||||
# script with STATUS, using 1 if that was 0.
|
||||
# script with status $?, using 1 if that was 0.
|
||||
as_fn_error ()
|
||||
{
|
||||
as_status=$1; test $as_status -eq 0 && as_status=1
|
||||
if test "$4"; then
|
||||
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
|
||||
as_status=$?; test $as_status -eq 0 && as_status=1
|
||||
if test "$3"; then
|
||||
as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
|
||||
fi
|
||||
$as_echo "$as_me: error: $2" >&2
|
||||
$as_echo "$as_me: error: $1" >&2
|
||||
as_fn_exit $as_status
|
||||
} # as_fn_error
|
||||
|
||||
|
@ -532,7 +532,7 @@ test -n "$DJDIR" || exec 7<&0 </dev/null
|
|||
exec 6>&1
|
||||
|
||||
# Name of the host.
|
||||
# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
|
||||
# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
|
||||
# so uname gets run too.
|
||||
ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
|
||||
|
||||
|
@ -688,9 +688,8 @@ do
|
|||
fi
|
||||
|
||||
case $ac_option in
|
||||
*=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
|
||||
*=) ac_optarg= ;;
|
||||
*) ac_optarg=yes ;;
|
||||
*=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
|
||||
*) ac_optarg=yes ;;
|
||||
esac
|
||||
|
||||
# Accept the important Cygnus configure options, so we can diagnose typos.
|
||||
|
@ -735,7 +734,7 @@ do
|
|||
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
|
||||
# Reject names that are not valid shell variable names.
|
||||
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
|
||||
as_fn_error $? "invalid feature name: $ac_useropt"
|
||||
as_fn_error "invalid feature name: $ac_useropt"
|
||||
ac_useropt_orig=$ac_useropt
|
||||
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
|
||||
case $ac_user_opts in
|
||||
|
@ -761,7 +760,7 @@ do
|
|||
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
|
||||
# Reject names that are not valid shell variable names.
|
||||
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
|
||||
as_fn_error $? "invalid feature name: $ac_useropt"
|
||||
as_fn_error "invalid feature name: $ac_useropt"
|
||||
ac_useropt_orig=$ac_useropt
|
||||
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
|
||||
case $ac_user_opts in
|
||||
|
@ -965,7 +964,7 @@ do
|
|||
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
|
||||
# Reject names that are not valid shell variable names.
|
||||
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
|
||||
as_fn_error $? "invalid package name: $ac_useropt"
|
||||
as_fn_error "invalid package name: $ac_useropt"
|
||||
ac_useropt_orig=$ac_useropt
|
||||
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
|
||||
case $ac_user_opts in
|
||||
|
@ -981,7 +980,7 @@ do
|
|||
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
|
||||
# Reject names that are not valid shell variable names.
|
||||
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
|
||||
as_fn_error $? "invalid package name: $ac_useropt"
|
||||
as_fn_error "invalid package name: $ac_useropt"
|
||||
ac_useropt_orig=$ac_useropt
|
||||
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
|
||||
case $ac_user_opts in
|
||||
|
@ -1011,8 +1010,8 @@ do
|
|||
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
|
||||
x_libraries=$ac_optarg ;;
|
||||
|
||||
-*) as_fn_error $? "unrecognized option: \`$ac_option'
|
||||
Try \`$0 --help' for more information"
|
||||
-*) as_fn_error "unrecognized option: \`$ac_option'
|
||||
Try \`$0 --help' for more information."
|
||||
;;
|
||||
|
||||
*=*)
|
||||
|
@ -1020,7 +1019,7 @@ Try \`$0 --help' for more information"
|
|||
# Reject names that are not valid shell variable names.
|
||||
case $ac_envvar in #(
|
||||
'' | [0-9]* | *[!_$as_cr_alnum]* )
|
||||
as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
|
||||
as_fn_error "invalid variable name: \`$ac_envvar'" ;;
|
||||
esac
|
||||
eval $ac_envvar=\$ac_optarg
|
||||
export $ac_envvar ;;
|
||||
|
@ -1038,13 +1037,13 @@ done
|
|||
|
||||
if test -n "$ac_prev"; then
|
||||
ac_option=--`echo $ac_prev | sed 's/_/-/g'`
|
||||
as_fn_error $? "missing argument to $ac_option"
|
||||
as_fn_error "missing argument to $ac_option"
|
||||
fi
|
||||
|
||||
if test -n "$ac_unrecognized_opts"; then
|
||||
case $enable_option_checking in
|
||||
no) ;;
|
||||
fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
|
||||
fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
|
||||
*) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
|
||||
esac
|
||||
fi
|
||||
|
@ -1067,7 +1066,7 @@ do
|
|||
[\\/$]* | ?:[\\/]* ) continue;;
|
||||
NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
|
||||
esac
|
||||
as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
|
||||
as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
|
||||
done
|
||||
|
||||
# There might be people who depend on the old broken behavior: `$host'
|
||||
|
@ -1081,8 +1080,8 @@ target=$target_alias
|
|||
if test "x$host_alias" != x; then
|
||||
if test "x$build_alias" = x; then
|
||||
cross_compiling=maybe
|
||||
$as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
|
||||
If a cross compiler is detected then cross compile mode will be used" >&2
|
||||
$as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
|
||||
If a cross compiler is detected then cross compile mode will be used." >&2
|
||||
elif test "x$build_alias" != "x$host_alias"; then
|
||||
cross_compiling=yes
|
||||
fi
|
||||
|
@ -1097,9 +1096,9 @@ test "$silent" = yes && exec 6>/dev/null
|
|||
ac_pwd=`pwd` && test -n "$ac_pwd" &&
|
||||
ac_ls_di=`ls -di .` &&
|
||||
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
|
||||
as_fn_error $? "working directory cannot be determined"
|
||||
as_fn_error "working directory cannot be determined"
|
||||
test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
|
||||
as_fn_error $? "pwd does not report name of working directory"
|
||||
as_fn_error "pwd does not report name of working directory"
|
||||
|
||||
|
||||
# Find the source files, if location was not specified.
|
||||
|
@ -1138,11 +1137,11 @@ else
|
|||
fi
|
||||
if test ! -r "$srcdir/$ac_unique_file"; then
|
||||
test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
|
||||
as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
|
||||
as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
|
||||
fi
|
||||
ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
|
||||
ac_abs_confdir=`(
|
||||
cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
|
||||
cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
|
||||
pwd)`
|
||||
# When building in place, set srcdir=.
|
||||
if test "$ac_abs_confdir" = "$ac_pwd"; then
|
||||
|
@ -1182,7 +1181,7 @@ Configuration:
|
|||
--help=short display options specific to this package
|
||||
--help=recursive display the short help of all the included packages
|
||||
-V, --version display version information and exit
|
||||
-q, --quiet, --silent do not print \`checking ...' messages
|
||||
-q, --quiet, --silent do not print \`checking...' messages
|
||||
--cache-file=FILE cache test results in FILE [disabled]
|
||||
-C, --config-cache alias for \`--cache-file=config.cache'
|
||||
-n, --no-create do not create output files
|
||||
|
@ -1302,9 +1301,9 @@ test -n "$ac_init_help" && exit $ac_status
|
|||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
parallel configure 20100922
|
||||
generated by GNU Autoconf 2.67
|
||||
generated by GNU Autoconf 2.65
|
||||
|
||||
Copyright (C) 2010 Free Software Foundation, Inc.
|
||||
Copyright (C) 2009 Free Software Foundation, Inc.
|
||||
This configure script is free software; the Free Software Foundation
|
||||
gives unlimited permission to copy, distribute and modify it.
|
||||
_ACEOF
|
||||
|
@ -1319,7 +1318,7 @@ This file contains any messages produced by compilers while
|
|||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by parallel $as_me 20100922, which was
|
||||
generated by GNU Autoconf 2.67. Invocation command line was
|
||||
generated by GNU Autoconf 2.65. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
|
||||
|
@ -1429,9 +1428,11 @@ trap 'exit_status=$?
|
|||
{
|
||||
echo
|
||||
|
||||
$as_echo "## ---------------- ##
|
||||
cat <<\_ASBOX
|
||||
## ---------------- ##
|
||||
## Cache variables. ##
|
||||
## ---------------- ##"
|
||||
## ---------------- ##
|
||||
_ASBOX
|
||||
echo
|
||||
# The following way of writing the cache mishandles newlines in values,
|
||||
(
|
||||
|
@ -1465,9 +1466,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
|
|||
)
|
||||
echo
|
||||
|
||||
$as_echo "## ----------------- ##
|
||||
cat <<\_ASBOX
|
||||
## ----------------- ##
|
||||
## Output variables. ##
|
||||
## ----------------- ##"
|
||||
## ----------------- ##
|
||||
_ASBOX
|
||||
echo
|
||||
for ac_var in $ac_subst_vars
|
||||
do
|
||||
|
@ -1480,9 +1483,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
|
|||
echo
|
||||
|
||||
if test -n "$ac_subst_files"; then
|
||||
$as_echo "## ------------------- ##
|
||||
cat <<\_ASBOX
|
||||
## ------------------- ##
|
||||
## File substitutions. ##
|
||||
## ------------------- ##"
|
||||
## ------------------- ##
|
||||
_ASBOX
|
||||
echo
|
||||
for ac_var in $ac_subst_files
|
||||
do
|
||||
|
@ -1496,9 +1501,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
|
|||
fi
|
||||
|
||||
if test -s confdefs.h; then
|
||||
$as_echo "## ----------- ##
|
||||
cat <<\_ASBOX
|
||||
## ----------- ##
|
||||
## confdefs.h. ##
|
||||
## ----------- ##"
|
||||
## ----------- ##
|
||||
_ASBOX
|
||||
echo
|
||||
cat confdefs.h
|
||||
echo
|
||||
|
@ -1553,12 +1560,7 @@ _ACEOF
|
|||
ac_site_file1=NONE
|
||||
ac_site_file2=NONE
|
||||
if test -n "$CONFIG_SITE"; then
|
||||
# We do not want a PATH search for config.site.
|
||||
case $CONFIG_SITE in #((
|
||||
-*) ac_site_file1=./$CONFIG_SITE;;
|
||||
*/*) ac_site_file1=$CONFIG_SITE;;
|
||||
*) ac_site_file1=./$CONFIG_SITE;;
|
||||
esac
|
||||
ac_site_file1=$CONFIG_SITE
|
||||
elif test "x$prefix" != xNONE; then
|
||||
ac_site_file1=$prefix/share/config.site
|
||||
ac_site_file2=$prefix/etc/config.site
|
||||
|
@ -1573,11 +1575,7 @@ do
|
|||
{ $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
|
||||
$as_echo "$as_me: loading site script $ac_site_file" >&6;}
|
||||
sed 's/^/| /' "$ac_site_file" >&5
|
||||
. "$ac_site_file" \
|
||||
|| { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||
as_fn_error $? "failed to load site script $ac_site_file
|
||||
See \`config.log' for more details" "$LINENO" 5 ; }
|
||||
. "$ac_site_file"
|
||||
fi
|
||||
done
|
||||
|
||||
|
@ -1653,7 +1651,7 @@ if $ac_cache_corrupted; then
|
|||
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
|
||||
$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
|
||||
as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
|
||||
as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
|
||||
fi
|
||||
## -------------------- ##
|
||||
## Main body of script. ##
|
||||
|
@ -1670,22 +1668,16 @@ am__api_version='1.11'
|
|||
|
||||
ac_aux_dir=
|
||||
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
|
||||
if test -f "$ac_dir/install-sh"; then
|
||||
ac_aux_dir=$ac_dir
|
||||
ac_install_sh="$ac_aux_dir/install-sh -c"
|
||||
break
|
||||
elif test -f "$ac_dir/install.sh"; then
|
||||
ac_aux_dir=$ac_dir
|
||||
ac_install_sh="$ac_aux_dir/install.sh -c"
|
||||
break
|
||||
elif test -f "$ac_dir/shtool"; then
|
||||
ac_aux_dir=$ac_dir
|
||||
ac_install_sh="$ac_aux_dir/shtool install -c"
|
||||
break
|
||||
fi
|
||||
for ac_t in install-sh install.sh shtool; do
|
||||
if test -f "$ac_dir/$ac_t"; then
|
||||
ac_aux_dir=$ac_dir
|
||||
ac_install_sh="$ac_aux_dir/$ac_t -c"
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
if test -z "$ac_aux_dir"; then
|
||||
as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
|
||||
as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
|
||||
fi
|
||||
|
||||
# These three variables are undocumented and unsupported,
|
||||
|
@ -1801,11 +1793,11 @@ am_lf='
|
|||
'
|
||||
case `pwd` in
|
||||
*[\\\"\#\$\&\'\`$am_lf]*)
|
||||
as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;;
|
||||
as_fn_error "unsafe absolute working directory name" "$LINENO" 5;;
|
||||
esac
|
||||
case $srcdir in
|
||||
*[\\\"\#\$\&\'\`$am_lf\ \ ]*)
|
||||
as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;;
|
||||
as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
|
||||
esac
|
||||
|
||||
# Do `set' in a subshell so we don't clobber the current shell's
|
||||
|
@ -1827,7 +1819,7 @@ if (
|
|||
# if, for instance, CONFIG_SHELL is bash and it inherits a
|
||||
# broken ls alias from the environment. This has actually
|
||||
# happened. Such a system could not be considered "sane".
|
||||
as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
|
||||
as_fn_error "ls -t appears to fail. Make sure there is not a broken
|
||||
alias in your environment" "$LINENO" 5
|
||||
fi
|
||||
|
||||
|
@ -1837,7 +1829,7 @@ then
|
|||
# Ok.
|
||||
:
|
||||
else
|
||||
as_fn_error $? "newly created file is older than distributed files!
|
||||
as_fn_error "newly created file is older than distributed files!
|
||||
Check your system clock" "$LINENO" 5
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
|
@ -2075,7 +2067,7 @@ done
|
|||
$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
|
||||
set x ${MAKE-make}
|
||||
ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
|
||||
if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
|
||||
if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
cat >conftest.make <<\_ACEOF
|
||||
|
@ -2083,7 +2075,7 @@ SHELL = /bin/sh
|
|||
all:
|
||||
@echo '@@@%%%=$(MAKE)=@@@%%%'
|
||||
_ACEOF
|
||||
# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
|
||||
# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
|
||||
case `${MAKE-make} -f conftest.make 2>/dev/null` in
|
||||
*@@@%%%=?*=@@@%%%*)
|
||||
eval ac_cv_prog_make_${ac_make}_set=yes;;
|
||||
|
@ -2117,7 +2109,7 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then
|
|||
am__isrc=' -I$(srcdir)'
|
||||
# test to see if srcdir already configured
|
||||
if test -f $srcdir/config.status; then
|
||||
as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
|
||||
as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -2260,7 +2252,6 @@ DEFS=-DHAVE_CONFIG_H
|
|||
|
||||
ac_libobjs=
|
||||
ac_ltlibobjs=
|
||||
U=
|
||||
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
|
||||
# 1. Remove the extension, and $U if already installed.
|
||||
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
|
||||
|
@ -2423,19 +2414,19 @@ export LANGUAGE
|
|||
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
|
||||
|
||||
|
||||
# as_fn_error STATUS ERROR [LINENO LOG_FD]
|
||||
# ----------------------------------------
|
||||
# as_fn_error ERROR [LINENO LOG_FD]
|
||||
# ---------------------------------
|
||||
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
|
||||
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
|
||||
# script with STATUS, using 1 if that was 0.
|
||||
# script with status $?, using 1 if that was 0.
|
||||
as_fn_error ()
|
||||
{
|
||||
as_status=$1; test $as_status -eq 0 && as_status=1
|
||||
if test "$4"; then
|
||||
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
|
||||
as_status=$?; test $as_status -eq 0 && as_status=1
|
||||
if test "$3"; then
|
||||
as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
|
||||
fi
|
||||
$as_echo "$as_me: error: $2" >&2
|
||||
$as_echo "$as_me: error: $1" >&2
|
||||
as_fn_exit $as_status
|
||||
} # as_fn_error
|
||||
|
||||
|
@ -2631,7 +2622,7 @@ $as_echo X"$as_dir" |
|
|||
test -d "$as_dir" && break
|
||||
done
|
||||
test -z "$as_dirs" || eval "mkdir $as_dirs"
|
||||
} || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
|
||||
} || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
|
||||
|
||||
|
||||
} # as_fn_mkdir_p
|
||||
|
@ -2685,7 +2676,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by parallel $as_me 20100922, which was
|
||||
generated by GNU Autoconf 2.67. Invocation command line was
|
||||
generated by GNU Autoconf 2.65. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
CONFIG_HEADERS = $CONFIG_HEADERS
|
||||
|
@ -2747,10 +2738,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
|||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
ac_cs_version="\\
|
||||
parallel config.status 20100922
|
||||
configured by $0, generated by GNU Autoconf 2.67,
|
||||
configured by $0, generated by GNU Autoconf 2.65,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
Copyright (C) 2010 Free Software Foundation, Inc.
|
||||
Copyright (C) 2009 Free Software Foundation, Inc.
|
||||
This config.status script is free software; the Free Software Foundation
|
||||
gives unlimited permission to copy, distribute and modify it."
|
||||
|
||||
|
@ -2768,16 +2759,11 @@ ac_need_defaults=:
|
|||
while test $# != 0
|
||||
do
|
||||
case $1 in
|
||||
--*=?*)
|
||||
--*=*)
|
||||
ac_option=`expr "X$1" : 'X\([^=]*\)='`
|
||||
ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
|
||||
ac_shift=:
|
||||
;;
|
||||
--*=)
|
||||
ac_option=`expr "X$1" : 'X\([^=]*\)='`
|
||||
ac_optarg=
|
||||
ac_shift=:
|
||||
;;
|
||||
*)
|
||||
ac_option=$1
|
||||
ac_optarg=$2
|
||||
|
@ -2799,7 +2785,6 @@ do
|
|||
$ac_shift
|
||||
case $ac_optarg in
|
||||
*\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
|
||||
'') as_fn_error $? "missing file argument" ;;
|
||||
esac
|
||||
as_fn_append CONFIG_FILES " '$ac_optarg'"
|
||||
ac_need_defaults=false;;
|
||||
|
@ -2812,7 +2797,7 @@ do
|
|||
ac_need_defaults=false;;
|
||||
--he | --h)
|
||||
# Conflict between --help and --header
|
||||
as_fn_error $? "ambiguous option: \`$1'
|
||||
as_fn_error "ambiguous option: \`$1'
|
||||
Try \`$0 --help' for more information.";;
|
||||
--help | --hel | -h )
|
||||
$as_echo "$ac_cs_usage"; exit ;;
|
||||
|
@ -2821,7 +2806,7 @@ Try \`$0 --help' for more information.";;
|
|||
ac_cs_silent=: ;;
|
||||
|
||||
# This is an error.
|
||||
-*) as_fn_error $? "unrecognized option: \`$1'
|
||||
-*) as_fn_error "unrecognized option: \`$1'
|
||||
Try \`$0 --help' for more information." ;;
|
||||
|
||||
*) as_fn_append ac_config_targets " $1"
|
||||
|
@ -2874,7 +2859,7 @@ do
|
|||
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
|
||||
"src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
|
||||
|
||||
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
|
||||
*) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
@ -2911,7 +2896,7 @@ $debug ||
|
|||
{
|
||||
tmp=./conf$$-$RANDOM
|
||||
(umask 077 && mkdir "$tmp")
|
||||
} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
|
||||
} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
|
||||
|
||||
# Set up the scripts for CONFIG_FILES section.
|
||||
# No need to generate them if there are no CONFIG_FILES.
|
||||
|
@ -2928,7 +2913,7 @@ if test "x$ac_cr" = x; then
|
|||
fi
|
||||
ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
|
||||
if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
|
||||
ac_cs_awk_cr='\\r'
|
||||
ac_cs_awk_cr='\r'
|
||||
else
|
||||
ac_cs_awk_cr=$ac_cr
|
||||
fi
|
||||
|
@ -2942,18 +2927,18 @@ _ACEOF
|
|||
echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
|
||||
echo "_ACEOF"
|
||||
} >conf$$subs.sh ||
|
||||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
|
||||
ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
|
||||
as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
|
||||
ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
|
||||
ac_delim='%!_!# '
|
||||
for ac_last_try in false false false false false :; do
|
||||
. ./conf$$subs.sh ||
|
||||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
|
||||
as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
|
||||
|
||||
ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
|
||||
if test $ac_delim_n = $ac_delim_num; then
|
||||
break
|
||||
elif $ac_last_try; then
|
||||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
|
||||
as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
|
||||
else
|
||||
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
|
||||
fi
|
||||
|
@ -3042,28 +3027,20 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
|
|||
else
|
||||
cat
|
||||
fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
|
||||
|| as_fn_error $? "could not setup config files machinery" "$LINENO" 5
|
||||
|| as_fn_error "could not setup config files machinery" "$LINENO" 5
|
||||
_ACEOF
|
||||
|
||||
# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
|
||||
# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
|
||||
# VPATH may cause trouble with some makes, so we remove $(srcdir),
|
||||
# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
|
||||
# trailing colons and then remove the whole line if VPATH becomes empty
|
||||
# (actually we leave an empty line to preserve line numbers).
|
||||
if test "x$srcdir" = x.; then
|
||||
ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
|
||||
h
|
||||
s///
|
||||
s/^/:/
|
||||
s/[ ]*$/:/
|
||||
s/:\$(srcdir):/:/g
|
||||
s/:\${srcdir}:/:/g
|
||||
s/:@srcdir@:/:/g
|
||||
s/^:*//
|
||||
ac_vpsub='/^[ ]*VPATH[ ]*=/{
|
||||
s/:*\$(srcdir):*/:/
|
||||
s/:*\${srcdir}:*/:/
|
||||
s/:*@srcdir@:*/:/
|
||||
s/^\([^=]*=[ ]*\):*/\1/
|
||||
s/:*$//
|
||||
x
|
||||
s/\(=[ ]*\).*/\1/
|
||||
G
|
||||
s/\n//
|
||||
s/^[^=]*=[ ]*$//
|
||||
}'
|
||||
fi
|
||||
|
@ -3091,7 +3068,7 @@ for ac_last_try in false false :; do
|
|||
if test -z "$ac_t"; then
|
||||
break
|
||||
elif $ac_last_try; then
|
||||
as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
|
||||
as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
|
||||
else
|
||||
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
|
||||
fi
|
||||
|
@ -3176,7 +3153,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
|||
_ACAWK
|
||||
_ACEOF
|
||||
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||
as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
|
||||
as_fn_error "could not setup config headers machinery" "$LINENO" 5
|
||||
fi # test -n "$CONFIG_HEADERS"
|
||||
|
||||
|
||||
|
@ -3189,7 +3166,7 @@ do
|
|||
esac
|
||||
case $ac_mode$ac_tag in
|
||||
:[FHL]*:*);;
|
||||
:L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
|
||||
:L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
|
||||
:[FH]-) ac_tag=-:-;;
|
||||
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
|
||||
esac
|
||||
|
@ -3217,7 +3194,7 @@ do
|
|||
[\\/$]*) false;;
|
||||
*) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
|
||||
esac ||
|
||||
as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
|
||||
as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
|
||||
esac
|
||||
case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
|
||||
as_fn_append ac_file_inputs " '$ac_f'"
|
||||
|
@ -3244,7 +3221,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
|
|||
|
||||
case $ac_tag in
|
||||
*:-:* | *:-) cat >"$tmp/stdin" \
|
||||
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
|
||||
|| as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
@ -3381,22 +3358,22 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t
|
|||
$ac_datarootdir_hack
|
||||
"
|
||||
eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
|
||||
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
|
||||
|| as_fn_error "could not create $ac_file" "$LINENO" 5
|
||||
|
||||
test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
|
||||
{ ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
|
||||
{ ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
|
||||
which seems to be undefined. Please make sure it is defined" >&5
|
||||
which seems to be undefined. Please make sure it is defined." >&5
|
||||
$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
|
||||
which seems to be undefined. Please make sure it is defined" >&2;}
|
||||
which seems to be undefined. Please make sure it is defined." >&2;}
|
||||
|
||||
rm -f "$tmp/stdin"
|
||||
case $ac_file in
|
||||
-) cat "$tmp/out" && rm -f "$tmp/out";;
|
||||
*) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
|
||||
esac \
|
||||
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
|
||||
|| as_fn_error "could not create $ac_file" "$LINENO" 5
|
||||
;;
|
||||
:H)
|
||||
#
|
||||
|
@ -3407,19 +3384,19 @@ which seems to be undefined. Please make sure it is defined" >&2;}
|
|||
$as_echo "/* $configure_input */" \
|
||||
&& eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
|
||||
} >"$tmp/config.h" \
|
||||
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
|
||||
|| as_fn_error "could not create $ac_file" "$LINENO" 5
|
||||
if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
|
||||
$as_echo "$as_me: $ac_file is unchanged" >&6;}
|
||||
else
|
||||
rm -f "$ac_file"
|
||||
mv "$tmp/config.h" "$ac_file" \
|
||||
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
|
||||
|| as_fn_error "could not create $ac_file" "$LINENO" 5
|
||||
fi
|
||||
else
|
||||
$as_echo "/* $configure_input */" \
|
||||
&& eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
|
||||
|| as_fn_error $? "could not create -" "$LINENO" 5
|
||||
|| as_fn_error "could not create -" "$LINENO" 5
|
||||
fi
|
||||
# Compute "$ac_file"'s index in $config_headers.
|
||||
_am_arg="$ac_file"
|
||||
|
@ -3468,7 +3445,7 @@ _ACEOF
|
|||
ac_clean_files=$ac_clean_files_save
|
||||
|
||||
test $ac_write_fail = 0 ||
|
||||
as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
|
||||
as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
|
||||
|
||||
|
||||
# configure is writing to config.log, and then calls config.status.
|
||||
|
@ -3489,7 +3466,7 @@ if test "$no_create" != yes; then
|
|||
exec 5>>config.log
|
||||
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
|
||||
# would make configure fail if this is the last instruction.
|
||||
$ac_cs_success || as_fn_exit 1
|
||||
$ac_cs_success || as_fn_exit $?
|
||||
fi
|
||||
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
|
||||
|
|
|
@ -289,24 +289,9 @@ distribute the arguments evenly if running -X.
|
|||
|
||||
=head1 options
|
||||
|
||||
One char options not used: A D F G J K O Q R T Z
|
||||
One char options not used: A F G K O Q R T Z
|
||||
|
||||
|
||||
=head2 mutex
|
||||
|
||||
mutex -b -n -l lockid -m max_locks [command]
|
||||
mutex -u lockid
|
||||
|
||||
-b run command in background
|
||||
-l lockfile will lock using the lockid
|
||||
-n nonblocking
|
||||
-m maximal number of locks (default 1)
|
||||
-u unlock
|
||||
|
||||
If command given works like: mutex -l lockfile -n number_of_locks ; command; mutex -u lockfile
|
||||
If -b given works like: mutex -l lockfile -n number_of_locks ; (command; mutex -u lockfile)&
|
||||
|
||||
Kan vi finde på lockid som giver mening?
|
||||
=head1 sem
|
||||
|
||||
Parallelize so this can be done:
|
||||
mdm.screen find dir -execdir mdm-run cmd {} \;
|
||||
|
@ -315,15 +300,6 @@ find dir -execdir par$ --communication-file /tmp/comfile cmd {} \;
|
|||
|
||||
find dir -execdir mutex -j4 -b cmd {} \;
|
||||
|
||||
=head2 Comfile
|
||||
|
||||
This will put a lock on /tmp/comfile. The number of locks is the number of running commands.
|
||||
If the number is smaller than -j then it will start a process in the background ( cmd & ),
|
||||
otherwise wait.
|
||||
|
||||
par$ --wait /tmp/comfile will wait until no more locks on the file
|
||||
|
||||
|
||||
|
||||
=head1 Unlikely
|
||||
|
||||
|
|
298
src/parallel
298
src/parallel
|
@ -559,6 +559,19 @@ from the terminal. Only run the command line if the response starts
|
|||
with 'y' or 'Y'. Implies B<-t>.
|
||||
|
||||
|
||||
=item B<--profile> I<profilename>
|
||||
|
||||
=item B<-J> I<profilename>
|
||||
|
||||
Use profile I<profilename> for options. This is useful if you want to
|
||||
have multiple profiles. You could have one profile for running jobs in
|
||||
parallel on the local machine and a different profile for running jobs
|
||||
on remote machines. See the section PROFILE FILES for examples.
|
||||
|
||||
I<profilename> corresponds to the file ~/.parallel/I<profilename>.
|
||||
|
||||
Default: config
|
||||
|
||||
=item B<--quote>
|
||||
|
||||
=item B<-q>
|
||||
|
@ -1564,10 +1577,8 @@ B<seq 1 10 | parallel -N2 echo seq:'$'PARALLEL_SEQ arg1:{1} arg2:{2}>
|
|||
=item $PARALLEL
|
||||
|
||||
The environment variable $PARALLEL will be used as default options for
|
||||
GNU B<parallel>. However, because some options take arguments the
|
||||
options need to be split into groups in which only the last option
|
||||
takes an argument. Each group of options should be put on a line of its
|
||||
own.
|
||||
GNU B<parallel>. If the variable contains special shell characters
|
||||
(e.g. $, *, or space) then these need to be to be escaped with \.
|
||||
|
||||
B<Example:>
|
||||
|
||||
|
@ -1581,16 +1592,14 @@ B<cat list | parallel -j1 -k -v -S"myssh user@server" ls>
|
|||
|
||||
can be written as:
|
||||
|
||||
B<cat list | PARALLEL="-kvj1>
|
||||
B<cat list | PARALLEL='-kvj1 -S myssh\ user@server' parallel echo>
|
||||
|
||||
B<-Smyssh user@server" parallel echo>
|
||||
|
||||
Notice the newline in the middle is needed because both B<-S> and
|
||||
B<-j> take an argument and thus both need to be at the end of a group.
|
||||
Notice the \ in the middle is needed because 'myssh' and 'user@server'
|
||||
must be one argument.
|
||||
|
||||
=back
|
||||
|
||||
=head1 CONFIG FILE
|
||||
=head1 DEFAULT PROFILE (CONFIG FILE)
|
||||
|
||||
The file ~/.parallel/config (formerly known as .parallelrc) will be
|
||||
read if it exists. Lines starting with '#' will be ignored. It can be
|
||||
|
@ -1601,15 +1610,30 @@ Options on the command line takes precedence over the environment
|
|||
variable $PARALLEL which takes precedence over the file
|
||||
~/.parallel/config.
|
||||
|
||||
=head1 PROFILE FILES
|
||||
|
||||
The file ~/.parallel/config will be read if it exists. It should be
|
||||
formatted like the environment variable $PARALLEL. Lines starting with
|
||||
'#' will be ignored.
|
||||
|
||||
Options on the command line takes precedence over the environment
|
||||
variable $PARALLEL which takes precedence over the file
|
||||
If B<--profile> set, GNU B<parallel> will read the profile from that file instead of
|
||||
~/.parallel/config.
|
||||
|
||||
Example: Profile for running every command with B<-j+0> and B<nice>
|
||||
|
||||
echo -j+0 nice > ~/.parallel/nice_profile
|
||||
parallel -J nice_profile bzip2 -9 ::: *
|
||||
|
||||
Example: Profile for running a perl script before every command:
|
||||
|
||||
echo "perl -e '\$a=\$\$; print \$a,\" \",'\$PARALLEL_SEQ',\" \";';" > ~/.parallel/pre_perl
|
||||
parallel -J pre_perl echo ::: *
|
||||
|
||||
Note how the $ and " need to be quoted using \.
|
||||
|
||||
Example: Profile for running distributed jobs with B<nice> on the
|
||||
remote machines:
|
||||
|
||||
echo -S .. nice > ~/.parallel/dist
|
||||
parallel -J dist --trc {.}.bz2 bzip2 -9 ::: *
|
||||
|
||||
|
||||
=head1 EXIT STATUS
|
||||
|
||||
If B<--halt-on-error> 0 or not specified:
|
||||
|
@ -2381,9 +2405,9 @@ B<xjobs>(1), B<prll>(1), B<dxargs>(1), B<mdm>(1)
|
|||
use IPC::Open3;
|
||||
use Symbol qw(gensym);
|
||||
use IO::File;
|
||||
use POSIX qw/:sys_wait_h setsid/;
|
||||
use File::Temp qw/tempfile tempdir/;
|
||||
use Getopt::Long;
|
||||
use POSIX qw(:sys_wait_h setsid);
|
||||
use File::Temp qw(tempfile tempdir);
|
||||
use Getopt::Long qw(GetOptionsFromArray);
|
||||
use strict;
|
||||
|
||||
do_not_reap();
|
||||
|
@ -2432,6 +2456,84 @@ sub acquire_semaphore {
|
|||
return $sem;
|
||||
}
|
||||
|
||||
sub get_options_from_array {
|
||||
# Run GetOptionsFromArray on @array
|
||||
# Returns:
|
||||
# true if parsing worked
|
||||
# false if parsing failed
|
||||
# @array is changed
|
||||
my $array_ref = shift;
|
||||
return GetOptionsFromArray
|
||||
($array_ref,
|
||||
"debug|D" => \$::opt_D,
|
||||
"xargs|m" => \$::opt_m,
|
||||
"X" => \$::opt_X,
|
||||
"v" => \@::opt_v,
|
||||
"silent" => \$::opt_silent,
|
||||
"keep-order|keeporder|k" => \$::opt_k,
|
||||
"group|g" => \$::opt_g,
|
||||
"ungroup|u" => \$::opt_u,
|
||||
"command|c" => \$::opt_c,
|
||||
"file|f" => \$::opt_f,
|
||||
"null|0" => \$::opt_0,
|
||||
"quote|q" => \$::opt_q,
|
||||
"I=s" => \$::opt_I,
|
||||
"extensionreplace|U=s" => \$::opt_U,
|
||||
"jobs|j=s" => \$::opt_P,
|
||||
"max-line-length-allowed" => \$::opt_max_line_length_allowed,
|
||||
"number-of-cpus" => \$::opt_number_of_cpus,
|
||||
"number-of-cores" => \$::opt_number_of_cores,
|
||||
"use-cpus-instead-of-cores" => \$::opt_use_cpus_instead_of_cores,
|
||||
"sshlogin|S=s" => \@::opt_sshlogin,
|
||||
"sshloginfile=s" => \$::opt_sshloginfile,
|
||||
"controlmaster|M" => \$::opt_controlmaster,
|
||||
"return=s" => \@::opt_return,
|
||||
"trc=s" => \@::opt_trc,
|
||||
"transfer" => \$::opt_transfer,
|
||||
"cleanup" => \$::opt_cleanup,
|
||||
"basefile|B=s" => \@::opt_basefile,
|
||||
"workdir|W=s" => \$::opt_workdir,
|
||||
"halt-on-error|H=s" => \$::opt_halt_on_error,
|
||||
"retries=i" => \$::opt_retries,
|
||||
"progress" => \$::opt_progress,
|
||||
"eta" => \$::opt_eta,
|
||||
"arg-sep|argsep=s" => \$::opt_arg_sep,
|
||||
"arg-file-sep|argfilesep=s" => \$::opt_arg_file_sep,
|
||||
"trim=s" => \$::opt_trim,
|
||||
"profile|J=s" => \$::opt_profile,
|
||||
# xargs-compatibility - implemented, man, unittest
|
||||
"max-procs|P=s" => \$::opt_P,
|
||||
"delimiter|d=s" => \$::opt_d,
|
||||
"max-chars|s=i" => \$::opt_s,
|
||||
"arg-file|a=s" => \@::opt_a,
|
||||
"no-run-if-empty|r" => \$::opt_r,
|
||||
"replace|i:s" => \$::opt_i,
|
||||
"E=s" => \$::opt_E,
|
||||
"eof|e:s" => \$::opt_E,
|
||||
"max-args|n=i" => \$::opt_n,
|
||||
"max-replace-args|N=i" => \$::opt_N,
|
||||
"colsep|col-sep|C=s" => \$::opt_colsep,
|
||||
"help|h" => \$::opt_help,
|
||||
"L=i" => \$::opt_L,
|
||||
"max-lines|l:i" => \$::opt_l,
|
||||
"interactive|p" => \$::opt_p,
|
||||
"verbose|t" => \$::opt_verbose,
|
||||
"version|V" => \$::opt_version,
|
||||
"show-limits" => \$::opt_show_limits,
|
||||
"exit|x" => \$::opt_x,
|
||||
# Semaphore
|
||||
"semaphore" => \$::opt_semaphore,
|
||||
"semaphoretimeout=i" => \$::opt_semaphoretimeout,
|
||||
"semaphorename|id=s" => \$::opt_semaphorename,
|
||||
"fg" => \$::opt_fg,
|
||||
"bg" => \$::opt_bg,
|
||||
"wait" => \$::opt_wait,
|
||||
# Shebang #!/usr/bin/parallel -Yotheroptions
|
||||
"Y|shebang|hashbang" => \$::opt_shebang,
|
||||
"skip-first-line" => \$::opt_skip_first_line,
|
||||
);
|
||||
}
|
||||
|
||||
sub parse_options {
|
||||
# Returns: N/A
|
||||
# Defaults:
|
||||
|
@ -2457,101 +2559,8 @@ sub parse_options {
|
|||
$Global::arg_file_sep = "::::";
|
||||
$Global::trim = 'n';
|
||||
|
||||
# This must be done first as this may exec myself
|
||||
if(defined $ARGV[0] and ($ARGV[0]=~/^-Y/ or $ARGV[0]=~/^--shebang / or
|
||||
$ARGV[0]=~/^--hashbang /)) {
|
||||
# Program is called from #! line in script
|
||||
$ARGV[0]=~s/^-Y //; # remove -Y if on its own
|
||||
$ARGV[0]=~s/^-Y/-/; # remove -Y if bundled with other options
|
||||
$ARGV[0]=~s/^--shebang //; # remove --shebang if it is set
|
||||
$ARGV[0]=~s/^--hashbang //; # remove --hashbang if it is set
|
||||
my $argfile = pop @ARGV;
|
||||
# exec myself to split @ARGV into separate fields
|
||||
exec "$0 --skip-first-line -a $argfile @ARGV";
|
||||
}
|
||||
@ARGV=read_options();
|
||||
|
||||
# Add options from .parallel/config
|
||||
for my $parallel_config ($ENV{'HOME'}."/.parallel/config",
|
||||
$ENV{'HOME'}."/.parallelrc") {
|
||||
if(-r $parallel_config) {
|
||||
open (IN, "<", $parallel_config) || die;
|
||||
while(<IN>) {
|
||||
/^\s*\#/ and next;
|
||||
chomp;
|
||||
unshift @ARGV, $_;
|
||||
}
|
||||
close IN;
|
||||
}
|
||||
}
|
||||
# Add options from shell variable $PARALLEL
|
||||
$ENV{'PARALLEL'} and unshift @ARGV, split/\n/, $ENV{'PARALLEL'};
|
||||
Getopt::Long::Configure ("bundling","require_order");
|
||||
GetOptions("debug|D" => \$::opt_D,
|
||||
"xargs|m" => \$::opt_m,
|
||||
"X" => \$::opt_X,
|
||||
"v" => \@::opt_v,
|
||||
"silent" => \$::opt_silent,
|
||||
"keep-order|keeporder|k" => \$::opt_k,
|
||||
"group|g" => \$::opt_g,
|
||||
"ungroup|u" => \$::opt_u,
|
||||
"command|c" => \$::opt_c,
|
||||
"file|f" => \$::opt_f,
|
||||
"null|0" => \$::opt_0,
|
||||
"quote|q" => \$::opt_q,
|
||||
"I=s" => \$::opt_I,
|
||||
"extensionreplace|U=s" => \$::opt_U,
|
||||
"jobs|j=s" => \$::opt_P,
|
||||
"max-line-length-allowed" => \$::opt_max_line_length_allowed,
|
||||
"number-of-cpus" => \$::opt_number_of_cpus,
|
||||
"number-of-cores" => \$::opt_number_of_cores,
|
||||
"use-cpus-instead-of-cores" => \$::opt_use_cpus_instead_of_cores,
|
||||
"sshlogin|S=s" => \@::opt_sshlogin,
|
||||
"sshloginfile=s" => \$::opt_sshloginfile,
|
||||
"controlmaster|M" => \$::opt_controlmaster,
|
||||
"return=s" => \@::opt_return,
|
||||
"trc=s" => \@::opt_trc,
|
||||
"transfer" => \$::opt_transfer,
|
||||
"cleanup" => \$::opt_cleanup,
|
||||
"basefile|B=s" => \@::opt_basefile,
|
||||
"workdir|W=s" => \$::opt_workdir,
|
||||
"halt-on-error|H=s" => \$::opt_halt_on_error,
|
||||
"retries=i" => \$::opt_retries,
|
||||
"progress" => \$::opt_progress,
|
||||
"eta" => \$::opt_eta,
|
||||
"arg-sep|argsep=s" => \$::opt_arg_sep,
|
||||
"arg-file-sep|argfilesep=s" => \$::opt_arg_file_sep,
|
||||
"trim=s" => \$::opt_trim,
|
||||
# xargs-compatibility - implemented, man, unittest
|
||||
"max-procs|P=s" => \$::opt_P,
|
||||
"delimiter|d=s" => \$::opt_d,
|
||||
"max-chars|s=i" => \$::opt_s,
|
||||
"arg-file|a=s" => \@::opt_a,
|
||||
"no-run-if-empty|r" => \$::opt_r,
|
||||
"replace|i:s" => \$::opt_i,
|
||||
"E=s" => \$::opt_E,
|
||||
"eof|e:s" => \$::opt_E,
|
||||
"max-args|n=i" => \$::opt_n,
|
||||
"max-replace-args|N=i" => \$::opt_N,
|
||||
"colsep|col-sep|C=s" => \$::opt_colsep,
|
||||
"help|h" => \$::opt_help,
|
||||
"L=i" => \$::opt_L,
|
||||
"max-lines|l:i" => \$::opt_l,
|
||||
"interactive|p" => \$::opt_p,
|
||||
"verbose|t" => \$::opt_verbose,
|
||||
"version|V" => \$::opt_version,
|
||||
"show-limits" => \$::opt_show_limits,
|
||||
"exit|x" => \$::opt_x,
|
||||
# Semaphore
|
||||
"semaphore" => \$::opt_semaphore,
|
||||
"semaphoretimeout=i" => \$::opt_semaphoretimeout,
|
||||
"semaphorename|id=s" => \$::opt_semaphorename,
|
||||
"fg" => \$::opt_fg,
|
||||
"bg" => \$::opt_bg,
|
||||
"wait" => \$::opt_wait,
|
||||
# Shebang #!/usr/bin/parallel -Yotheroptions
|
||||
"Y|shebang|hashbang" => \$::opt_shebang,
|
||||
"skip-first-line" => \$::opt_skip_first_line,
|
||||
) || die_usage();
|
||||
if(defined @::opt_v) { $Global::verbose = $#::opt_v+1; } # Convert -v -v to v=2
|
||||
$Global::debug = (defined $::opt_D);
|
||||
if(defined $::opt_m) { $Global::xargs = 1; }
|
||||
|
@ -2604,10 +2613,12 @@ sub parse_options {
|
|||
}
|
||||
|
||||
if(grep /^$Global::arg_sep$/o, @ARGV) {
|
||||
# Deal with :::
|
||||
@ARGV=read_args_from_command_line();
|
||||
}
|
||||
|
||||
if(grep /^$Global::arg_file_sep$/o, @ARGV) {
|
||||
# Deal with ::::
|
||||
@ARGV=convert_argfiles_from_command_line_to_multiple_opt_a();
|
||||
}
|
||||
|
||||
|
@ -2703,6 +2714,67 @@ sub parse_options {
|
|||
}
|
||||
}
|
||||
|
||||
sub read_options {
|
||||
# Read options from command line, profile and $PARALLEL
|
||||
# Returns:
|
||||
# @ARGV without --options
|
||||
# This must be done first as this may exec myself
|
||||
if(defined $ARGV[0] and ($ARGV[0]=~/^-Y/ or $ARGV[0]=~/^--shebang / or
|
||||
$ARGV[0]=~/^--hashbang /)) {
|
||||
# Program is called from #! line in script
|
||||
$ARGV[0]=~s/^-Y //; # remove -Y if on its own
|
||||
$ARGV[0]=~s/^-Y/-/; # remove -Y if bundled with other options
|
||||
$ARGV[0]=~s/^--shebang //; # remove --shebang if it is set
|
||||
$ARGV[0]=~s/^--hashbang //; # remove --hashbang if it is set
|
||||
my $argfile = pop @ARGV;
|
||||
# exec myself to split @ARGV into separate fields
|
||||
exec "$0 --skip-first-line -a $argfile @ARGV";
|
||||
}
|
||||
|
||||
Getopt::Long::Configure ("bundling","require_order");
|
||||
# First check if there is a --profile to set $::opt_profile
|
||||
my @ARGV_copy = @ARGV;
|
||||
get_options_from_array (\@ARGV_copy) || die_usage();
|
||||
# Add options from .parallel/config and other profiles
|
||||
my @ARGV_profile = ();
|
||||
my @ARGV_env = ();
|
||||
|
||||
my @config_profiles = ($ENV{'HOME'}."/.parallel/config",
|
||||
$ENV{'HOME'}."/.parallelrc");
|
||||
my @profiles = @config_profiles;
|
||||
if($::opt_profile) {
|
||||
# --profile overrides default profiles
|
||||
@profiles = ($ENV{'HOME'}."/.parallel/".$::opt_profile);
|
||||
}
|
||||
for my $profile (@profiles) {
|
||||
if(-r $profile) {
|
||||
open (IN, "<", $profile) || die;
|
||||
while(<IN>) {
|
||||
/^\s*\#/ and next;
|
||||
chomp;
|
||||
push @ARGV_profile, shell_unquote(split/(?<![\\])\s/, $_);
|
||||
}
|
||||
close IN;
|
||||
} else {
|
||||
if(grep /^$profile$/, @config_profiles) {
|
||||
# config file is not required to exist
|
||||
} else {
|
||||
print STDERR "$profile not readable\n";
|
||||
wait_and_exit(255);
|
||||
}
|
||||
}
|
||||
}
|
||||
get_options_from_array(\@ARGV_profile) || die_usage();
|
||||
# Add options from shell variable $PARALLEL
|
||||
$ENV{'PARALLEL'} and @ARGV_env = shell_unquote(split/(?<![\\])\s/, $ENV{'PARALLEL'});
|
||||
get_options_from_array(\@ARGV_env) || die_usage();
|
||||
get_options_from_array(\@ARGV) || die_usage();
|
||||
|
||||
# Prepend non-options to @ARGV (such as commands like 'nice')
|
||||
unshift @ARGV, @ARGV_profile, @ARGV_env;
|
||||
return @ARGV;
|
||||
}
|
||||
|
||||
sub read_args_from_command_line {
|
||||
# Arguments given on the command line after ::: ($Global::arg_sep)
|
||||
# Removes the arguments from @ARGV and puts it into the argument queue
|
||||
|
|
63
testsuite/tests-to-run/test37.sh
Normal file
63
testsuite/tests-to-run/test37.sh
Normal file
|
@ -0,0 +1,63 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo '### Test $PARALLEL'
|
||||
PARALLEL="-k
|
||||
-j1
|
||||
echo" parallel ::: a b c
|
||||
|
||||
PARALLEL="-k
|
||||
--jobs
|
||||
1
|
||||
echo" parallel ::: a b c
|
||||
|
||||
PARALLEL="-k
|
||||
--jobs 1
|
||||
echo" parallel ::: a b c
|
||||
|
||||
PARALLEL="-k
|
||||
--jobs
|
||||
1
|
||||
echo 1" parallel -v echo 2 ::: a b c
|
||||
|
||||
PARALLEL="-k --jobs 1 echo" parallel ::: a b c
|
||||
PARALLEL="-k --jobs 1 echo 1" parallel -v echo 2 ::: a b c
|
||||
|
||||
echo '### Test ugly quoting from $PARALLEL'
|
||||
PARALLEL="-k --jobs 1 perl -pe '\$a=1; print\$a'" parallel -v ::: <(echo a) <(echo b)
|
||||
PARALLEL='-k --jobs 1 -S newton perl -pe "\\$a=1; print\\$a"' parallel -v ::: /etc/passwd
|
||||
|
||||
echo '### Test ugly quoting from profile file'
|
||||
cat <<EOF >/tmp/parallel_profile
|
||||
-k --jobs 1 perl -pe '\$a=1; print \$a'
|
||||
EOF
|
||||
parallel -v -J /tmp/parallel_profile ::: <(echo a) <(echo b)
|
||||
|
||||
PARALLEL='-k --jobs 1 echo' parallel -S ssh\ newton\ ssh\ maxwell -v ::: /etc/passwd
|
||||
PARALLEL='-k --jobs 1 perl -pe "\\$a=1; print \\$a"' parallel -S ssh\ newton\ ssh\ maxwell -vv ::: /etc/passwd
|
||||
|
||||
echo '### Test quoting of $ in command from profile file'
|
||||
cat <<EOF >/tmp/parallel_profile
|
||||
-k --jobs 1 perl -pe '\\\$a=1; print \\\$a'
|
||||
EOF
|
||||
parallel -v -J /tmp/parallel_profile -S ssh\ newton\ ssh\ maxwell ::: /etc/passwd
|
||||
|
||||
echo '### Test quoting of $ in command from $PARALLEL'
|
||||
PARALLEL='-k --jobs 1 perl -pe "\\$a=1; print \\$a" ' parallel -S ssh\ newton\ ssh\ maxwell -v ::: /etc/passwd
|
||||
|
||||
echo '### Test quoting of space in arguments (-S) from profile file'
|
||||
cat <<EOF >/tmp/parallel_profile
|
||||
-k --jobs 1 -S ssh\ newton\ ssh\ maxwell perl -pe '\$a=1; print \$a'
|
||||
EOF
|
||||
parallel -v -J /tmp/parallel_profile ::: /etc/passwd
|
||||
|
||||
echo '### Test quoting of space in arguments (-S) from $PARALLEL'
|
||||
PARALLEL='-k --jobs 1 -S ssh\ newton\ ssh\ maxwell perl -pe "\\$a=1; print \\$a" ' parallel -v ::: /etc/passwd
|
||||
|
||||
echo '### Test quoting of space in long arguments (--sshlogin) from profile file'
|
||||
cat <<EOF >/tmp/parallel_profile
|
||||
-k --jobs 1 --sshlogin ssh\ newton\ ssh\ maxwell perl -pe '\$a=1; print \$a'
|
||||
EOF
|
||||
parallel -v -J /tmp/parallel_profile ::: /etc/passwd
|
||||
|
||||
echo '### Test quoting of space in arguments (-S) from $PARALLEL'
|
||||
PARALLEL='-k --jobs 1 --sshlogin ssh\ newton\ ssh\ maxwell perl -pe "\\$a=1; print \\$a" ' parallel -v ::: /etc/passwd
|
Loading…
Reference in a new issue