summaryrefslogtreecommitdiffstats
path: root/x11vnc/misc/enhanced_tightvnc_viewer/build.unix
diff options
context:
space:
mode:
Diffstat (limited to 'x11vnc/misc/enhanced_tightvnc_viewer/build.unix')
-rwxr-xr-xx11vnc/misc/enhanced_tightvnc_viewer/build.unix244
1 files changed, 244 insertions, 0 deletions
diff --git a/x11vnc/misc/enhanced_tightvnc_viewer/build.unix b/x11vnc/misc/enhanced_tightvnc_viewer/build.unix
new file mode 100755
index 0000000..9a0fc3d
--- /dev/null
+++ b/x11vnc/misc/enhanced_tightvnc_viewer/build.unix
@@ -0,0 +1,244 @@
+#!/bin/sh
+
+# Add useful directories to PATH:
+#
+PATH=$PATH:/usr/bin:/bin:/usr/local/bin:/usr/X11R6/bin:/usr/bin/X11:/usr/openwin/bin:/opt/SUNWspro/bin:/usr/sfw/bin:/usr/ccs/bin
+export PATH
+
+# Check location:
+#
+thisdir=`dirname "$0"`
+if [ ! -d ./bin -o ! -d src/patches ]; then
+ echo "You must run this script from: $thisdir"
+ exit 1
+fi
+
+# Try to find osname.arch
+#
+name=$UNAME
+if [ "X$name" = "X" ]; then
+ name=`uname -sm | sed -e 's/ /./'`
+fi
+if [ "X$name" = "X" ]; then
+ echo "cannot determine platform: os.arch, e.g. Linux.i686"
+ echo "set \$UNAME manually and retry."
+ exit 1
+fi
+
+# Work out main destination:
+#
+dest=./bin/$name
+if [ -d $dest ]; then
+ printf "$dest exists. overwrite it? [y]/n "
+ read x
+ if [ "X$x" = "Xn" ]; then
+ exit
+ fi
+ rm -rf $dest
+fi
+mkdir -p $dest || exit 1
+
+# Create a tmp dir for this build:
+#
+tmp=./src/tmp/$name.$$
+if [ "X$TMPDIR" != "X" ]; then
+ tmp="$TMPDIR/$tmp"
+fi
+mkdir -p $tmp || exit 1
+
+# Try to find some static archives of various libraries:
+#
+libs="$tmp/libs"
+mkdir -p $libs || exit 1
+#for liba in libz.a libjpeg.a libssl.a libcrypto.a
+for liba in libz.a libjpeg.a
+do
+ for dir in /usr/lib /lib /usr/local/lib /usr/pkg/lib /usr/sfw/lib /usr/openwin/lib
+ do
+ if [ "$name" = "Linux.x86_64" -o "$name" = "Linux.ppc64" ] ; then
+ dir64=`echo "$dir" | sed -e 's,lib,lib64,'`
+ fi
+ try="$dir/$liba"
+ if [ -f $try ]; then
+ cp -p "$try" $libs
+ fi
+ done
+done
+echo "Found these static archive libraries, will try to use them..."
+ls -ld $libs
+ls -l $libs
+echo
+
+have_gcc=""
+if type gcc > /dev/null; then
+ have_gcc=1
+fi
+have_cc=""
+if type cc > /dev/null; then
+ have_cc=1
+fi
+
+if [ "X$have_cc" = "X" ]; then
+ if [ "X$have_gcc" = "X1" ]; then
+ cat > $tmp/cc <<END
+#!/bin/sh
+gcc "\$@"
+END
+ chmod 755 $tmp/cc
+ PATH=$PATH:`pwd`/$tmp
+ type cc
+ type gcc
+ fi
+fi
+
+if [ `uname` = "SunOS" ]; then
+ LDFLAGS_OS="$LDFLAGS_OS -L/usr/sfw/lib -R/usr/sfw/lib"
+ CPPFLAGS_OS="$CPPFLAGS_OS -I /usr/sfw/include"
+elif uname | grep -i bsd > /dev/null; then
+ LDFLAGS_OS="$LDFLAGS_OS -L/usr/local/lib -L/usr/pkg/lib"
+ CPPFLAGS_OS="$CPPFLAGS_OS -I /usr/local/include -I /usr/pkg/include"
+fi
+
+# Do tightvnc viewer:
+#
+tight_src=`ls -td ./src/vnc_unixsrc* | head -1`
+if [ ! -d $tight_src ]; then
+ echo "could not locate tight vnc viewer source"
+ exit 1
+fi
+
+cp -pR "$tight_src" "$tmp/vnc_unixsrc" || exit 1
+
+echo "applying tight vnc patches:"
+start=`pwd`
+cd $tmp;
+failed=0
+for patch in ../../patches/tight*
+do
+ if [ ! -f "$patch" ]; then
+ continue
+ fi
+ patch -p0 < $patch
+ if [ $? != 0 ]; then
+ failed=`expr $failed + 1`
+ fi
+done
+cd "$start"
+if [ $failed != 0 ]; then
+ ball=src/zips/vnc_unixsrc_vncviewer.patched.tar
+ echo "patches failed, trying to use backup tarball:"
+ ls -l $ball
+ sleep 2
+ cat $ball | (cd $tmp; tar -xvf -)
+fi
+echo
+
+
+cd $tmp/vnc_unixsrc
+xmkmf
+make Makefiles
+mv vncviewer/Makefile vncviewer/Makefile.orig
+sed -e "s,EXTRA_LDOPTIONS =,EXTRA_LDOPTIONS = -L$start/$libs $LDFLAGS_OS," \
+ -e "s,CCOPTIONS =,CCOPTIONS = $CPPFLAGS_OS," \
+ vncviewer/Makefile.orig > vncviewer/Makefile
+
+if [ `uname` = "SunOS" ]; then
+ for d in vncviewer libvncauth vncconnect vncpasswd
+ do
+ mv $d/Makefile $d/Makefile.orig
+ sed -e "s,CCOPTIONS =.*\$,CCOPTIONS = $CPPFLAGS_OS," \
+ $d/Makefile.orig > $d/Makefile
+ done
+fi
+
+make depend
+echo $PATH
+make all
+ls -l vncviewer/vncviewer
+cd "$start"
+src=$tmp/vnc_unixsrc/vncviewer/vncviewer
+sync
+sleep 2
+sync
+strip $src
+sync
+sleep 2
+sync
+wc $src
+sum $src
+sleep 2
+echo cp -p $src $dest/vncviewer
+cp -p $src $dest/vncviewer || exit 1
+sleep 1
+cp -p $src $dest/vncviewer || exit 1
+ls -l $src $dest/vncviewer
+$dest/vncviewer -h
+ldd $dest/vncviewer
+echo ""
+
+# Do stunnel:
+#
+stunnel_src=`ls -td ./src/stunnel* | head -1`
+if [ ! -d $stunnel_src ]; then
+ echo "could not locate stunnel source"
+ exit 1
+fi
+
+cp -pR "$stunnel_src" "$tmp/stunnel" || exit 1
+
+echo "applying stunnel patches:"
+start=`pwd`
+cd $tmp;
+failed=0
+for patch in ../../patches/stunnel*
+do
+ if [ ! -f "$patch" ]; then
+ continue
+ fi
+ patch -p0 < $patch
+ if [ $? != 0 ]; then
+ failed=`expr $failed + 1`
+ fi
+done
+cd "$start"
+if [ $failed != 0 ]; then
+ ball=src/zips/stunnel.patched.tar
+ echo "patches failed, trying to use backup tarball:"
+ ls -l $ball
+ sleep 2
+ cat $ball | (cd $tmp; tar -xvf -)
+fi
+echo
+
+
+cd $tmp/stunnel
+if [ `uname` = "SunOS" ]; then
+ cp configure configure.orig
+ sed -e "s,/var/ssl,/var/ssl /usr/sfw," configure.orig > configure
+fi
+env LDFLAGS="-L$start/$libs $LDFLAGS_OS" CPPFLAGS="$CPPFLAGS_OS" ./configure --disable-libwrap
+make
+ls -l src/stunnel
+cd "$start"
+src=$tmp/stunnel/src/stunnel
+sync
+sleep 2
+sync
+strip $src
+sync
+sleep 2
+sync
+wc $src
+sum $src
+sleep 2
+echo cp -p $src $dest/stunnel
+cp -p $src $dest/stunnel || exit 1
+sleep 1
+cp -p $src $dest/stunnel || exit 1
+ls -l $src $dest/stunnel
+$dest/stunnel -help
+ldd $dest/stunnel
+echo ""
+
+$dest/vncviewer -h
+ldd $dest/vncviewer