gimp/gimptool.in

348 lines
9.8 KiB
Bash

#! /bin/sh
prefix=@prefix@
exec_prefix=@exec_prefix@
exec_prefix_set=no
bindir=@bindir@
sbindir=@sbindir@
libexecdir=@libexecdir@
datadir=@datadir@
sysconfdir=@sysconfdir@
sharedstatedir=@sharedstatedir@
localstatedir=@localstatedir@
libdir=@libdir@
infodir=@infodir@
mandir=@mandir@
includedir=@includedir@
gimpplugindir=@gimpplugindir@
gimpdatadir=@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
Installation directory options:
--prefix --exec-prefix --bindir --sbindir --libexecdir --datadir --sysconfdir
--sharedstatedir --localstatedir --libdir --infodir --mandir --includedir
--gimpplugindir --gimpdatadir
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
--uninstall-bin plug-in remove a plug-in again
--uninstall-script plug-in remove a script-fu script
The --install and --uninstall options have "admin" counterparts (with
prefix --install-admin instead of --install) that can be used instead to
install/uninstall 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. For plug-ins that use GTK+ but
not libgumpui, append -nogimpui.
All binary build and install options can be appended with -strip to discard
debugging information.
EOF
exit $1
}
noarg="\
Error: Need a plug-in source file to build"
notfound="\
Error: Couldn't find file to build/install/uninstall"
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${INSTALL+set} != xset ; then
INSTALL='@INSTALL@'
if test "$INSTALL" = "./install-sh -c"; then
mydirname=`echo $0 | sed -e 's#\(.*\)/[^/].*$#\1#'`
INSTALL="$mydirname/gimpinstall"
fi
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
if test x${LDFLAGS+set} != xset ; then
ldflags='@LDFLAGS@'
else
ldflags="$LDFLAGS"
fi
if test x${LIBS+set} != xset ; then
libs=""
else
libs="$LIBS"
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
;;
--*dir)
dirname=\$`echo $1 | sed -e 's,^--,,'`
dirname=`eval echo $dirname`
test -z "$dirname" && exit 1
echo $dirname
exit 0
;;
--cflags | --cflags-noui | --cflags-nogimpui)
case $1 in
--cflags | --cflags-nogimpui)
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 | --libs-nogimpui)
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
case $1 in
--libs)
echo $libdirs -lgimpui -lgimpwidgets -lgimp -lgimpcolor -lgimpmath $my_gtk_libs ;;
--libs-nogimpui)
echo $libdirs -lgimp -lgimpcolor -lgimpmath $my_gtk_libs ;;
esac
;;
--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 -lgimpcolor -lgimpmath $my_glib_libs
;;
--install-bin | --install-admin-bin \
| --install-bin-strip | --install-admin-bin-strip \
| --install-script | --install-admin-script \
| --uninstall-bin | --uninstall-admin-bin \
| --uninstall-script | --uninstall-admin-script )
case $1 in
--*install-bin)
install_cmd="@INSTALL_PROGRAM@"
install_dir="$HOME/@gimpdir@/plug-ins"
;;
--install-bin-strip)
install_cmd="@INSTALL_PROGRAM@ -s"
install_dir="$HOME/@gimpdir@/plug-ins"
;;
--*install-admin-bin)
install_cmd="@INSTALL_PROGRAM@"
install_dir="$gimpplugindir/plug-ins"
;;
--install-admin-bin-strip)
install_cmd="@INSTALL_PROGRAM@ -s"
install_dir="$gimpplugindir/plug-ins"
;;
--*install-script)
install_cmd="@INSTALL_DATA@"
install_dir="$HOME/@gimpdir@/scripts"
;;
--*install-admin-script)
install_cmd="@INSTALL_DATA@"
install_dir="$gimpdatadir/scripts"
;;
esac
case $1 in
--uninstall-* )
shift
if test "x$1" != "x"; then
if test -f "$install_dir/$1"; then
cmd="rm -f $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
;;
*)
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
;;
esac
;;
--build | --install | --install-admin | --build-strip | --install-strip \
| --install-admin-strip | --build-nogimpui | --install-nogimpui \
| --install-admin-nogimpui | --build-nogimpui-strip \
| --install-nogimpui-strip | --install-admin-nogimpui-strip \
| --build-noui | --install-noui | --install-admin-noui \
| --build-noui-strip | --install-noui-strip | --install-admin-noui-strip)
opt=`echo $1 | sed 's/-strip$//'`
if test "x$opt" != "x$1" ; then
cflags=`echo $cflags | sed -e 's/-g //g' -e 's/ -g//g'`
fi
case $opt in
--build | --build-noui | --build-nogimpui)
install_dir=. ;;
--install | --install-noui | --install-nogimpui)
install_dir="$HOME/@gimpdir@/plug-ins" ;;
--install-admin | --install-admin-noui | --install-admin-nogimpui)
install_dir="$gimpplugindir/plug-ins" ;;
esac
noui=`echo $opt | sed 's/^.*\(noui\)$/\1/'`
nogimpui=`echo $opt | sed 's/^.*\(nogimpui\)$/\1/'`
if test "$noui" = "noui" ; then
gimp_cflags=`$0 --cflags-noui`
gimp_libs=`$0 --libs-noui`
elif test "$nogimpui" = "nogimpui" ; then
gimp_cflags=`$0 --cflags-nogimpui`
gimp_libs=`$0 --libs-nogimpui`
else
gimp_cflags=`$0 --cflags`
gimp_libs=`$0 --libs`
fi
shift
if test "x$1" != "x"; then
if test -r "$1"; then
dest=`echo $1 | sed -e 's#.*/\([^/].*\)$#\1#' -e 's/\.[^.]*$//'`
cmd="$cc $cflags $gimp_cflags -o $install_dir/$dest $1 $ldflags $gimp_libs $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