#!/bin/sh
#
######################################################
# Build script for 5.x                               #
#                                                    #
# See .info for details                              #
#                                                    #
# June 15, 2013                                      #
######################################################

######################################################
# Configure extension creation parameters            #
######################################################

SRCNAM=nmap-6.40.tar.bz2
WRKDIR=nmap-6.40
EXTNAM=nmap
TMPDIR=/tmp/nmap

EXTNAM1=zenmap
TMPDIR1=/tmp/zenmap

######################################################
# Prepare extension creation                         #
######################################################

# Remove dirs and files left from previous creation

rm -r -f $WRKDIR

rm -r -f $TMPDIR
rm -r -f $TMPDIR-dbs
rm -r -f $TMPDIR-dev
rm -r -f $TMPDIR-dev

rm -r -f $TMPDIR1
rm -r -f $TMPDIR1-doc

# Crete temporary directory

mkdir -p $TMPDIR

######################################################
# Compile extension                                  #
######################################################

# Export variables needed for compilation

export CFLAGS="-Os -pipe -frtti"
export CXXFLAGS="-Os -pipe -fno-exceptions -frtti"
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig

# Unpack source in current directory

tar -xf $SRCNAM

# Configure it

cd $WRKDIR
./configure --prefix=/usr/local

# Compile

make

# Install in base temp dir

make install DESTDIR=$TMPDIR

# Delete compilation work directory

cd ..
rm -r -f $WRKDIR

# Make TC specific changes

cp -f *.desktop $TMPDIR/usr/local/share/applications

# Adjust directory access rigths

find $TMPDIR/ -type d | xargs chmod -v 755;

# Strip executables

find $TMPDIR | xargs file | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded

# Move files to zenmap extension

mkdir -p $TMPDIR1/usr/local/bin
mv $TMPDIR/usr/local/bin/zenmap $TMPDIR1/usr/local/bin
mv $TMPDIR/usr/local/bin/xnmap $TMPDIR1/usr/local/bin
mv $TMPDIR/usr/local/bin/nmapfe $TMPDIR1/usr/local/bin
mv $TMPDIR/usr/local/bin/uninstall_zenmap $TMPDIR1/usr/local/bin

mv $TMPDIR/usr/local/lib $TMPDIR1/usr/local

mkdir -p $TMPDIR1/usr/local/share
mv $TMPDIR/usr/local/share/zenmap $TMPDIR1/usr/local/share
mv $TMPDIR/usr/local/share/applications $TMPDIR1/usr/local/share
mv $TMPDIR/usr/local/share/pixmaps $TMPDIR1/usr/local/share

# Move files to zenmap doc extension

mkdir -p $TMPDIR1-doc/usr/local/share/man/man1
mv $TMPDIR/usr/local/share/man/man1/zen* $TMPDIR1-doc/usr/local/share/man/man1

mkdir -p $TMPDIR-doc/usr/local/share
mv $TMPDIR/usr/local/share/man $TMPDIR-doc/usr/local/share

# Move files to dbs extension

mkdir -p $TMPDIR-dbs/usr/local/share/nmap
mv $TMPDIR/usr/local/share/nmap/nmap-* $TMPDIR-dbs/usr/local/share/nmap

###################################################
# Create base extension in temp dir               #
###################################################

cd $TMPDIR
cd ..
mksquashfs $TMPDIR $EXTNAM.tcz
cd $TMPDIR
find usr -not -type d > $EXTNAM.tcz.list
mv ../$EXTNAM.tcz .

# Create md5 file

md5sum $EXTNAM.tcz > $EXTNAM.tcz.md5.txt

# Cleanup temp directory

rm -r -f usr

###################################################
# Create zenmap extension in temp dir             #
###################################################

cd $TMPDIR1
cd ..
mksquashfs $TMPDIR1 $EXTNAM1.tcz
cd $TMPDIR1
find usr -not -type d > $EXTNAM1.tcz.list
mv ../$EXTNAM1.tcz .

# Create md5 file

md5sum $EXTNAM1.tcz > $EXTNAM1.tcz.md5.txt

# Cleanup temp directory

rm -r -f usr

###################################################
# Create doc extension in temp dir                #
###################################################

cd $TMPDIR-doc
cd ..
mksquashfs $TMPDIR-doc $EXTNAM-doc.tcz
cd $TMPDIR-doc
find usr -not -type d > $EXTNAM-doc.tcz.list
mv ../$EXTNAM-doc.tcz .

# Create md5 file

md5sum $EXTNAM-doc.tcz > $EXTNAM-doc.tcz.md5.txt

# Cleanup temp directory

rm -r -f usr

###################################################
# Create zenmap doc extension in temp dir         #
###################################################

cd $TMPDIR1-doc
cd ..
mksquashfs $TMPDIR1-doc $EXTNAM1-doc.tcz
cd $TMPDIR1-doc
find usr -not -type d > $EXTNAM1-doc.tcz.list
mv ../$EXTNAM1-doc.tcz .

# Create md5 file

md5sum $EXTNAM1-doc.tcz > $EXTNAM1-doc.tcz.md5.txt

# Cleanup temp directory

rm -r -f usr


###################################################
# Create dbs extension in temp dir                #
###################################################

cd $TMPDIR-dbs
cd ..
mksquashfs $TMPDIR-dbs $EXTNAM-dbs.tcz
cd $TMPDIR-dbs
find usr -not -type d > $EXTNAM-dbs.tcz.list
mv ../$EXTNAM-dbs.tcz .

# Create md5 file

md5sum $EXTNAM-dbs.tcz > $EXTNAM-dbs.tcz.md5.txt

# Cleanup temp directory

rm -r -f usr

