gimp/gimptool.in

246 lines
6.5 KiB
Bash

#!/bin/sh
prefix=@prefix@
exec_prefix=@exec_prefix@
exec_prefix_set=no
plug_in_dir=@gimpplugindir@
data_dir=@gimpdatadir@
usage()
{
cat <<EOF
Usage: gimptool [OPTION]...
General options:
--help print this message
--quiet, --silent don't echo build commands
--version print the version of GIMP associated with this script
-n, --just-print, --dry-run, --recon
don't actually run any commands; just print them
Developer options:
--cflags print the compiler flags that are necessary to
compile a plug-in
--libs print the linker flags that are necessary to link a
plug-in
--prefix=PREFIX use PREFIX instead of the installation prefix that
GIMP was built when computing the output for --cflags
and --libs
--exec-prefix=PREFIX use PREFIX instead of the installation exec prefix
that GIMP was built when computing the output for
--cflags and --libs
The --cflags and --libs options can be appended with -noui to get appropriate
settings for plug-ins which do not use GTK+.
User options:
--build plug-in.c build a plug-in from a source file
--install plug-in.c same as --build, but installs the built
plug-in as well
--install-bin plug-in install a compiled plug-in
--install-script script.scm install a script-fu script
The --install options can be prefixed with --install-admin instead to install
a plug-in or script in the site directory instead of a user directory.
For plug-ins which do not use GTK+, the --build and --install options can be
appended with --noui for appropriate settings.
EOF
exit $1
}
noarg="\
Error: Need a plug-in source file to build"
notfound="\
Error: Couldn't find source file to build"
quiet=no
donothing=no
if test $# -eq 0; then
usage 1
fi
if test x${GTK_CONFIG+set} != xset ; then
gtk_cflags='@GTK_CFLAGS@'
gtk_libs='@GTK_LIBS@'
else
gtk_cflags=`$GTK_CONFIG --cflags`
gtk_libs=`$GTK_CONFIG --libs`
fi
if test x${CC+set} != xset ; then
cc='@CC@'
else
cc="$CC"
fi
if test x${CFLAGS+set} != xset ; then
cflags='@CFLAGS@'
else
cflags="$CFLAGS"
fi
while test $# -gt 0; do
case "$1" in
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
*) optarg= ;;
esac
case $1 in
--version)
echo @GIMP_VERSION@
exit 0
;;
--help)
usage 0
;;
--quiet | --silent)
quiet=yes
;;
-n | --just-print | --dry-run | --recon)
donothing=yes
;;
--prefix=*)
prefix=$optarg
if test $exec_prefix_set = no ; then
exec_prefix=$optarg
fi
;;
--prefix)
echo $prefix
;;
--exec-prefix=*)
exec_prefix=$optarg
exec_prefix_set=yes
;;
--exec-prefix)
echo $exec_prefix
;;
--cflags | --cflags-noui)
case $1 in
--cflags)
my_gtk_cflags=$gtk_cflags ;;
--cflags-noui)
my_gtk_cflags=`echo $gtk_cflags | sed 's/^.*\(-I[^ ]*glib[^ ]* *-I[^ ]*\).*$/\1/'` ;;
esac
if test @includedir@ != /usr/include ; then
includes=-I@includedir@
for i in $my_gtk_cflags ; do
if test $i = -I@includedir@ ; then
includes=""
fi
done
fi
echo $includes $my_gtk_cflags
;;
--libs)
my_gtk_libs=
libdirs=-L@libdir@
for i in $gtk_libs ; do
if test $i != -L@libdir@ ; then
if test -z "$my_gtk_libs" ; then
my_gtk_libs="$i"
else
my_gtk_libs="$my_gtk_libs $i"
fi
fi
done
echo $libdirs -lgimpui-@LT_RELEASE@ -lgimp-@LT_RELEASE@ $my_gtk_libs
;;
--libs-noui)
glib_ldflags=`echo $gtk_libs | sed -e 's/^.*-lgdk[^ ]* *\(-L[^ ]*\).*$/\1/' -e 's/^.* -lgdk[^ ]* .*$//'`
if test -z "$glib_ldflags" ; then
glib_ldflags=`echo $gtk_libs | sed 's/^ *\(-L[^ ]*\) .*$/\1/'`
fi
glib_libs="$glib_ldflags `echo $gtk_libs | sed 's/^.*\(-lglib[^ ]*\).*$/\1/'`"
my_glib_libs=
libdirs=-L@libdir@
for i in $glib_libs ; do
if test $i != -L@libdir@ ; then
if test -z "$my_glib_libs" ; then
my_glib_libs="$i"
else
my_glib_libs="$my_glib_libs $i"
fi
fi
done
echo -L@libdir@ -lgimp-@LT_RELEASE@ $my_glib_libs
;;
--install-bin | --install-admin-bin \
| --install-script | --install-admin-script)
case $1 in
--install-bin)
install_cmd="@INSTALL@ @INSTALL_PROGRAM@"
install_dir="$HOME/@gimpdir@/plug-ins"
;;
--install-admin-bin)
install_cmd="@INSTALL@ @INSTALL_PROGRAM@"
install_dir="$plug_in_dir/plug-ins"
;;
--install-script)
install_cmd="@INSTALL@ @INSTALL_DATA@"
install_dir="$HOME/.gimp/scripts"
;;
--install-admin-script)
install_cmd="@INSTALL@ @INSTALL_DATA@"
install_dir="$data_dir/scripts"
;;
esac
shift
if test "x$1" != "x"; then
if test -r "$1"; then
cmd="$install_cmd $1 $install_dir/$1"
test $quiet = "yes" || echo $cmd
test $donothing = "yes" || exec $cmd
else
echo "${notfound}" 1>&2
exit 1
fi
else
echo "${noarg}" 1>&2
exit 1
fi
;;
--build | --install | --install-admin \
| --build-noui | --install-noui | --install-admin-noui)
case $1 in
--build | --build-noui)
install_dir=. ;;
--install | --install-noui)
install_dir="$HOME/@gimpdir@/plug-ins" ;;
--install-admin | --install-admin-noui)
install_dir="$plug_in_dir/plug-ins" ;;
esac
noui=`echo $1 | sed 's/^.*\(noui\)$/\1/'`
if test "$noui" = "noui" ; then
gimp_cflags=`$0 --cflags-noui`
gimp_libs=`$0 --libs-noui`
else
gimp_cflags=`$0 --cflags`
gimp_libs=`$0 --libs`
fi
shift
if test "x$1" != "x"; then
if test -r "$1"; then
cmd="$cc $cflags $gimp_cflags -o $install_dir/`echo $1 | sed 's/\.[^\.]*$//'` $1 $gimp_libs"
test $quiet = "yes" || echo $cmd
test $donothing = "yes" || exec $cmd
else
echo "${notfound}" 1>&2
exit 1
fi
else
echo "${noarg}" 1>&2
exit 1
fi
;;
*)
usage 1
;;
esac
shift
done