#! /bin/sh
#
# Copyright (C) 1995-1998, 2000-2016 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 3 of the License, 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, see <http://www.gnu.org/licenses/>.
#
# This file is meant for authors or maintainers which want to
# internationalize their package with the help of GNU gettext. For
# further information how to use it consult the GNU gettext manual.
progname=$0
package=gettext-tools
version=0.19.8.1
archive_version=0.19.8
# Set variables
# - gettext_datadir directory where the data files are stored.
prefix="/usr"
datarootdir="${prefix}/share"
: ${gettext_datadir="/usr/share/gettext"}
: ${AUTOM4TE=autom4te}
# func_tmpdir
# creates a temporary directory.
# Sets variable
# - tmp pathname of freshly created temporary directory
func_tmpdir ()
{
# Use the environment variable TMPDIR, falling back to /tmp. This allows
# users to specify a different temporary directory, for example, if their
# /tmp is filled up or too small.
: ${TMPDIR=/tmp}
{
# Use the mktemp program if available. If not available, hide the error
# message.
tmp=`(umask 077 && mktemp -d "$TMPDIR/gtXXXXXX") 2>/dev/null` &&
test -n "$tmp" && test -d "$tmp"
} ||
{
# Use a simple mkdir command. It is guaranteed to fail if the directory
# already exists. $RANDOM is bash specific and expands to empty in shells
# other than bash, ksh and zsh. Its use does not increase security;
# rather, it minimizes the probability of failure in a very cluttered /tmp
# directory.
tmp=$TMPDIR/gt$$-$RANDOM
(umask 077 && mkdir "$tmp")
} ||
{
echo "$0: cannot create a temporary directory in $TMPDIR" >&2
{ (exit 1); exit 1; }
}
}
# Support for relocatability.
func_find_curr_installdir ()
{
# Determine curr_installdir, even taking into account symlinks.
curr_executable="$0"
case "$curr_executable" in
*/* | *\\*) ;;
*) # Need to look in the PATH.
save_IFS="$IFS"; IFS="${PATH_SEPARATOR=':'}"
for dir in $PATH; do
IFS="$save_IFS"
test -z "$dir" && dir=.
for exec_ext in ''; do
if test -f "$dir/$curr_executable$exec_ext"; then
curr_executable="$dir/$curr_executable$exec_ext"
break 2
fi
done
done
IFS="$save_IFS"
;;
esac
# Make absolute.
case "$curr_executable" in
/* | ?:/* | ?:\\*) ;;
*) curr_executable=`pwd`/"$curr_executable" ;;
esac
# Resolve symlinks.
sed_dirname='s,/[^/]*$,,'
sed_linkdest='s,^.* -> \(.*\),\1,p'
while : ; do
lsline=`LC_ALL=C ls -l "$curr_executable"`
case "$lsline" in
*" -> "*)
linkdest=`echo "$lsline" | sed -n -e "$sed_linkdest"`
case "$linkdest" in
/* | ?:/* | ?:\\*) curr_executable="$linkdest" ;;
*) curr_executable=`echo "$curr_executable" | sed -e "$sed_dirname"`/"$linkdest" ;;
esac ;;
*) break ;;
esac
done
curr_installdir=`echo "$curr_executable" | sed -e 's,/[^/]*$,,'`
# Canonicalize.
curr_installdir=`cd "$curr_installdir" && pwd`
}
func_find_prefixes ()
{
# Compute the original/current installation prefixes by stripping the
# trailing directories off the original/current installation directories.
orig_installprefix="$orig_installdir"
curr_installprefix="$curr_installdir"
while true; do
orig_last=`echo "$orig_installprefix" | sed -n -e 's,^.*/\([^/]*\)$,\1,p'`
curr_last=`echo "$curr_installprefix" | sed -n -e 's,^.*/\([^/]*\)$,\1,p'`
if test -z "$orig_last" || test -z "$curr_last"; then
break
fi
if test "$orig_last" != "$curr_last"; then
break
fi
orig_installprefix=`echo "$orig_installprefix" | sed -e 's,/[^/]*$,,'`
curr_installprefix=`echo "$curr_installprefix" | sed -e 's,/[^/]*$,,'`
done
}
if test "no" = yes; then
exec_prefix="/usr"
bindir="/usr/bin"
orig_installdir="$bindir" # see Makefile.am's *_SCRIPTS variables
func_find_curr_installdir # determine curr_installdir
func_find_prefixes
# Relocate the directory variables that we use.
gettext_datadir=`echo "$gettext_datadir/" | sed -e "s%^${orig_installprefix}/%${curr_installprefix}/%" | sed -e 's,/$,,'`
fi
# func_trace_autoconf macro configure.ac
# traces an Autoconf macro call and outputs the arguments to stdout,
# using autom4te.
func_trace_autoconf ()
{
echo '\
dnl replace macros which may abort autom4te with a no-op variant
m4_pushdef([m4_assert])
m4_pushdef([m4_fatal])
m4_pushdef([m4_warn])
m4_pushdef([m4_errprintn])
m4_pushdef([m4_exit])
m4_pushdef([m4_include])
m4_pushdef([m4_esyscmd])
' \
| "$AUTOM4TE" --no-cache --language=Autoconf-without-aclocal-m4 \
--trace="$1":\$% - "$2" 2>/dev/null
}
# func_trace_sed macro configure.ac
# traces an Autoconf macro call and outputs the arguments to stdout,
# using sed.
func_trace_sed ()
{
sed_extract_arguments='
s,#.*$,,; s,^dnl .*$,,; s, dnl .*$,,;
/'"$1"'(/ {
ta
:a
s/)/)/
tb
s/\\$//
N
ba
:b
s,^.*'"$1"'([[ ]*\([^]"$`\\)]*\).*$,\1,p
}
d'
sed -e "$sed_extract_arguments" "$2"
}
# func_usage
# outputs to stdout the --help usage message.
func_usage ()
{
echo "\
Usage: gettextize [OPTION]... [package-dir]
Prepares a source package to use gettext.
Options:
--help print this help and exit
--version print version information and exit
-f, --force force writing of new files even if old exist
--intl install libintl in a subdirectory (deprecated)
--po-dir=DIR specify directory with PO files
--no-changelog don't update or create ChangeLog files
--symlink make symbolic links instead of copying files
-n, --dry-run print modifications but don't perform them
Report bugs to <bug-gnu-gettext@gnu.org>."
}
# func_version
# outputs to stdout the --version message.
func_version ()
{
echo "$progname (GNU $package) $version"
echo "Copyright (C) 1995-1998, 2000-2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law."
echo "Written by" "Ulrich Drepper"
}
# func_fatal_error message
# outputs to stderr a fatal error message, and terminates the program.
func_fatal_error ()
{
echo "gettextize: *** $1" 1>&2
echo "gettextize: *** Stop." 1>&2
exit 1
}
# Nuisances.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
# Unset more variables known to interfere with behavior of common tools.
CLICOLOR_FORCE= GREP_OPTIONS=
unset CLICOLOR_FORCE GREP_OPTIONS
# Command-line option processing.
# Removes the OPTIONS from the arguments. Sets the variables:
# - force 1 if --force was given, 0 otherwise
# - intldir yes if --intl was given, empty otherwise
# - podirs list of directories specified with --po-dir
# - try_ln_s : if --symlink was given, false otherwise
# - do_changelog false if --no-changelog was given, : otherwise
# - doit false if --dry-run was given, : otherwise
{
force=0
intldir=
podirs=
try_ln_s=false
do_changelog=:
doit=:
while test $# -gt 0; do
case "$1" in
-c | --copy | --cop | --co | --c ) # accepted for backward compatibility
shift ;;
-n | --dry-run | --dry-ru | --dry-r | --dry- | --dry | --dr | --d )
shift
doit=false ;;
-f | --force | --forc | --for | --fo | --f )
shift
force=1 ;;
--help | --hel | --he | --h )
func_usage; exit 0 ;;
--intl | --int | --in | --i )
shift
intldir=yes ;;
--po-dir | --po-di | --po-d | --po- | --po | --p )
shift
if test $# = 0; then
func_fatal_error "missing argument for --po-dir"
fi
case "$1" in
-*) func_fatal_error "missing argument for --po-dir" ;;
esac
podirs="$podirs $1"
shift ;;
--po-dir=* )
arg=`echo "X$1" | sed -e 's/^X--po-dir=//'`
podirs="$podirs $arg"
shift ;;
--no-changelog | --no-changelo | --no-changel | --no-change | --no-chang | --no-chan | --no-cha | --no-ch | --no-c )
shift
do_changelog=false ;;
--symlink | --symlin | --symli | --syml | --sym | --sy | --s )
shift
try_ln_s=: ;;
--version | --versio | --versi | --vers | --ver | --ve | --v )
func_version
exit 0 ;;
-- ) # Stop option prcessing
shift; break ;;
-* )
echo "gettextize: unknown option $1" 1>&2
echo "Try 'gettextize --help' for more information." 1>&2
exit 1 ;;
* )
break ;;
esac
done
# podirs defaults to "po".
test -n "$podirs" || podirs="po"
}
# Warn about deprecated options.
if test -n "$intldir"; then
echo "gettextize: warning: the option '--intl' is deprecated and will be removed" 1>&2
fi
# Command-line argument processing.
# Analyzes the remaining arguments.
# Sets the variables
# - origdir to the original directory,
# - srcdir to the package directory, and cd-s into it.
{
if test $# -gt 1; then
func_usage 1>&2
exit 1
fi
origdir=`pwd`
if test $# -eq 1; then
srcdir=$1
if cd "$srcdir"; then
srcdir=`pwd`
else
func_fatal_error "Cannot change directory to '$srcdir'."
fi
else
srcdir=$origdir
fi
}
# The current directory is now $srcdir.
# Check integrity of package: A configure.in/ac must be present. Sets variable
# - configure_in name of configure.in/ac file.
test -f configure.in || test -f configure.ac ||
func_fatal_error "Missing configure.in or configure.ac, please cd to your package first."
configure_in=NONE
if test -f configure.in; then
configure_in=configure.in
else
if test -f configure.ac; then
configure_in=configure.ac
fi
fi
# Check whether the --force option is needed but has not been specified.
if test $force -eq 0; then
if test -d intl; then
func_fatal_error "intl/ subdirectory exists: use option -f if you really want to delete it."
fi
for podir in $podirs; do
if test -f "$podir/Makefile.in.in"; then
func_fatal_error "$podir/Makefile.in.in exists: use option -f if you really want to delete it."
fi
done
if test -f ABOUT-NLS; then
func_fatal_error "ABOUT-NLS exists: use option -f if you really want to delete it."
fi
fi
# Select the method for Autoconf macro tracing. func_trace_autoconf
# is more accurate than func_trace_sed, but it only works with
# autoconf >= 2.69.
if echo "AC_PREREQ([2.69])" \
| "$AUTOM4TE" --no-cache --language=Autoconf-without-aclocal-m4 - 2>&1; then
func_trace=func_trace_autoconf
else
func_trace=func_trace_sed
fi
# Check in which directory config.rpath etc. belong.
auxdir=`"$func_trace" AC_CONFIG_AUX_DIR "$configure_in"`
if test -n "$auxdir"; then
auxdir="$auxdir/"
fi
# Check in which directory gettext.m4 etc. belong.
macrodirs=`"$func_trace" AC_CONFIG_MACRO_DIR_TRACE "$configure_in"`
if test -z "$macrodirs"; then
macrodirs=`"$func_trace" AC_CONFIG_MACRO_DIR "$configure_in"`
fi
for arg in $macrodirs; do
m4dir="$arg"
break
done
# For simplicity we change to the gettext source directory.
cd "$gettext_datadir" ||
func_fatal_error "gettext source directory '${gettext_datadir}' doesn't exist"
# Variables which keep track what has been modified.
added_directories=
removed_directory=
added_extradist=
added_acoutput=
removed_acoutput=" intl/intlh.inst"
# Variable:
# - please accumulates instructions for the user.
please=
# Variable:
# - date current date, for use in ChangeLog entries.
date=`date +%Y-%m-%d`
# func_copy from to
# copies a file.
# 'from' is a relative pathname, relative to the current directory.
# 'to' is a relative pathname, relative to $srcdir.
func_copy ()
{
if $doit; then
rm -f "$srcdir/$2"
echo "Copying file $2"
cp "$1" "$srcdir/$2"
else
echo "Copy file $2"
fi
}
# func_linkorcopy from absfrom to
# links or copies a file.
# 'from' is a relative pathname, relative to the current directory.
# 'absfrom' is the corresponding absolute pathname.
# 'to' is a relative pathname, relative to $srcdir.
func_linkorcopy ()
{
if $doit; then
rm -f "$srcdir/$3"
($try_ln_s && ln -s "$2" "$srcdir/$3" && echo "Symlinking file $3") 2>/dev/null ||
{ echo "Copying file $3"; cp "$1" "$srcdir/$3"; }
else
if $try_ln_s; then
echo "Symlink file $3"
else
echo "Copy file $3"
fi
fi
}
# func_backup to
# makes a backup of a file that is about to be overwritten or replaced.
# 'to' is a relative pathname, relative to $srcdir.
func_backup ()
{
if $doit; then
if test -f "$srcdir/$1"; then
rm -f "$srcdir/$1~"
cp -p "$srcdir/$1" "$srcdir/$1~"
fi
fi
}
# func_remove to
# removes a file.
# 'to' is a relative pathname, relative to $srcdir.
func_remove ()
{
if $doit; then
echo "Removing $1"
rm -f "$srcdir/$1"
else
echo "Remove $1"
fi
}
# func_ChangeLog_init
# func_ChangeLog_add_entry line
# func_ChangeLog_finish
# manage the ChangeLog file, relative to $srcdir.
func_ChangeLog_init ()
{
modified_ChangeLog=
}
func_ChangeLog_add_entry ()
{
if $doit; then
if test -z "$modified_ChangeLog"; then
echo "$date gettextize <bug-gnu-gettext@gnu.org>" > "$srcdir/ChangeLog.tmp"
echo >> "$srcdir/ChangeLog.tmp"
modified_ChangeLog=yes
fi
echo "$1" >> "$srcdir/ChangeLog.tmp"
else
modified_ChangeLog=yes
fi
}
func_ChangeLog_finish ()
{
if test -n "$modified_ChangeLog"; then
if $doit; then
echo >> "$srcdir/ChangeLog.tmp"
if test -f "$srcdir/ChangeLog"; then
echo "Adding an entry to ChangeLog (backup is in ChangeLog~)"
cat "$srcdir/ChangeLog" >> "$srcdir/ChangeLog.tmp"
rm -f "$srcdir/ChangeLog~"
cp -p "$srcdir/ChangeLog" "$srcdir/ChangeLog~"
else
echo "Creating ChangeLog"
fi
cp "$srcdir/ChangeLog.tmp" "$srcdir/ChangeLog"
rm -f "$srcdir/ChangeLog.tmp"
else
if test -f "$srcdir/ChangeLog"; then
echo "Add an entry to ChangeLog"
else
echo "Create ChangeLog"
fi
fi
fi
}
# func_poChangeLog_init
# func_poChangeLog_add_entry line
# func_poChangeLog_finish
# manage the $podir/ChangeLog file, relative to $srcdir.
func_poChangeLog_init ()
{
modified_poChangeLog=
}
func_poChangeLog_add_entry ()
{
if $doit; then
if test -z "$modified_poChangeLog"; then
echo "$date gettextize <bug-gnu-gettext@gnu.org>" > "$srcdir/$podir/ChangeLog.tmp"
echo >> "$srcdir/$podir/ChangeLog.tmp"
modified_poChangeLog=yes
fi
echo "$1" >> "$srcdir/$podir/ChangeLog.tmp"
else
modified_poChangeLog=yes
fi
}
func_poChangeLog_finish ()
{
if test -n "$modified_poChangeLog"; then
if $doit; then
echo >> "$srcdir/$podir/ChangeLog.tmp"
if test -f "$srcdir/$podir/ChangeLog"; then
echo "Adding an entry to $podir/ChangeLog (backup is in $podir/ChangeLog~)"
cat "$srcdir/$podir/ChangeLog" >> "$srcdir/$podir/ChangeLog.tmp"
rm -f "$srcdir/$podir/ChangeLog~"
cp -p "$srcdir/$podir/ChangeLog" "$srcdir/$podir/ChangeLog~"
else
echo "Creating $podir/ChangeLog"
fi
cp "$srcdir/$podir/ChangeLog.tmp" "$srcdir/$podir/ChangeLog"
rm -f "$srcdir/$podir/ChangeLog.tmp"
else
if test -f "$srcdir/$podir/ChangeLog"; then
echo "Add an entry to $podir/ChangeLog"
else
echo "Create $podir/ChangeLog"
fi
fi
fi
}
# func_m4ChangeLog_init
# func_m4ChangeLog_add_entry line
# func_m4ChangeLog_finish
# manage the $m4dir/ChangeLog file, relative to $srcdir.
func_m4ChangeLog_init ()
{
if test -n "$using_m4ChangeLog"; then
modified_m4ChangeLog=
created_m4ChangeLog=
fi
}
func_m4ChangeLog_add_entry ()
{
if test -n "$using_m4ChangeLog"; then
if $doit; then
if test -z "$modified_m4ChangeLog"; then
echo "$date gettextize <bug-gnu-gettext@gnu.org>" > "$srcdir/$m4dir/ChangeLog.tmp"
echo >> "$srcdir/$m4dir/ChangeLog.tmp"
modified_m4ChangeLog=yes
fi
echo "$1" >> "$srcdir/$m4dir/ChangeLog.tmp"
else
modified_m4ChangeLog=yes
fi
else
line="$1"
line=`echo "$line" | sed -e "s%^ \\* % * $m4dir/%"`
func_ChangeLog_add_entry "$line"
fi
}
func_m4ChangeLog_finish ()
{
if test -n "$using_m4ChangeLog"; then
if test -n "$modified_m4ChangeLog"; then
if $doit; then
echo >> "$srcdir/$m4dir/ChangeLog.tmp"
if test -f "$srcdir/$m4dir/ChangeLog"; then
echo "Adding an entry to $m4dir/ChangeLog (backup is in $m4dir/ChangeLog~)"
cat "$srcdir/$m4dir/ChangeLog" >> "$srcdir/$m4dir/ChangeLog.tmp"
rm -f "$srcdir/$m4dir/ChangeLog~"
cp -p "$srcdir/$m4dir/ChangeLog" "$srcdir/$m4dir/ChangeLog~"
else
echo "Creating $m4dir/ChangeLog"
created_m4ChangeLog=yes
fi
cp "$srcdir/$m4dir/ChangeLog.tmp" "$srcdir/$m4dir/ChangeLog"
rm -f "$srcdir/$m4dir/ChangeLog.tmp"
else
if test -f "$srcdir/$m4dir/ChangeLog"; then
echo "Add an entry to $m4dir/ChangeLog"
else
echo "Create $m4dir/ChangeLog"
created_m4ChangeLog=yes
fi
fi
fi
fi
}
using_m4ChangeLog=yes
if test ! -f "$srcdir/intl/Makefile.in" && test -n "$intldir"; then
added_acoutput="$added_acoutput intl/Makefile"
fi
if test -f "$srcdir/intl/Makefile.in" && test -z "$intldir"; then
removed_acoutput="$removed_acoutput intl/Makefile"
fi
if test -d "$srcdir/intl"; then
# Remove everything inside intl except for RCS and CVS subdirs and invisible
# files.
if $doit; then
echo "Wiping out intl/ subdirectory"
(cd "$srcdir/intl" &&
for f in *; do
if test CVS != "$f" && test RCS != "$f"; then
rm -rf "$f"
fi
done)
else
echo "Wipe out intl/ subdirectory"
fi
if test -z "$intldir"; then
removed_directory=intl
fi
else
if test -n "$intldir"; then
if $doit; then
echo "Creating intl/ subdirectory"
mkdir "$srcdir/intl" || func_fatal_error "failed to create intl/ subdirectory"
else
echo "Create intl/ subdirectory"
fi
added_directories="$added_directories intl"
fi
fi
$do_changelog && func_ChangeLog_init
for podir in $podirs; do
test -d "$srcdir/$podir" || {
if $doit; then
echo "Creating $podir/ subdirectory"
mkdir "$srcdir/$podir" || func_fatal_error "failed to create $podir/ subdirectory"
else
echo "Create $podir/ subdirectory"
fi
added_directories="$added_directories $podir"
}
done
# Create the directory for config.rpath, if needed.
# This is for consistency with autoreconf and automake.
# Note that $auxdir is either empty or ends in a slash.
test -d "$srcdir/$auxdir" || {
if $doit; then
echo "Creating $auxdir subdirectory"
mkdir "$srcdir/$auxdir" || func_fatal_error "failed to create $auxdir subdirectory"
else
echo "Create $auxdir subdirectory"
fi
}
# Now copy all files. Take care for the destination directories.
for file in *; do
case $file in
ABOUT-NLS)
func_linkorcopy $file "$gettext_datadir/$file" $file
;;
config.rpath)
if test -f "$srcdir/$auxdir$file"; then
:
else
added_extradist="$added_extradist $auxdir$file"
fi
func_linkorcopy $file "$gettext_datadir/$file" "$auxdir$file"
;;
esac
done
# Copy files to intl/ subdirectory.
if test -n "$intldir"; then
cd intl
for file in *; do
if test $file != COPYING.LIB-2.0 && test $file != COPYING.LIB-2.1; then
if test $file != plural.c; then
func_linkorcopy $file "$gettext_datadir/intl/$file" intl/$file
else
# plural.c is a generated file; it must be copied and touched.
func_copy $file intl/$file
if $doit; then
(sleep 2; touch "$srcdir/intl/$file") &
fi
fi
fi
done
cd ..
else
echo "Not copying intl/ directory."
# Tell the user what to put into configure.ac, if it is not already there.
external=
# Need to use func_trace_sed instead of $func_trace, since
# AM_GNU_GETTEXT is not a standard Autoconf trace.
xargs=`func_trace_sed AM_GNU_GETTEXT "$srcdir/$configure_in"`
save_IFS="$IFS"; IFS=:
for arg in $xargs; do
if test 'external' = "$arg"; then
external=yes
break
fi
done
IFS="$save_IFS"
if test -z "$external"; then
please="$please
Please use AM_GNU_GETTEXT([external]) in order to cause autoconfiguration
to look for an external libintl.
"
fi
fi
# Copy files to po/ subdirectory.
cd po
for podir in $podirs; do
$do_changelog && func_poChangeLog_init
for file in Makefile.in.in; do
same=no
if test -f "$srcdir/$podir/$file"; then
if cmp -s $file "$srcdir/$podir/$file"; then
same=yes
fi
else
added_acoutput="$added_acoutput $podir/Makefile.in"
fi
if $do_changelog && test $same = no; then
if test -f "$srcdir/$podir/$file"; then
func_poChangeLog_add_entry " * $file: Upgrade to gettext-${version}."
else
func_poChangeLog_add_entry " * $file: New file, from gettext-${version}."
fi
fi
func_backup "$podir/$file"
func_linkorcopy $file "$gettext_datadir/po/$file" "$podir/$file"
done
for file in *; do
case $file in
Makefile.in.in)
# Already handled above.
;;
Makevars.template)
func_linkorcopy Makevars.template "$gettext_datadir/po/Makevars.template" "$podir/Makevars.template"
if test -f "$srcdir/po/Makevars"; then
LC_ALL=C sed -n -e 's/[ ]*\([A-Za-z0-9_]*\)[ ]*=.*/\1/p' < "$srcdir/$podir/Makevars" | LC_ALL=C sort > "$srcdir/$podir/Makevars.tmp1"
LC_ALL=C sed -n -e 's/[ ]*\([A-Za-z0-9_]*\)[ ]*=.*/\1/p' < "$srcdir/$podir/Makevars.template" | LC_ALL=C sort > "$srcdir/$podir/Makevars.tmp2"
missingvars=`LC_ALL=C comm -13 "$srcdir/$podir/Makevars.tmp1" "$srcdir/$podir/Makevars.tmp2"`
rm -f "$srcdir/$podir/Makevars.tmp1" "$srcdir/$podir/Makevars.tmp2"
if test -n "$missingvars"; then
please="$please
Please update $podir/Makevars so that it defines all the variables mentioned
in $podir/Makevars.template.
You can then remove $podir/Makevars.template.
"
fi
else
please="$please
Please create $podir/Makevars from the template in $podir/Makevars.template.
You can then remove $podir/Makevars.template.
"
fi
;;
*)
same=no
if test -f "$srcdir/$podir/$file"; then
if cmp -s $file "$srcdir/$podir/$file"; then
same=yes
fi
fi
if $do_changelog && test $same = no; then
if test -f "$srcdir/$podir/$file"; then
func_poChangeLog_add_entry " * $file: Upgrade to gettext-${version}."
else
func_poChangeLog_add_entry " * $file: New file, from gettext-${version}."
fi
fi
func_backup "$podir/$file"
func_linkorcopy $file "$gettext_datadir/po/$file" "$podir/$file"
;;
esac
done
if test -f "$srcdir/$podir/cat-id-tbl.c"; then
func_remove "$podir/cat-id-tbl.c"
$do_changelog && func_poChangeLog_add_entry " * cat-id-tbl.c: Remove file."
fi
if test -f "$srcdir/$podir/stamp-cat-id"; then
func_remove "$podir/stamp-cat-id"
$do_changelog && func_poChangeLog_add_entry " * stamp-cat-id: Remove file."
fi
if test ! -f "$srcdir/$podir/POTFILES.in"; then
if $doit; then
echo "Creating initial $podir/POTFILES.in"
echo '# List of source files which contain translatable strings.' > "$srcdir/$podir/POTFILES.in"
else
echo "Create initial $podir/POTFILES.in"
fi
$do_changelog && func_poChangeLog_add_entry " * POTFILES.in: New file."
please="$please
Please fill $podir/POTFILES.in as described in the documentation.
"
fi
$do_changelog && func_poChangeLog_finish
done
# Determine whether we can assume automake 1.9 or newer.
have_automake19=
if (aclocal --version) >/dev/null 2>/dev/null; then
aclocal_version=`aclocal --version | sed -n -e 1p | sed -e 's/^[^0-9]*//'`
case $aclocal_version in
1.9* | 1.[1-9][0-9]* | [2-9]*) have_automake19=yes ;;
esac
fi
m4filelist='gettext.m4 iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 nls.m4
po.m4 progtest.m4'
# With aclocal versions < 1.9 we need all m4 files, otherwise "aclocal -I m4"
# might give an error. (aclocal < 1.9 didn't know which macros are really
# needed, it looked which macros are potentially needed.)
min_automake_version=1.9
if test -n "$intldir" || test -z "$have_automake19"; then
# Add intldir.m4, intl.m4 and its dependencies.
m4filelist=$m4filelist' codeset.m4 fcntl-o.m4 glibc2.m4 glibc21.m4 intdiv0.m4
intl.m4 intldir.m4 intlmacosx.m4 intmax.m4 inttypes_h.m4 inttypes-pri.m4
lcmessage.m4 lock.m4 longlong.m4 printf-posix.m4 size_max.m4 stdint_h.m4
threadlib.m4 uintmax_t.m4 visibility.m4 wchar_t.m4 wint_t.m4 xsize.m4'
min_automake_version=1.8
fi
# All sorts of bugs could occur if the configure file was remade with the wrong
# version of gettext.m4 et al. (because then the configure and the po/Makefile.in.in
# don't fit together). It is therefore important that the package carries the
# right versions of gettext.m4 et al. with it.
if test -f "$srcdir/Makefile.am"; then
# A package using automake.
# Determine whether it's using automake 1.8 or newer.
have_automake18=
if (aclocal --version) >/dev/null 2>/dev/null; then
aclocal_version=`aclocal --version | sed -n -e 1p | sed -e 's/^[^0-9]*//'`
case $aclocal_version in
1.[8-9]* | 1.[1-9][0-9]* | [2-9]*) have_automake18=yes ;;
esac
fi
if test -z "$m4dir"; then
# Extract the macro directory name from Makefile.am.
aclocal_amflags=`grep '^ACLOCAL_AMFLAGS[ ]*=' "$srcdir/Makefile.am" | sed -e 's/^ACLOCAL_AMFLAGS[ ]*=\(.*\)$/\1/'`
m4dir_is_next=
for arg in $aclocal_amflags; do
if test -n "$m4dir_is_next"; then
# Ignore absolute directory pathnames, like /usr/local/share/aclocal.
case "$arg" in
/*) ;;
*)
test -z "$m4dir" || m4dir="$arg"
macrodirs="$macrodirs $arg"
;;
esac
m4dir_is_next=
else
if test "X$arg" = "X-I"; then
m4dir_is_next=yes
else
m4dir_is_next=
fi
fi
done
for arg in $macrodirs; do
m4dir="$arg"
break
done
fi
if test -z "$m4dir"; then
m4dir=m4
m4dir_defaulted=yes
fi
# Decide whether to use $m4dir/ChangeLog, or to use ChangeLog instead.
if test -d "$srcdir/$m4dir" && test -f "$srcdir/ChangeLog" && test ! -f "$srcdir/$m4dir/ChangeLog"; then
# The programmer has no $m4dir/ChangeLog so far. Don't introduce one.
using_m4ChangeLog=
fi
# Update the *.m4 files and the corresponding Makefile.am.
$do_changelog && func_m4ChangeLog_init
added_m4dir=
added_m4files=
if test -d "$srcdir/$m4dir"; then
:
else
if $doit; then
echo "Creating directory $m4dir"
mkdir "$srcdir/$m4dir"
else
echo "Create directory $m4dir"
fi
added_m4dir=yes
fi
for file in $m4filelist; do
same=no
if test -f "$srcdir/$m4dir/$file"; then
if cmp -s "/usr/share/aclocal/$file" "$srcdir/$m4dir/$file"; then
same=yes
fi
else
added_m4files="$added_m4files $file"
fi
if $do_changelog && test $same = no; then
if test -f "$srcdir/$m4dir/$file"; then
func_m4ChangeLog_add_entry " * $file: Upgrade to gettext-${version}."
else
func_m4ChangeLog_add_entry " * $file: New file, from gettext-${version}."
fi
fi
func_backup "$m4dir/$file"
func_linkorcopy "/usr/share/aclocal/$file" "/usr/share/aclocal/$file" "$m4dir/$file"
done
missing_m4Makefileam=
if test -n "$added_m4files"; then
if test -f "$srcdir/$m4dir/Makefile.am"; then
if $doit; then
echo "Updating EXTRA_DIST in $m4dir/Makefile.am (backup is in $m4dir/Makefile.am~)"
func_backup "$m4dir/Makefile.am"
rm -f "$srcdir/$m4dir/Makefile.am"
if grep '^EXTRA_DIST[ ]*=' "$srcdir/$m4dir/Makefile.am~" > /dev/null; then
sed -e "s%^\(EXTRA_DIST[ ]*=\) \\?%\\1$added_m4files %" < "$srcdir/$m4dir/Makefile.am~" > "$srcdir/$m4dir/Makefile.am"
$do_changelog && func_m4ChangeLog_add_entry " * Makefile.am (EXTRA_DIST): Add the new files."
else
(cat "$srcdir/$m4dir/Makefile.am~"; echo; echo "EXTRA_DIST =$added_m4files") > "$srcdir/$m4dir/Makefile.am"
$do_changelog && func_m4ChangeLog_add_entry " * Makefile.am (EXTRA_DIST): New variable."
fi
else
echo "Update EXTRA_DIST in $m4dir/Makefile.am"
$do_changelog && func_m4ChangeLog_add_entry " * Makefile.am (EXTRA_DIST)."
fi
else
# $m4dir/Makefile.am is not needed any more when aclocal 1.8 or newer
# is used.
if test -z "$have_automake18"; then
if $doit; then
echo "Creating $m4dir/Makefile.am"
echo "EXTRA_DIST =$added_m4files" > "$srcdir/$m4dir/Makefile.am"
else
echo "Create $m4dir/Makefile.am"
fi
$do_changelog && func_m4ChangeLog_add_entry " * Makefile.am: New file."
added_acoutput="$added_acoutput $m4dir/Makefile"
else
missing_m4Makefileam=yes
fi
fi
fi
if test -n "$added_m4dir" && test -z "$missing_m4Makefileam"; then
added_directories="$added_directories $m4dir"
fi
$do_changelog && func_m4ChangeLog_finish
# automake will arrange for $m4dir/ChangeLog to be distributed if a
# $m4dir/Makefile.am exists. If not, we need to add it to Makefile.am's
# EXTRA_DIST explicitly.
if test -n "$created_m4ChangeLog" && test -n "$missing_m4Makefileam"; then
added_extradist="$added_extradist $m4dir/ChangeLog"
fi
# Update the top-level Makefile.am.
modified_Makefile_am=
# func_modify_Makefile_am changelog_comment
# assumes a modified copy of $srcdir/Makefile.am in $srcdir/Makefile.am.tmp
# and replaces the original Makefile.am file with the modified one if
# the two files differ. Then it removes the modified copy.
func_modify_Makefile_am ()
{
if cmp -s "$srcdir/Makefile.am" "$srcdir/Makefile.am.tmp"; then
:
else
if test -z "$modified_Makefile_am"; then
if $doit; then
echo "Updating Makefile.am (backup is in Makefile.am~)"
func_backup Makefile.am
else
echo "Update Makefile.am"
fi
fi
if $doit; then
rm -f "$srcdir/Makefile.am"
cp "$srcdir/Makefile.am.tmp" "$srcdir/Makefile.am"
fi
if $do_changelog; then
if test -z "$modified_Makefile_am"; then
func_ChangeLog_add_entry " * Makefile.am $1"
else
func_ChangeLog_add_entry " $1"
fi
fi
modified_Makefile_am=yes
fi
rm -f "$srcdir/Makefile.am.tmp"
}
if test -n "$added_directories"; then
if grep '^SUBDIRS[ ]*=' "$srcdir/Makefile.am" > /dev/null; then
sed -e "s%^\(SUBDIRS[ ]*=\) \\?%\\1$added_directories %" < "$srcdir/Makefile.am" > "$srcdir/Makefile.am.tmp"
added_directories_pretty=`echo $added_directories | sed -e 's/ /, /g'`
func_modify_Makefile_am "(SUBDIRS): Add $added_directories_pretty."
else
(cat "$srcdir/Makefile.am"; echo; echo "SUBDIRS =$added_directories") > "$srcdir/Makefile.am.tmp"
func_modify_Makefile_am "(SUBDIRS): New variable."
fi
fi
if test -n "$removed_directory"; then
sed -e '/^SUBDIRS[ ]*=/ {
:a
s%\([ ]\)'"$removed_directory"'[ ]%\1%
s%[ ]'"$removed_directory"'$%%
tb
:b
s%\\$%\\%
tc
bd
:c
n
ba
:d
}' < "$srcdir/Makefile.am" > "$srcdir/Makefile.am.tmp"
func_modify_Makefile_am "(SUBDIRS): Remove $removed_directory."
fi
if test -n "$added_directories"; then
if grep '^DIST_SUBDIRS[ ]*=' "$srcdir/Makefile.am" > /dev/null; then
sed -e "s%^\(DIST_SUBDIRS[ ]*=\) \\?%\\1$added_directories %" < "$srcdir/Makefile.am" > "$srcdir/Makefile.am.tmp"
added_directories_pretty=`echo $added_directories | sed -e 's/ /, /g'`
func_modify_Makefile_am "(DIST_SUBDIRS): Add $added_directories_pretty."
fi
fi
if test -n "$removed_directory"; then
sed -e '/^DIST_SUBDIRS[ ]*=/ {
:a
s%\([ ]\)'"$removed_directory"'[ ]%\1%
s%[ ]'"$removed_directory"'$%%
tb
:b
s%\\$%\\%
tc
bd
:c
n
ba
:d
}' < "$srcdir/Makefile.am" > "$srcdir/Makefile.am.tmp"
func_modify_Makefile_am "(DIST_SUBDIRS): Remove $removed_directory."
fi
if test -n "$m4dir_defaulted"; then
if grep '^ACLOCAL_AMFLAGS[ ]*=' "$srcdir/Makefile.am" > /dev/null; then
sed -e "s%^\(ACLOCAL_AMFLAGS[ ]*=\) \\?%\\1 -I $m4dir %" < "$srcdir/Makefile.am" > "$srcdir/Makefile.am.tmp"
func_modify_Makefile_am "(ACLOCAL_AMFLAGS): Add -I $m4dir."
else
(cat "$srcdir/Makefile.am"; echo; echo "ACLOCAL_AMFLAGS = -I $m4dir") > "$srcdir/Makefile.am.tmp"
func_modify_Makefile_am "(ACLOCAL_AMFLAGS): New variable."
fi
# Also update Makefile.in and, if existent, Makefile. Otherwise they
# would take into account the new flags only after a few rounds of
# "./configure", "make", "touch configure.in", "make distclean".
if $doit; then
for file in Makefile.in Makefile; do
if test -f "$srcdir/$file"; then
func_backup $file
rm -f "$srcdir/$file"
sed -e "s%(ACLOCAL)%(ACLOCAL) -I $m4dir%" < "$srcdir/$file~" > "$srcdir/$file"
fi
done
fi
fi
if test -n "$added_extradist"; then
if grep '^EXTRA_DIST[ ]*=' "$srcdir/Makefile.am" > /dev/null; then
sed -e "s%^\(EXTRA_DIST[ ]*=\)%\\1$added_extradist %" < "$srcdir/Makefile.am" > "$srcdir/Makefile.am.tmp"
added_extradist_pretty=`echo $added_extradist | sed -e 's/ /, /g'`
func_modify_Makefile_am "(EXTRA_DIST): Add $added_extradist_pretty."
else
(cat "$srcdir/Makefile.am"; echo; echo "EXTRA_DIST =$added_extradist") > "$srcdir/Makefile.am.tmp"
func_modify_Makefile_am "(EXTRA_DIST): New variable."
fi
fi
# Extract the aclocal options name from Makefile.am.
aclocal_options=
for arg in $macrodirs; do
aclocal_options="$aclocal_options -I $arg"
done
please="$please
Please run 'aclocal$aclocal_options' to regenerate the aclocal.m4 file.
You need aclocal from GNU automake $min_automake_version (or newer) to do this.
Then run 'autoconf' to regenerate the configure file.
"
# Also create $m4dir/Makefile.in from $m4dir/Makefile.am, because automake
# doesn't do it by itself.
if $doit; then
case "$added_acoutput" in
*" $m4dir/Makefile")
(cd "$srcdir" && automake "$m4dir/Makefile") 2>/dev/null ||
please="$please
Please run 'automake $m4dir/Makefile' to create $m4dir/Makefile.in
"
;;
esac
fi
else
please="$please
Please add the files
$m4filelist
from the /usr/share/aclocal directory to your aclocal.m4 file.
"
fi
modified_configure_in=
# func_modify_configure_in changelog_comment
# assumes a modified copy of $srcdir/$configure_in in $srcdir/$configure_in.tmp
# and replaces the original configure.in/ac file with the modified one if
# the two files differ. Then it removes the modified copy.
func_modify_configure_in ()
{
if cmp -s "$srcdir/$configure_in" "$srcdir/$configure_in.tmp"; then
:
else
if test -z "$modified_configure_in"; then
if $doit; then
echo "Updating $configure_in (backup is in $configure_in~)"
func_backup $configure_in
else
echo "Update $configure_in"
fi
fi
if $doit; then
rm -f "$srcdir/$configure_in"
cp "$srcdir/$configure_in.tmp" "$srcdir/$configure_in"
fi
if $do_changelog; then
if test -z "$modified_configure_in"; then
func_ChangeLog_add_entry " * $configure_in $1"
else
func_ChangeLog_add_entry " $1"
fi
fi
modified_configure_in=yes
fi
rm -f "$srcdir/$configure_in.tmp"
}
if test -n "$added_acoutput"; then
if grep '^AC_CONFIG_FILES(' "$srcdir/$configure_in" > /dev/null; then
sedprog='
ta
b
:a
n
ba'
sed -e "s%^\\(AC_CONFIG_FILES([^])\\,]*\\)%\\1$added_acoutput%$sedprog" < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp"
added_acoutput_pretty=`echo $added_acoutput | sed -e 's/ /, /g'`
func_modify_configure_in "(AC_CONFIG_FILES): Add $added_acoutput_pretty."
else
if grep '^AC_OUTPUT(' "$srcdir/$configure_in" > /dev/null; then
sed -e "s%^\\(AC_OUTPUT([^])\\,]*\\)%\\1$added_acoutput%" < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp"
added_acoutput_pretty=`echo $added_acoutput | sed -e 's/ /, /g'`
func_modify_configure_in "(AC_OUTPUT): Add $added_acoutput_pretty."
else
please="$please
Please add$added_acoutput to the AC_OUTPUT or AC_CONFIG_FILES invocation in the $configure_in file.
"
fi
fi
fi
if test -n "$removed_acoutput"; then
for file in $removed_acoutput; do
tag=
sedprog='{
s%\([[ ]\)'"$file"'[ ]%\1%
s%\([[ ]\)'"$file"'\([]),]\)%\1\2%
s%[[ ]'"$file"'$%%
:a
tb
:b
s%\\$%\\%
tc
bd
:c
n
s%\([ ]\)'"$file"'[ ]%\1%
s%\([ ]\)'"$file"'\([]),]\)%\1\2%
s%[ ]'"$file"'$%%
ba
:d
}'
sed -e '/^AC_CONFIG_FILES(/'"$sedprog" < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp"
if cmp -s "$srcdir/$configure_in" "$srcdir/$configure_in.tmp"; then
sed -e '/^AC_OUTPUT(/'"$sedprog" < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp"
if cmp -s "$srcdir/$configure_in" "$srcdir/$configure_in.tmp"; then
:
else
tag=AC_OUTPUT
fi
else
tag=AC_CONFIG_FILES
fi
if test -n "$tag"; then
func_modify_configure_in "($tag): Remove $file."
else
rm -f "$srcdir/$configure_in.tmp"
if test "$file" != intl/intlh.inst; then
please="$please
Please remove $file from the AC_OUTPUT or AC_CONFIG_FILES invocation
in the $configure_in file.
"
fi
fi
done
fi
sed -e 's%sed -e "/POTFILES =/r po/POTFILES" po/Makefile\.in > po/Makefile *;* *%%' < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp"
func_modify_configure_in "(AC_OUTPUT): Remove command that created po/Makefile."
sed -e '/^\(dnl \|\)AC_LINK_FILES(\$nls_cv_header_libgt, \$nls_cv_header_intl)$/d' < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp"
func_modify_configure_in "(AC_LINK_FILES): Remove invocation."
# AM_GNU_GETTEXT_VERSION may not be present, when AM_GNU_GETTEXT_REQUIRE_VERSION is used.
if grep '^AM_GNU_GETTEXT_VERSION(' "$srcdir/$configure_in" 2>&1 >/dev/null; then
sed -e 's/^AM_GNU_GETTEXT_VERSION([^()]*)/AM_GNU_GETTEXT_VERSION(['"$archive_version"'])/' < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp"
func_modify_configure_in "(AM_GNU_GETTEXT_VERSION): Bump to $archive_version."
fi
$do_changelog && func_ChangeLog_finish
# Recommend replacement for deprecated Makefile variables.
use_libtool=`cat "$srcdir/$configure_in" | grep '^A[CM]_PROG_LIBTOOL'`
for file in `(cd "$srcdir"; find . -name Makefile.am -print; find . -name Makefile.in -print) | sed -e 's,^\./,,'`; do
if test -f "$srcdir/$file"; then
if test `echo "$file" | sed -e 's,^.*/,,'` = Makefile.in && grep automake "$srcdir/$file" >/dev/null 2>&1; then
continue;
fi
# INTLLIBS is deprecated because it doesn't distinguish the two
# cases: with libtool, without libtool.
if grep '@''INTLLIBS''@' "$srcdir/$file" >/dev/null 2>&1; then
if test -n "$use_libtool"; then
please="$please
Please change $file to use @""LTLIBINTL""@ or @""LIBINTL""@ instead of
@""INTLLIBS""@. Which one, depends whether it is used with libtool or not.
@""INTLLIBS""@ will go away.
"
else
please="$please
Please change $file to use @""LIBINTL""@ instead of @""INTLLIBS""@.
@""INTLLIBS""@ will go away.
"
fi
fi
# DATADIRNAME is deprecated because we install only .gmo files nowadays,
# which can be stored in the platform independent $prefix/share hierarchy.
if grep '@''DATADIRNAME''@' "$srcdir/$file" >/dev/null 2>&1; then
please="$please
Please change $file to use the constant string \"share\" instead of
@""DATADIRNAME""@. @""DATADIRNAME""@ will go away.
"
fi
# INSTOBJEXT is deprecated because we install only .gmo files nowadays,
# no catgets .cat catalogs.
if grep '@''INSTOBJEXT''@' "$srcdir/$file" >/dev/null 2>&1; then
please="$please
Please change $file to use the constant string \".mo\" instead of
@""INSTOBJEXT""@. @""INSTOBJEXT""@ will go away.
"
fi
# GENCAT is deprecated because we install no catgets catalogs anymore.
if grep '@''GENCAT''@' "$srcdir/$file" >/dev/null 2>&1; then
please="$please
Please change $file to use the constant string \"gencat\" instead of
@""GENCAT""@. @""GENCAT""@ will go away. Maybe you don't even need it any more?
"
fi
# POSUB is deprecated because it causes "./configure --disable-nls", "make",
# "make dist" to create a buggy tarfile.
if grep '@''POSUB''@' "$srcdir/$file" >/dev/null 2>&1; then
please="$please
Please change $file to use the constant string \"po\" instead of
@""POSUB""@. @""POSUB""@ will go away.
"
fi
fi
done
# Recommend replacement for deprecated configure variables.
if grep '\$nls_cv_header_' "$srcdir/$configure_in" >/dev/null 2>&1; then
please="$please
Please stop using \$nls_cv_header_intl or \$nls_cv_header_libgt in the
$configure_in file. Both will go away. Use <libintl.h> or \"gettext.h\" instead.
"
fi
# Recommend fetching config.guess and config.sub.
if test -f "$srcdir/$auxdir"config.guess && test -f "$srcdir/$auxdir"config.sub; then
:
else
please="$please
You will also need config.guess and config.sub, which you can get from the CVS
of the 'config' project at http://savannah.gnu.org/. The commands to fetch them
are
\$ wget 'http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess'
\$ wget 'http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub'
"
fi
if $doit; then
echo "$please"
echo "You might also want to copy the convenience header file gettext.h"
echo "from the $gettext_datadir directory into your package."
echo "It is a wrapper around <libintl.h> that implements the configure --disable-nls"
echo "option."
echo
count=`echo "$please" | grep '^$' | wc -l`
count=`echo "$count" | sed -e 's/[ ]//g'`
case "$count" in
1) count="paragraph";;
2) count="two paragraphs";;
3) count="three paragraphs";;
4) count="four paragraphs";;
5) count="five paragraphs";;
*) count="$count paragraphs";;
esac
echo "Press Return to acknowledge the previous $count."
# Read from /dev/tty, not stdin, so that gettextize cannot be abused by
# non-interactive tools.
read dummy < /dev/tty
fi
exit 0
Rosenblum TV: Video training, virtual workshops, classes, tutorials
RE-INVENTING THE TELEVISION NEWS BUSINESS*
A revolution in video storytelling
Creating entirely new & cost-effective production methods
From the world leaders in video production training and the creators of Character Driven Storytelling™
*and every other business that uses video
WHAT WE DO
Over the past 35 years, we have designed, built or restructured some of the most powerful news and journalism companies in the world.
We replace the traditional TV news ‘crew’ with one highly trained journalist, working alone with nothing but an iPhone.
No more TV news ‘crews’, no editors and no field producers.
This is television news done the way newspaper journalism is done – one reporter with their electronic pad and pencil.
In doing this, we can cut the cost of production by as much as 75% while increasing ratings and audience engagement.
In the place of conventional TV news ‘packages’ – ie, reporter stand up, interview, b-roll, man on the street, we marry great journalism with Netflix and Hollywood storytelling.
It’s a combination that works.
We have taken most of our clients to #1 in their respective markets.
And it’s not just for news. Any company, any profit, any NGO and anyone else who is online needs to tell their story in compelling yet cost-effective video. We can teach you to do that. Either in person or virtually.
EXAMPLES OF WHAT WE CAN TEACH YOUR STAFF TO PRODUCE
ITAY HOD
Itay Hod, MMJ with KPIX/CBS in San Francisco, took the 5-Day Intensive Video Storytelling Bootcamp in 2018.
Because he works alone, with only an iPhone, he was able to embed himself with a homeless family.
Here’s the story he produced in a one-day turn.
KIET DO
Kiet Do, an MMJ with KPIX/CBS in San Francisco, took the 5-Day Intensive Video Storytelling Bootcamp in 2021.
Here is a story he produced, all on his own, with only an iPhone and in a one-day turn.
TAYLOR SCHAUB
Taylor Schaub, an MMJ with Spectrum News 1 in LA, took the 5-Day Intensive Video Storytelling Bootcamp in 2023.
Here is a story he turned in only one day, using only an iPhone. It was the first video story he ever did and it was nominated for an Emmy.
THE BOOTCAMP
How do we convert stations and whole networks to working in this way?
Since 1988, we have run intensive 5-Day Video Storytelling Bootcamps
We have done these all over the world.
These are hands-on bootcamps, and participants learn an entirely new way of creating TV news stories.
-We shoot at a 3:1 ratio or lower, so turnaround times are fast.
-We go directly from camera to timelilne and edit – no written scripts. We work in the medium of pictures and sound.
-We are entirely character-driven.
-We are driven by pictures and real events.
-We are focused almost entirely on ’the viewer experience’.
Since 1988, more than 70,000 journalists around the world have taken our bootcamps, either in person on virtualy.
We have started to work with CBS News, bringing our ideas of character-driven storytelling to one of the most successful and biggest networks in the United States. Since beginning to work with them ratings have climbed and more importantly, audience engagement is through the ceiling.
We started New York Times Television in 1990 and it was the first paper to be brought into the world of TV. It quickly became one of the most successful non-fiction production companies in the United States. The series and documentaries we produced won many awards including multiple Emmys.
We have been working with the BBC since the year 2000 helping to convert their national news network to our visual storytelling technique. Most recently we have trained teams from their sports, documentaries, and comedy divisions to make character-driven stories using only smartphones.
For the past five years we have worked with Spectrum News to introduce and train their journalists on visual, character driven storytelling using smartphones helping to create a different kind of local news for their network of 24-Hour News Stations across the United States.
In 2006, we were approached by the United Nations. Rather than rely on news outlets, it would be much easier to train the field operatives to produce their own stories. We spent two years working with the UN, training more than 100 of their staff in bootcamps in Geneva and Nairobi.
We trained 50 print reporters at the paper to shoot and tell their own stories, in conjunction with their print work. We built a TV newsroom in their existing print newsroom – you could not ask for a better set and they began to live stream their stories in conjunction with their print work.
We spent two years with McGraw Hill, training more than 150 of their staffers, making them completely video literate. McGraw/Hill media properties we transit included Business Week, Aviation Week, (what was the name of the architecture magazine), and JD Power and Associates.
In 1990, we were approached by The Voice of America, the official broadcasting agency for the United States Government. When we met with VOA, they were only a short wave radio broadcaster, but working with them, we took them into television, launching VOA-TV.
British based Oyster Yachts makes some of the finest yachts in the world. Like every other company, they had to find a way to feed the never-ending video demands of social media – sites like Instagram and TikTok. We trained the Oyster staff to tell their own stories, using only iPhones.
We were approached by SEPA, the Scottish Environmental Protection Agency because they had to continually find a way to ‘feed the media beast’. The result was that SEPA was able to tell their own stories, whenever they wanted, and at almost no additional cost.
Michael Rosenblum has been writing about the media since 1988. His work and ideas have appeared in The Guardian, The Huffington Post, Ilkeston Life and many other publications.
He has been blogging regularly for the past 35 years on this subject. Having taught media studies at Columbia University, NYU and now the University of Oxford, he is considered an expert on this subject.
Continue reading this post or look back at previous posts.