#!/bin/bash
#
# libslack - http://libslack.org/
#
# Copyright (C) 1999-2010 raf <raf@raf.org>
#
# 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 2 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, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
# or visit http://www.gnu.org/copyleft/gpl.html
#
# 20100612 raf <raf@raf.org>

var() { eval $1='$2'; export $1; }
die() { echo "$@" >&2; exit 1; }

var url     "http://libslack.org/"
var name    "libslack"
var version "0.6"
var prefix  "/usr/local"
var cflags  "-DHAVE_SNPRINTF=1 -DHAVE_VSSCANF=1 -DHAVE_PTHREAD_RWLOCK=1"
var libs    "-pthread -lslack -lutil"

if test "$prefix" != "/usr" -a "$prefix" != "/usr/local"
then
	cflags="-I$prefix/include $cflags"
	libs="-L$prefix/lib $libs"
fi

usage()
{
	cat <<EOF
usage: libslack-config [options]
options:
    -h, --help      - Print this help and exit
    -v, --version   - Print the version of the currently installed libslack
    -L, --latest    - Print the latest version of libslack (uses wget)
    -D, --download  - Download the latest version of libslack (uses wget)
    -U, --upgrade   - Upgrade to the latest version of libslack (uses wget)
    -p, --prefix    - Print the prefix directory of the libslack installation
    -c, --cflags    - Print CFLAGS needed to compile clients of libslack
    -l, --libs      - Print LDFLAGS needed to link against libslack
    -l, --ldflags   - Identical to --libs
    -u, --uninstall - Uninstall libslack

Note: the dashes are optional for long option names

Command line example:
    gcc -o app app.c \`libslack-config --cflags --libs\`

Makefile example:
    CFLAGS  += \$(shell libslack-config --cflags)
    LDFLAGS += \$(shell libslack-config --libs)

EOF
	exit $1
}

latest()
{
	wget -q -O- "${url}download/" | \
	perl -e '

		$ENV{suffix} =~ s/\./\\./g;

		while (<>)
		{
			$version{$1} = 1 if /[Hh][Rr][Ee][Ff]=".*$ENV{name}-([\d.]+)\.tar\.gz"/;
		}

		sub version_sort
		{
			my @anum = split /\./, $a;
			my @bnum = split /\./, $b;

			while ($#anum != -1 && $#bnum != -1)
			{
				return $x if $x = $bnum[0] - $anum[0];
				shift @anum;
				shift @bnum;
			}

			return -1 if $#anum != -1;
			return  1 if $#bnum != -1;
			return 0;
		}

		@version = sort { version_sort } keys %version;
		die "No versions found at $ENV{url}download/\n" if $#version == -1;
		print "$ENV{url}download/$ENV{name}-$version[0].tar.gz\n";
		exit 0;
	'
}

download()
{
	latest="`latest 2>&1`"
	test "$latest" = "No versions found at ${url}download" && die "$latest"
	file="`echo $latest | sed 's/^.*\///'`"
	test -f "$file" && die "The file $file already exists"
	wget "$latest"
}

upgrade()
{
	latest="`latest 2>&1`"
	test "$latest" = "No versions found at ${url}/download" && die "$latest"
	file="`echo $latest | sed 's/^.*\///'`"
	dir="`echo $file | sed 's/\.tar\.gz$//'`"
	test -f "$file" || wget "$latest"
	test -s "$file" || die "Failed to download $latest"
	tar xzf "$file" || die "Failed to untar $file"
	cd "$dir" || die "Failed to cd $dir"
	./configure || die "Failed to configure $dir"
	make || die "Failed to make $dir"
	uninstall || die "Failed to uninstall current version"
	make PREFIX="$prefix" install || die "Failed to install $dir into $prefix"
	cd .. && rm -rf "$dir"
}

uninstall()
{
rm -f ../../install/lib/libslack.a ../../install/lib/libslack-0.6.a
rm -f  ../../install/bin/libslack-config
rm -f  ../../install/include/slack/agent.h  ../../install/include/slack/coproc.h  ../../install/include/slack/daemon.h  ../../install/include/slack/err.h  ../../install/include/slack/fio.h  ../../install/include/slack/getopt.h  ../../install/include/slack/hsort.h  ../../install/include/slack/lim.h  ../../install/include/slack/link.h  ../../install/include/slack/list.h  ../../install/include/slack/locker.h  ../../install/include/slack/map.h  ../../install/include/slack/mem.h  ../../install/include/slack/msg.h  ../../install/include/slack/net.h  ../../install/include/slack/prog.h  ../../install/include/slack/prop.h  ../../install/include/slack/pseudo.h  ../../install/include/slack/sig.h  ../../install/include/slack/str.h  ../../install/include/slack/std.h  ../../install/include/slack/lib.h  ../../install/include/slack/hdr.h  ../../install/include/slack/socks.h
rmdir ../../install/include/slack || exit 0
rm -f  ../../install/man/man1/libslack-config.1
rm -f  ../../install/man/man3/libslack.3  ../../install/man/man3/agent.3  ../../install/man/man3/coproc.3  ../../install/man/man3/daemon.3  ../../install/man/man3/err.3  ../../install/man/man3/fio.3  ../../install/man/man3/getopt.3  ../../install/man/man3/hsort.3  ../../install/man/man3/lim.3  ../../install/man/man3/link.3  ../../install/man/man3/list.3  ../../install/man/man3/locker.3  ../../install/man/man3/map.3  ../../install/man/man3/mem.3  ../../install/man/man3/msg.3  ../../install/man/man3/net.3  ../../install/man/man3/prog.3  ../../install/man/man3/prop.3  ../../install/man/man3/pseudo.3  ../../install/man/man3/sig.3  ../../install/man/man3/str.3
rm -f   ../../install/man/man3/agent_create.3  ../../install/man/man3/agent_create_with_locker.3  ../../install/man/man3/agent_create_measured.3  ../../install/man/man3/agent_create_measured_with_locker.3  ../../install/man/man3/agent_create_using_select.3  ../../install/man/man3/agent_create_using_select_with_locker.3  ../../install/man/man3/agent_release.3  ../../install/man/man3/agent_destroy.3  ../../install/man/man3/agent_rdlock.3  ../../install/man/man3/agent_wrlock.3  ../../install/man/man3/agent_unlock.3  ../../install/man/man3/agent_connect.3  ../../install/man/man3/agent_connect_unlocked.3  ../../install/man/man3/agent_disconnect.3  ../../install/man/man3/agent_disconnect_unlocked.3  ../../install/man/man3/agent_transfer.3  ../../install/man/man3/agent_transfer_unlocked.3  ../../install/man/man3/agent_send.3  ../../install/man/man3/agent_send_unlocked.3  ../../install/man/man3/agent_recv.3  ../../install/man/man3/agent_recv_unlocked.3  ../../install/man/man3/agent_detail.3  ../../install/man/man3/agent_detail_unlocked.3  ../../install/man/man3/agent_velocity.3  ../../install/man/man3/agent_velocity_unlocked.3  ../../install/man/man3/agent_acceleration.3  ../../install/man/man3/agent_acceleration_unlocked.3  ../../install/man/man3/agent_dadt.3  ../../install/man/man3/agent_dadt_unlocked.3  ../../install/man/man3/agent_schedule.3  ../../install/man/man3/agent_schedule_unlocked.3  ../../install/man/man3/agent_cancel.3  ../../install/man/man3/agent_cancel_unlocked.3  ../../install/man/man3/agent_start.3  ../../install/man/man3/agent_stop.3   ../../install/man/man3/coproc_open.3  ../../install/man/man3/coproc_close.3  ../../install/man/man3/coproc_pty_open.3  ../../install/man/man3/coproc_pty_close.3   ../../install/man/man3/daemon_started_by_init.3  ../../install/man/man3/daemon_started_by_inetd.3  ../../install/man/man3/daemon_prevent_core.3  ../../install/man/man3/daemon_revoke_privileges.3  ../../install/man/man3/daemon_become_user.3  ../../install/man/man3/daemon_absolute_path.3  ../../install/man/man3/daemon_path_is_safe.3  ../../install/man/man3/daemon_parse_config.3  ../../install/man/man3/daemon_pidfile.3  ../../install/man/man3/daemon_init.3  ../../install/man/man3/daemon_close.3  ../../install/man/man3/daemon_getpid.3  ../../install/man/man3/daemon_is_running.3  ../../install/man/man3/daemon_stop.3   ../../install/man/man3/msg.3  ../../install/man/man3/vmsg.3  ../../install/man/man3/verbose.3  ../../install/man/man3/vverbose.3  ../../install/man/man3/debugf.3  ../../install/man/man3/vdebugf.3  ../../install/man/man3/error.3  ../../install/man/man3/verror.3  ../../install/man/man3/fatal.3  ../../install/man/man3/vfatal.3  ../../install/man/man3/dump.3  ../../install/man/man3/vdump.3  ../../install/man/man3/alert.3  ../../install/man/man3/valert.3  ../../install/man/man3/debugsysf.3  ../../install/man/man3/vdebugsysf.3  ../../install/man/man3/errorsys.3  ../../install/man/man3/verrorsys.3  ../../install/man/man3/fatalsys.3  ../../install/man/man3/vfatalsys.3  ../../install/man/man3/dumpsys.3  ../../install/man/man3/vdumpsys.3  ../../install/man/man3/alertsys.3  ../../install/man/man3/valertsys.3  ../../install/man/man3/set_errno.3  ../../install/man/man3/set_errnull.3  ../../install/man/man3/debug.3  ../../install/man/man3/vdebug.3  ../../install/man/man3/debugsys.3  ../../install/man/man3/vdebugsys.3  ../../install/man/man3/check.3   ../../install/man/man3/fgetline.3  ../../install/man/man3/fgetline_unlocked.3  ../../install/man/man3/read_timeout.3  ../../install/man/man3/write_timeout.3  ../../install/man/man3/rw_timeout.3  ../../install/man/man3/nap.3  ../../install/man/man3/fcntl_set_flag.3  ../../install/man/man3/fcntl_clear_flag.3  ../../install/man/man3/fcntl_lock.3  ../../install/man/man3/nonblock_set.3  ../../install/man/man3/nonblock_on.3  ../../install/man/man3/nonblock_off.3  ../../install/man/man3/fifo_exists.3  ../../install/man/man3/fifo_has_reader.3  ../../install/man/man3/fifo_open.3       ../../install/man/man3/limit_arg.3  ../../install/man/man3/limit_child.3  ../../install/man/man3/limit_tick.3  ../../install/man/man3/limit_group.3  ../../install/man/man3/limit_open.3  ../../install/man/man3/limit_stream.3  ../../install/man/man3/limit_tzname.3  ../../install/man/man3/limit_job.3  ../../install/man/man3/limit_save_ids.3  ../../install/man/man3/limit_version.3  ../../install/man/man3/limit_pcanon.3  ../../install/man/man3/limit_fcanon.3  ../../install/man/man3/limit_canon.3  ../../install/man/man3/limit_pinput.3  ../../install/man/man3/limit_finput.3  ../../install/man/man3/limit_input.3  ../../install/man/man3/limit_pvdisable.3  ../../install/man/man3/limit_fvdisable.3  ../../install/man/man3/limit_vdisable.3  ../../install/man/man3/limit_plink.3  ../../install/man/man3/limit_flink.3  ../../install/man/man3/limit_link.3  ../../install/man/man3/limit_pname.3  ../../install/man/man3/limit_fname.3  ../../install/man/man3/limit_name.3  ../../install/man/man3/limit_ppath.3  ../../install/man/man3/limit_fpath.3  ../../install/man/man3/limit_path.3  ../../install/man/man3/limit_ppipe.3  ../../install/man/man3/limit_fpipe.3  ../../install/man/man3/limit_pnotrunc.3  ../../install/man/man3/limit_fnotrunc.3  ../../install/man/man3/limit_notrunc.3  ../../install/man/man3/limit_pchown.3  ../../install/man/man3/limit_fchown.3  ../../install/man/man3/limit_chown.3   ../../install/man/man3/slink_has_next.3  ../../install/man/man3/slink_next.3  ../../install/man/man3/dlink_has_next.3  ../../install/man/man3/dlink_next.3  ../../install/man/man3/dlink_has_prev.3  ../../install/man/man3/dlink_prev.3  ../../install/man/man3/slink_insert.3  ../../install/man/man3/dlink_insert.3  ../../install/man/man3/slink_remove.3  ../../install/man/man3/dlink_remove.3  ../../install/man/man3/slink_freelist_init.3  ../../install/man/man3/dlink_freelist_init.3  ../../install/man/man3/slink_freelist_attach.3  ../../install/man/man3/dlink_freelist_attach.3  ../../install/man/man3/slink_alloc.3  ../../install/man/man3/dlink_alloc.3  ../../install/man/man3/slink_free.3  ../../install/man/man3/dlink_free.3   ../../install/man/man3/list_create.3  ../../install/man/man3/list_make.3  ../../install/man/man3/list_vmake.3  ../../install/man/man3/list_copy.3  ../../install/man/man3/list_create_with_locker.3  ../../install/man/man3/list_make_with_locker.3  ../../install/man/man3/list_vmake_with_locker.3  ../../install/man/man3/list_copy_with_locker.3  ../../install/man/man3/list_rdlock.3  ../../install/man/man3/list_wrlock.3  ../../install/man/man3/list_unlock.3  ../../install/man/man3/list_release.3  ../../install/man/man3/list_destroy.3  ../../install/man/man3/list_own.3  ../../install/man/man3/list_own_unlocked.3  ../../install/man/man3/list_disown.3  ../../install/man/man3/list_disown_unlocked.3  ../../install/man/man3/list_item.3  ../../install/man/man3/list_item_unlocked.3  ../../install/man/man3/list_item_int.3  ../../install/man/man3/list_item_int_unlocked.3  ../../install/man/man3/list_empty.3  ../../install/man/man3/list_empty_unlocked.3  ../../install/man/man3/list_length.3  ../../install/man/man3/list_length_unlocked.3  ../../install/man/man3/list_last.3  ../../install/man/man3/list_last_unlocked.3  ../../install/man/man3/list_remove.3  ../../install/man/man3/list_remove_unlocked.3  ../../install/man/man3/list_remove_range.3  ../../install/man/man3/list_remove_range_unlocked.3  ../../install/man/man3/list_insert.3  ../../install/man/man3/list_insert_unlocked.3  ../../install/man/man3/list_insert_int.3  ../../install/man/man3/list_insert_int_unlocked.3  ../../install/man/man3/list_insert_list.3  ../../install/man/man3/list_insert_list_unlocked.3  ../../install/man/man3/list_append.3  ../../install/man/man3/list_append_unlocked.3  ../../install/man/man3/list_append_int.3  ../../install/man/man3/list_append_int_unlocked.3  ../../install/man/man3/list_append_list.3  ../../install/man/man3/list_append_list_unlocked.3  ../../install/man/man3/list_prepend.3  ../../install/man/man3/list_prepend_unlocked.3  ../../install/man/man3/list_prepend_int.3  ../../install/man/man3/list_prepend_int_unlocked.3  ../../install/man/man3/list_prepend_list.3  ../../install/man/man3/list_prepend_list_unlocked.3  ../../install/man/man3/list_replace.3  ../../install/man/man3/list_replace_unlocked.3  ../../install/man/man3/list_replace_int.3  ../../install/man/man3/list_replace_int_unlocked.3  ../../install/man/man3/list_replace_list.3  ../../install/man/man3/list_replace_list_unlocked.3  ../../install/man/man3/list_extract.3  ../../install/man/man3/list_extract_unlocked.3  ../../install/man/man3/list_extract_with_locker.3  ../../install/man/man3/list_extract_with_locker_unlocked.3  ../../install/man/man3/list_push.3  ../../install/man/man3/list_push_unlocked.3  ../../install/man/man3/list_push_int.3  ../../install/man/man3/list_push_int_unlocked.3  ../../install/man/man3/list_pop.3  ../../install/man/man3/list_pop_unlocked.3  ../../install/man/man3/list_pop_int.3  ../../install/man/man3/list_pop_int_unlocked.3  ../../install/man/man3/list_shift.3  ../../install/man/man3/list_shift_unlocked.3  ../../install/man/man3/list_shift_int.3  ../../install/man/man3/list_shift_int_unlocked.3  ../../install/man/man3/list_unshift.3  ../../install/man/man3/list_unshift_unlocked.3  ../../install/man/man3/list_unshift_int.3  ../../install/man/man3/list_unshift_int_unlocked.3  ../../install/man/man3/list_splice.3  ../../install/man/man3/list_splice_unlocked.3  ../../install/man/man3/list_splice_with_locker.3  ../../install/man/man3/list_splice_with_locker_unlocked.3  ../../install/man/man3/list_sort.3  ../../install/man/man3/list_sort_unlocked.3  ../../install/man/man3/list_apply.3  ../../install/man/man3/list_apply_rdlocked.3  ../../install/man/man3/list_apply_wrlocked.3  ../../install/man/man3/list_apply_unlocked.3  ../../install/man/man3/list_map.3  ../../install/man/man3/list_map_unlocked.3  ../../install/man/man3/list_map_with_locker.3  ../../install/man/man3/list_map_with_locker_unlocked.3  ../../install/man/man3/list_grep.3  ../../install/man/man3/list_grep_unlocked.3  ../../install/man/man3/list_grep_with_locker.3  ../../install/man/man3/list_grep_with_locker_unlocked.3  ../../install/man/man3/list_query.3  ../../install/man/man3/list_query_unlocked.3  ../../install/man/man3/lister_create.3  ../../install/man/man3/lister_create_rdlocked.3  ../../install/man/man3/lister_create_wrlocked.3  ../../install/man/man3/lister_create_unlocked.3  ../../install/man/man3/lister_release.3  ../../install/man/man3/lister_release_unlocked.3  ../../install/man/man3/lister_destroy.3  ../../install/man/man3/lister_destroy_unlocked.3  ../../install/man/man3/lister_has_next.3  ../../install/man/man3/lister_next.3  ../../install/man/man3/lister_next_int.3  ../../install/man/man3/lister_remove.3  ../../install/man/man3/list_has_next.3  ../../install/man/man3/list_break.3  ../../install/man/man3/list_next.3  ../../install/man/man3/list_next_int.3  ../../install/man/man3/list_remove_current.3   ../../install/man/man3/locker_create_mutex.3  ../../install/man/man3/locker_create_rwlock.3  ../../install/man/man3/locker_create_debug_mutex.3  ../../install/man/man3/locker_create_debug_rwlock.3  ../../install/man/man3/locker_create.3  ../../install/man/man3/locker_release.3  ../../install/man/man3/locker_destroy.3  ../../install/man/man3/locker_tryrdlock.3  ../../install/man/man3/locker_rdlock.3  ../../install/man/man3/locker_trywrlock.3  ../../install/man/man3/locker_wrlock.3  ../../install/man/man3/locker_unlock.3   ../../install/man/man3/map_create.3  ../../install/man/man3/map_create_sized.3  ../../install/man/man3/map_create_with_hash.3  ../../install/man/man3/map_create_sized_with_hash.3  ../../install/man/man3/map_create_with_locker.3  ../../install/man/man3/map_create_with_locker_sized.3  ../../install/man/man3/map_create_with_locker_with_hash.3  ../../install/man/man3/map_create_with_locker_sized_with_hash.3  ../../install/man/man3/map_create_generic.3  ../../install/man/man3/map_create_generic_sized.3  ../../install/man/man3/map_create_generic_with_locker.3  ../../install/man/man3/map_create_generic_with_locker_sized.3  ../../install/man/man3/map_rdlock.3  ../../install/man/man3/map_wrlock.3  ../../install/man/man3/map_unlock.3  ../../install/man/man3/map_release.3  ../../install/man/man3/map_destroy.3  ../../install/man/man3/map_own.3  ../../install/man/man3/map_own_unlocked.3  ../../install/man/man3/map_disown.3  ../../install/man/man3/map_disown_unlocked.3  ../../install/man/man3/map_add.3  ../../install/man/man3/map_add_unlocked.3  ../../install/man/man3/map_put.3  ../../install/man/man3/map_put_unlocked.3  ../../install/man/man3/map_insert.3  ../../install/man/man3/map_insert_unlocked.3  ../../install/man/man3/map_remove.3  ../../install/man/man3/map_remove_unlocked.3  ../../install/man/man3/map_get.3  ../../install/man/man3/map_get_unlocked.3  ../../install/man/man3/mapper_create.3  ../../install/man/man3/mapper_create_rdlocked.3  ../../install/man/man3/mapper_create_wrlocked.3  ../../install/man/man3/mapper_create_unlocked.3  ../../install/man/man3/mapper_release.3  ../../install/man/man3/mapper_release_unlocked.3  ../../install/man/man3/mapper_destroy.3  ../../install/man/man3/mapper_destroy_unlocked.3  ../../install/man/man3/mapper_has_next.3  ../../install/man/man3/mapper_next.3  ../../install/man/man3/mapper_next_mapping.3  ../../install/man/man3/mapper_remove.3  ../../install/man/man3/map_has_next.3  ../../install/man/man3/map_break.3  ../../install/man/man3/map_next.3  ../../install/man/man3/map_next_mapping.3  ../../install/man/man3/map_remove_current.3  ../../install/man/man3/mapping_key.3  ../../install/man/man3/mapping_value.3  ../../install/man/man3/map_keys.3  ../../install/man/man3/map_keys_unlocked.3  ../../install/man/man3/map_keys_with_locker.3  ../../install/man/man3/map_keys_with_locker_unlocked.3  ../../install/man/man3/map_values.3  ../../install/man/man3/map_values_unlocked.3  ../../install/man/man3/map_values_with_locker.3  ../../install/man/man3/map_values_with_locker_unlocked.3  ../../install/man/man3/map_apply.3  ../../install/man/man3/map_apply_rdlocked.3  ../../install/man/man3/map_apply_wrlocked.3  ../../install/man/man3/map_apply_unlocked.3  ../../install/man/man3/map_size.3  ../../install/man/man3/map_size_unlocked.3   ../../install/man/man3/mem_new.3  ../../install/man/man3/mem_create.3  ../../install/man/man3/mem_resize.3  ../../install/man/man3/mem_resize_fn.3  ../../install/man/man3/mem_release.3  ../../install/man/man3/mem_destroy.3  ../../install/man/man3/mem_create_secure.3  ../../install/man/man3/mem_release_secure.3  ../../install/man/man3/mem_destroy_secure.3  ../../install/man/man3/mem_strdup.3  ../../install/man/man3/mem_create2d.3  ../../install/man/man3/mem_create3d.3  ../../install/man/man3/mem_create4d.3  ../../install/man/man3/mem_create_space.3  ../../install/man/man3/mem_space_start.3  ../../install/man/man3/mem_release2d.3  ../../install/man/man3/mem_release3d.3  ../../install/man/man3/mem_release4d.3  ../../install/man/man3/mem_release_space.3  ../../install/man/man3/mem_destroy2d.3  ../../install/man/man3/mem_destroy3d.3  ../../install/man/man3/mem_destroy4d.3  ../../install/man/man3/mem_destroy_space.3  ../../install/man/man3/pool_create.3  ../../install/man/man3/pool_create_with_locker.3  ../../install/man/man3/pool_release.3  ../../install/man/man3/pool_destroy.3  ../../install/man/man3/pool_create_secure.3  ../../install/man/man3/pool_create_secure_with_locker.3  ../../install/man/man3/pool_release_secure.3  ../../install/man/man3/pool_destroy_secure.3  ../../install/man/man3/pool_clear_secure.3  ../../install/man/man3/pool_new.3  ../../install/man/man3/pool_newsz.3  ../../install/man/man3/pool_alloc.3  ../../install/man/man3/pool_clear.3   ../../install/man/man3/msg_create.3  ../../install/man/man3/msg_create_with_locker.3  ../../install/man/man3/msg_rdlock.3  ../../install/man/man3/msg_wrlock.3  ../../install/man/man3/msg_unlock.3  ../../install/man/man3/msg_release.3  ../../install/man/man3/msg_destroy.3  ../../install/man/man3/msg_out.3  ../../install/man/man3/msg_out_unlocked.3  ../../install/man/man3/vmsg_out.3  ../../install/man/man3/vmsg_out_unlocked.3  ../../install/man/man3/msg_create_fd.3  ../../install/man/man3/msg_create_fd_with_locker.3  ../../install/man/man3/msg_create_stderr.3  ../../install/man/man3/msg_create_stderr_with_locker.3  ../../install/man/man3/msg_create_stdout.3  ../../install/man/man3/msg_create_stdout_with_locker.3  ../../install/man/man3/msg_create_file.3  ../../install/man/man3/msg_create_file_with_locker.3  ../../install/man/man3/msg_create_syslog.3  ../../install/man/man3/msg_create_syslog_with_locker.3  ../../install/man/man3/msg_syslog_set_facility.3  ../../install/man/man3/msg_syslog_set_facility_unlocked.3  ../../install/man/man3/msg_syslog_set_priority.3  ../../install/man/man3/msg_syslog_set_priority_unlocked.3  ../../install/man/man3/msg_create_plex.3  ../../install/man/man3/msg_create_plex_with_locker.3  ../../install/man/man3/msg_add_plex.3  ../../install/man/man3/msg_add_plex_unlocked.3  ../../install/man/man3/msg_set_timestamp_format.3  ../../install/man/man3/msg_set_timestamp_format_locker.3  ../../install/man/man3/syslog_lookup_facility.3  ../../install/man/man3/syslog_lookup_priority.3  ../../install/man/man3/syslog_facility_str.3  ../../install/man/man3/syslog_priority_str.3  ../../install/man/man3/syslog_parse.3   ../../install/man/man3/net_server.3  ../../install/man/man3/net_client.3  ../../install/man/man3/net_udp_server.3  ../../install/man/man3/net_udp_client.3  ../../install/man/man3/net_create_server.3  ../../install/man/man3/net_create_client.3  ../../install/man/man3/net_multicast_sender.3  ../../install/man/man3/net_multicast_receiver.3  ../../install/man/man3/net_multicast_join.3  ../../install/man/man3/net_multicast_leave.3  ../../install/man/man3/net_multicast_set_interface.3  ../../install/man/man3/net_multicast_get_interface.3  ../../install/man/man3/net_multicast_set_loopback.3  ../../install/man/man3/net_multicast_get_loopback.3  ../../install/man/man3/net_multicast_set_ttl.3  ../../install/man/man3/net_multicast_get_ttl.3  ../../install/man/man3/net_tos_lowdelay.3  ../../install/man/man3/net_tos_throughput.3  ../../install/man/man3/net_tos_reliability.3  ../../install/man/man3/net_tos_lowcost.3  ../../install/man/man3/net_tos_normal.3  ../../install/man/man3/net_options.3  ../../install/man/man3/net_interfaces.3  ../../install/man/man3/net_interfaces_with_locker.3  ../../install/man/man3/net_interfaces_by_family.3  ../../install/man/man3/net_interfaces_by_family_with_locker.3  ../../install/man/man3/rudp_create.3  ../../install/man/man3/rudp_release.3  ../../install/man/man3/rudp_destroy.3  ../../install/man/man3/net_rudp_transact.3  ../../install/man/man3/net_rudp_transactwith.3  ../../install/man/man3/net_pack.3  ../../install/man/man3/net_vpack.3  ../../install/man/man3/net_packto.3  ../../install/man/man3/net_vpackto.3  ../../install/man/man3/net_unpack.3  ../../install/man/man3/net_vunpack.3  ../../install/man/man3/net_unpackfrom.3  ../../install/man/man3/net_vunpackfrom.3  ../../install/man/man3/pack.3  ../../install/man/man3/vpack.3  ../../install/man/man3/unpack.3  ../../install/man/man3/vunpack.3  ../../install/man/man3/net_read.3  ../../install/man/man3/net_write.3  ../../install/man/man3/net_expect.3  ../../install/man/man3/net_vexpect.3  ../../install/man/man3/net_send.3  ../../install/man/man3/net_vsend.3  ../../install/man/man3/sendfd.3  ../../install/man/man3/recvfd.3  ../../install/man/man3/mail.3   ../../install/man/man3/prog_init.3  ../../install/man/man3/prog_set_name.3  ../../install/man/man3/prog_set_options.3  ../../install/man/man3/prog_set_syntax.3  ../../install/man/man3/prog_set_desc.3  ../../install/man/man3/prog_set_version.3  ../../install/man/man3/prog_set_date.3  ../../install/man/man3/prog_set_author.3  ../../install/man/man3/prog_set_contact.3  ../../install/man/man3/prog_set_vendor.3  ../../install/man/man3/prog_set_url.3  ../../install/man/man3/prog_set_legal.3  ../../install/man/man3/prog_set_out.3  ../../install/man/man3/prog_set_err.3  ../../install/man/man3/prog_set_dbg.3  ../../install/man/man3/prog_set_alert.3  ../../install/man/man3/prog_set_debug_level.3  ../../install/man/man3/prog_set_verbosity_level.3  ../../install/man/man3/prog_set_locker.3  ../../install/man/man3/prog_name.3  ../../install/man/man3/prog_options.3  ../../install/man/man3/prog_syntax.3  ../../install/man/man3/prog_desc.3  ../../install/man/man3/prog_version.3  ../../install/man/man3/prog_date.3  ../../install/man/man3/prog_author.3  ../../install/man/man3/prog_contact.3  ../../install/man/man3/prog_vendor.3  ../../install/man/man3/prog_url.3  ../../install/man/man3/prog_legal.3  ../../install/man/man3/prog_out.3  ../../install/man/man3/prog_err.3  ../../install/man/man3/prog_dbg.3  ../../install/man/man3/prog_alert.3  ../../install/man/man3/prog_debug_level.3  ../../install/man/man3/prog_verbosity_level.3  ../../install/man/man3/prog_out_fd.3  ../../install/man/man3/prog_out_stdout.3  ../../install/man/man3/prog_out_file.3  ../../install/man/man3/prog_out_syslog.3  ../../install/man/man3/prog_out_none.3  ../../install/man/man3/prog_err_fd.3  ../../install/man/man3/prog_err_stderr.3  ../../install/man/man3/prog_err_file.3  ../../install/man/man3/prog_err_syslog.3  ../../install/man/man3/prog_err_none.3  ../../install/man/man3/prog_dbg_fd.3  ../../install/man/man3/prog_dbg_stdout.3  ../../install/man/man3/prog_dbg_stderr.3  ../../install/man/man3/prog_dbg_file.3  ../../install/man/man3/prog_dbg_syslog.3  ../../install/man/man3/prog_dbg_none.3  ../../install/man/man3/prog_alert_fd.3  ../../install/man/man3/prog_alert_stdout.3  ../../install/man/man3/prog_alert_stderr.3  ../../install/man/man3/prog_alert_file.3  ../../install/man/man3/prog_alert_syslog.3  ../../install/man/man3/prog_alert_none.3  ../../install/man/man3/prog_opt_process.3  ../../install/man/man3/prog_usage_msg.3  ../../install/man/man3/prog_help_msg.3  ../../install/man/man3/prog_version_msg.3  ../../install/man/man3/prog_basename.3  ../../install/man/man3/opt_process.3  ../../install/man/man3/opt_usage.3   ../../install/man/man3/prop_get.3  ../../install/man/man3/prop_get_or.3  ../../install/man/man3/prop_set.3  ../../install/man/man3/prop_get_int.3  ../../install/man/man3/prop_get_int_or.3  ../../install/man/man3/prop_set_int.3  ../../install/man/man3/prop_get_double.3  ../../install/man/man3/prop_get_double_or.3  ../../install/man/man3/prop_set_double.3  ../../install/man/man3/prop_get_bool.3  ../../install/man/man3/prop_get_bool_or.3  ../../install/man/man3/prop_set_bool.3  ../../install/man/man3/prop_unset.3  ../../install/man/man3/prop_save.3  ../../install/man/man3/prop_clear.3  ../../install/man/man3/prop_locker.3   ../../install/man/man3/pty_open.3  ../../install/man/man3/pty_release.3  ../../install/man/man3/pty_set_owner.3  ../../install/man/man3/pty_make_controlling_tty.3  ../../install/man/man3/pty_change_window_size.3  ../../install/man/man3/pty_fork.3   ../../install/man/man3/signal_set_handler.3  ../../install/man/man3/signal_addset.3  ../../install/man/man3/signal_received.3  ../../install/man/man3/signal_raise.3  ../../install/man/man3/signal_handle.3  ../../install/man/man3/signal_handle_all.3   ../../install/man/man3/str_create.3  ../../install/man/man3/str_create_with_locker.3  ../../install/man/man3/str_vcreate.3  ../../install/man/man3/str_vcreate_with_locker.3  ../../install/man/man3/str_create_sized.3  ../../install/man/man3/str_create_with_locker_sized.3  ../../install/man/man3/str_vcreate_sized.3  ../../install/man/man3/str_vcreate_with_locker_sized.3  ../../install/man/man3/str_copy.3  ../../install/man/man3/str_copy_unlocked.3  ../../install/man/man3/str_copy_with_locker.3  ../../install/man/man3/str_copy_with_locker_unlocked.3  ../../install/man/man3/str_fgetline.3  ../../install/man/man3/str_fgetline_with_locker.3  ../../install/man/man3/str_release.3  ../../install/man/man3/str_destroy.3  ../../install/man/man3/str_rdlock.3  ../../install/man/man3/str_wrlock.3  ../../install/man/man3/str_unlock.3  ../../install/man/man3/str_empty.3  ../../install/man/man3/str_empty_unlocked.3  ../../install/man/man3/str_length.3  ../../install/man/man3/str_length_unlocked.3  ../../install/man/man3/cstr.3  ../../install/man/man3/str_set_length.3  ../../install/man/man3/str_set_length_unlocked.3  ../../install/man/man3/str_recalc_length.3  ../../install/man/man3/str_recalc_length_unlocked.3  ../../install/man/man3/str_clear.3  ../../install/man/man3/str_clear_unlocked.3  ../../install/man/man3/str_remove.3  ../../install/man/man3/str_remove_unlocked.3  ../../install/man/man3/str_remove_range.3  ../../install/man/man3/str_remove_range_unlocked.3  ../../install/man/man3/str_insert.3  ../../install/man/man3/str_insert_unlocked.3  ../../install/man/man3/str_vinsert.3  ../../install/man/man3/str_vinsert_unlocked.3  ../../install/man/man3/str_insert_str.3  ../../install/man/man3/str_insert_str_unlocked.3  ../../install/man/man3/str_append.3  ../../install/man/man3/str_append_unlocked.3  ../../install/man/man3/str_vappend.3  ../../install/man/man3/str_vappend_unlocked.3  ../../install/man/man3/str_append_str.3  ../../install/man/man3/str_append_str_unlocked.3  ../../install/man/man3/str_prepend.3  ../../install/man/man3/str_prepend_unlocked.3  ../../install/man/man3/str_vprepend.3  ../../install/man/man3/str_vprepend_unlocked.3  ../../install/man/man3/str_prepend_str.3  ../../install/man/man3/str_prepend_str_unlocked.3  ../../install/man/man3/str_replace.3  ../../install/man/man3/str_replace_unlocked.3  ../../install/man/man3/str_vreplace.3  ../../install/man/man3/str_vreplace_unlocked.3  ../../install/man/man3/str_replace_str.3  ../../install/man/man3/str_replace_str_unlocked.3  ../../install/man/man3/str_substr.3  ../../install/man/man3/str_substr_unlocked.3  ../../install/man/man3/str_substr_with_locker.3  ../../install/man/man3/str_substr_with_locker_unlocked.3  ../../install/man/man3/substr.3  ../../install/man/man3/substr_with_locker.3  ../../install/man/man3/str_splice.3  ../../install/man/man3/str_splice_unlocked.3  ../../install/man/man3/str_splice_with_locker.3  ../../install/man/man3/str_splice_with_locker_unlocked.3  ../../install/man/man3/str_repeat.3  ../../install/man/man3/str_repeat_with_locker.3  ../../install/man/man3/str_vrepeat.3  ../../install/man/man3/str_vrepeat_with_locker.3  ../../install/man/man3/str_tr.3  ../../install/man/man3/str_tr_unlocked.3  ../../install/man/man3/str_tr_str.3  ../../install/man/man3/str_tr_str_unlocked.3  ../../install/man/man3/tr.3  ../../install/man/man3/tr_compile.3  ../../install/man/man3/tr_compile_with_locker.3  ../../install/man/man3/str_tr_compile.3  ../../install/man/man3/str_tr_compile_unlocked.3  ../../install/man/man3/str_tr_compile_with_locker.3  ../../install/man/man3/str_tr_compile_with_locker_unlocked.3  ../../install/man/man3/tr_release.3  ../../install/man/man3/tr_destroy.3  ../../install/man/man3/str_tr_compiled.3  ../../install/man/man3/str_tr_compiled_unlocked.3  ../../install/man/man3/tr_compiled.3  ../../install/man/man3/str_regexpr.3  ../../install/man/man3/str_regexpr_unlocked.3  ../../install/man/man3/str_regexpr_with_locker.3  ../../install/man/man3/str_regexpr_with_locker_unlocked.3  ../../install/man/man3/regexpr.3  ../../install/man/man3/regexpr_with_locker.3  ../../install/man/man3/regexpr_compile.3  ../../install/man/man3/regexpr_release.3  ../../install/man/man3/str_regexpr_compiled.3  ../../install/man/man3/str_regexpr_compiled_unlocked.3  ../../install/man/man3/str_regexpr_compiled_with_locker.3  ../../install/man/man3/str_regexpr_compiled_with_locker_unlocked.3  ../../install/man/man3/regexpr_compiled.3  ../../install/man/man3/regexpr_compiled_with_locker.3  ../../install/man/man3/str_regsub.3  ../../install/man/man3/str_regsub_unlocked.3  ../../install/man/man3/str_regsub_compiled.3  ../../install/man/man3/str_regsub_compiled_unlocked.3  ../../install/man/man3/str_fmt.3  ../../install/man/man3/str_fmt_unlocked.3  ../../install/man/man3/str_fmt_with_locker.3  ../../install/man/man3/str_fmt_with_locker_unlocked.3  ../../install/man/man3/fmt.3  ../../install/man/man3/fmt_with_locker.3  ../../install/man/man3/str_split.3  ../../install/man/man3/str_split_unlocked.3  ../../install/man/man3/str_split_with_locker.3  ../../install/man/man3/str_split_with_locker_unlocked.3  ../../install/man/man3/split.3  ../../install/man/man3/split_with_locker.3  ../../install/man/man3/str_regexpr_split.3  ../../install/man/man3/str_regexpr_split_unlocked.3  ../../install/man/man3/str_regexpr_split_with_locker.3  ../../install/man/man3/str_regexpr_split_with_locker_unlocked.3  ../../install/man/man3/regexpr_split.3  ../../install/man/man3/regexpr_split_with_locker.3  ../../install/man/man3/str_join.3  ../../install/man/man3/str_join_unlocked.3  ../../install/man/man3/str_join_with_locker.3  ../../install/man/man3/str_join_with_locker_unlocked.3  ../../install/man/man3/join.3  ../../install/man/man3/join_with_locker.3  ../../install/man/man3/str_soundex.3  ../../install/man/man3/str_soundex_unlocked.3  ../../install/man/man3/soundex.3  ../../install/man/man3/str_trim.3  ../../install/man/man3/str_trim_unlocked.3  ../../install/man/man3/trim.3  ../../install/man/man3/str_trim_left.3  ../../install/man/man3/str_trim_left_unlocked.3  ../../install/man/man3/trim_left.3  ../../install/man/man3/str_trim_right.3  ../../install/man/man3/str_trim_right_unlocked.3  ../../install/man/man3/trim_right.3  ../../install/man/man3/str_squeeze.3  ../../install/man/man3/str_squeeze_unlocked.3  ../../install/man/man3/squeeze.3  ../../install/man/man3/str_quote.3  ../../install/man/man3/str_quote_unlocked.3  ../../install/man/man3/str_quote_with_locker.3  ../../install/man/man3/str_quote_with_locker_unlocked.3  ../../install/man/man3/quote.3  ../../install/man/man3/quote_with_locker.3  ../../install/man/man3/str_unquote.3  ../../install/man/man3/str_unquote_unlocked.3  ../../install/man/man3/str_unquote_with_locker.3  ../../install/man/man3/str_unquote_with_locker_unlocked.3  ../../install/man/man3/unquote.3  ../../install/man/man3/unquote_with_locker.3  ../../install/man/man3/str_encode.3  ../../install/man/man3/str_encode_unlocked.3  ../../install/man/man3/str_encode_with_locker.3  ../../install/man/man3/str_encode_with_locker_unlocked.3  ../../install/man/man3/str_decode.3  ../../install/man/man3/str_decode_unlocked.3  ../../install/man/man3/str_decode_with_locker.3  ../../install/man/man3/str_decode_with_locker_unlocked.3  ../../install/man/man3/encode.3  ../../install/man/man3/encode_with_locker.3  ../../install/man/man3/decode.3  ../../install/man/man3/decode_with_locker.3  ../../install/man/man3/str_lc.3  ../../install/man/man3/str_lc_unlocked.3  ../../install/man/man3/lc.3  ../../install/man/man3/str_lcfirst.3  ../../install/man/man3/str_lcfirst_unlocked.3  ../../install/man/man3/lcfirst.3  ../../install/man/man3/str_uc.3  ../../install/man/man3/str_uc_unlocked.3  ../../install/man/man3/uc.3  ../../install/man/man3/str_ucfirst.3  ../../install/man/man3/str_ucfirst_unlocked.3  ../../install/man/man3/ucfirst.3  ../../install/man/man3/str_chop.3  ../../install/man/man3/str_chop_unlocked.3  ../../install/man/man3/chop.3  ../../install/man/man3/str_chomp.3  ../../install/man/man3/str_chomp_unlocked.3  ../../install/man/man3/chomp.3  ../../install/man/man3/str_bin.3  ../../install/man/man3/str_bin_unlocked.3  ../../install/man/man3/bin.3  ../../install/man/man3/str_hex.3  ../../install/man/man3/str_hex_unlocked.3  ../../install/man/man3/hex.3  ../../install/man/man3/str_oct.3  ../../install/man/man3/str_oct_unlocked.3  ../../install/man/man3/oct.3  ../../install/man/man3/cstrcpy.3  ../../install/man/man3/cstrcat.3  ../../install/man/man3/cstrchr.3  ../../install/man/man3/cstrpbrk.3  ../../install/man/man3/cstrrchr.3  ../../install/man/man3/cstrstr.3

}

test $# -eq 0 && usage 1 1>&2

while test $# -gt 0
do
	case "$1" in
		-h|--help|help)           usage 0;;
		-v|--version|version)     echo "$version";;
		-L|--latest|latest)       latest;;
		-D|--download|download)   download;;
		-U|--upgrade|upgrade)     upgrade;;
		-p|--prefix|prefix)       echo "$prefix";;
		-c|--cflags|cflags)       echo "$cflags";;
		-l|--libs|libs)           echo "$libs";;
		-l|--ldflags|ldflags)     echo "$libs";;
		-u|--uninstall|uninstall) uninstall;;
		*) usage 1 >&2;;
	esac
	shift
done

exit 0

# vim:set ts=4 sw=4:
