#!/bin/sh

## script for auto-making Vim RPM
## Time-stamp: <Jun 08 2004>

VIM_VERSION=6.3
#VIM_LASTPATCH=
#IM_CUSTOM_VERSION=073
CONFIG_OPTION="--prefix=/usr --enable-multibyte"
#RPM_TOPDIR=$HOME/rpmdir
RPM_TARGET=i386
RPM_RELEASE=1

if [ "x$IM_CUSTOM_VERSION" == "x" ]; then
  CONFIG_OPTION="$CONFIG_OPTION --enable-canna --enable-skk --enable-pobox"
fi

if [ "x$IM_CUSTOM_VERSION" == "x" ]; then
  CONFIG_OPTION="$CONFIG_OPTION --enable-canna --enable-skk --enable-pobox"
fi

if [ ! "x$RPM_TOPDIR" == "x" ]; then
  RPM_BUILDDIR=$RPM_TOPDIR
else
  RPM_BUILDDIR=/usr/src/redhat
fi

VIM_VERSHORT=`echo $VIM_VERSION | sed 's/\.//g'`
VIM_UNSTABLE=`echo $VIM_VERSHORT | sed 's/[0-9\.]//g'`

if [ ! "x$VIM_LASTPATCH" == "x" ]; then
  if [ "x$IM_CUSTOM_VERSION" == "x" ]; then
    VERSION_FULL=$VIM_VERSION.$VIM_LASTPATCH
    NAME_FULL="Vim editor"
  else
    VERSION_FULL=$VIM_VERSION.${VIM_LASTPATCH}_im_custom$IM_CUSTOM_VERSION
    NAME_FULL="Vim editor with im_custom"
  fi
else
  if [ "x$IM_CUSTOM_VERSION" == "x" ]; then
    VERSION_FULL=$VIM_VERSION
    NAME_FULL="Vim editor"
  else
    VERSION_FULL=${VIM_VERSION}_im_custom$IM_CUSTOM_VERSION
    NAME_FULL="Vim editor with im_custom"
  fi
fi
RPM_FILE=vim-$VERSION_FULL-$RPM_RELEASE.$RPM_TARGET.rpm

echo Building $RPM_FILE ...
if [ -s $RPM_BUILDDIR/RPMS/$RPM_TARGET/$RPM_FILE ] ; then
  echo $RPM_FILE is already exist in $RPM_BUILDDIR/RPMS/$RPM_TARGET
  exit
fi

if [ "x$VIM_UNSTABLE" == "x" ]; then
  FTP_ARCHIVE=ftp://ftp.vim.org/pub/vim
  FTP_PATCHES=ftp://ftp.vim.org/pub/patches
else
  FTP_ARCHIVE=ftp://ftp.vim.org/pub/vim/unstable
  FTP_PATCHES=ftp://ftp.vim.org/pub/vim/unstable/patches/$VIM_VERSION
fi

## get SourceCodes and Patches from net
##
mkdir -p $RPM_BUILDDIR/{RPMS,SRPMS,BUILD,SOURCES,SPECS}
cd $RPM_BUILDDIR/SOURCES

if [ ! -s vim-$VIM_VERSION.tar.bz2 ] ; then
  wget $FTP_ARCHIVE/unix/vim-$VIM_VERSION.tar.bz2
fi
if [ ! -s vim-$VIM_VERSION-extra.tar.gz ] ; then
  wget $FTP_ARCHIVE/extra/vim-$VIM_VERSION-extra.tar.gz
fi
if [ ! -s vim-$VIM_VERSION-lang.tar.gz ] ; then
  wget $FTP_ARCHIVE/extra/vim-$VIM_VERSION-lang.tar.gz
fi

if [ ! "x$VIM_LASTPATCH" == "x" ]; then
  C=1
  while test $C -le $VIM_LASTPATCH
  do
    if [ ! -s $VIM_VERSION.`printf %03d $C` ]; then
      wget $FTP_PATCHES/$VIM_VERSION.`printf %03d $C`
    fi
    C=`expr $C + 1`
  done
fi

if [ ! "x$IM_CUSTOM_VERSION" == "x" ]; then
  if [ ! -s im_custom$IM_CUSTOM_VERSION.diff.gz ] ; then
    wget http://hp.vector.co.jp/authors/VA020411/Vim/im_custom/im_custom$IM_CUSTOM_VERSION.diff.gz
  fi
fi

cat > $RPM_BUILDDIR/SPECS/vim.spec << END_OF_LINE
Summary: $NAME_FULL
Name: vim
Version: $VERSION_FULL
Release: 1
URL: http://www.vim.org/
Source0: vim-$VIM_VERSION.tar.bz2
Source1: vim-$VIM_VERSION-extra.tar.gz
Source2: vim-$VIM_VERSION-lang.tar.gz
END_OF_LINE

if [ ! "x$VIM_LASTPATCH" == "x" ]; then
C=0
while test $C -lt $VIM_LASTPATCH
do
  echo Patch$C: $VIM_VERSION.`printf %03d \`expr $C + 1\`` >> $RPM_BUILDDIR/SPECS/vim.spec
  C=`expr $C + 1`
done
fi
if [ ! "x$IM_CUSTOM_VERSION" == "x" ]; then
  echo Patch$C: im_custom$IM_CUSTOM_VERSION.diff.gz >> $RPM_BUILDDIR/SPECS/vim.spec
fi

if [ ! "x$RPM_TOPDIR" == "x" ]; then
  echo %_topdir $RPM_BUILDDIR > ~/.rpmmacros
fi
cat >> $RPM_BUILDDIR/SPECS/vim.spec << END_OF_LINE
License: GPL
Group: Applications/Editors
Conflicts: vim-common, vim-enhanced
BuildRoot: %{_tmppath}/%{name}-root
%description
END_OF_LINE

if [ ! "x$VIM_LASTPATCH" == "x" ]; then
cat >> $RPM_BUILDDIR/SPECS/vim.spec << END_OF_LINE
Vim $VIM_VERSION patch $VIM_LASTPATCH
END_OF_LINE
else
cat >> $RPM_BUILDDIR/SPECS/vim.spec << END_OF_LINE
Vim $VIM_VERSION
END_OF_LINE
fi

if [ ! "x$IM_CUSTOM_VERSION" == "x" ]; then
cat >> $RPM_BUILDDIR/SPECS/vim.spec << END_OF_LINE
with im_custom$IM_CUSTOM_VERSION
(canna,skk,pobox enabled).
END_OF_LINE
fi

cat >> $RPM_BUILDDIR/SPECS/vim.spec << END_OF_LINE
%prep
## decompress Source0,1,2
%setup -q -n vim$VIM_VERSHORT -b1 -b2

## apply patch
END_OF_LINE

if [ ! "x$VIM_LASTPATCH" == "x" ]; then
C=0
while test $C -le $VIM_LASTPATCH
do
  echo %patch$C -p0 >> $RPM_BUILDDIR/SPECS/vim.spec
  C=`expr $C + 1`
done
fi

cat >> $RPM_BUILDDIR/SPECS/vim.spec << END_OF_LINE

%build
./configure $CONFIG_OPTION
make

%install
rm -rf %{buildroot}
mkdir %{buildroot}
make install DESTDIR=%{buildroot} 

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root)
/usr/bin/vim
/usr/bin/gvim
/usr/bin/gview
/usr/bin/rgvim
/usr/bin/rgview
/usr/bin/evim
/usr/bin/eview
/usr/bin/gvimdiff
/usr/bin/ex
/usr/bin/view
/usr/bin/rvim
/usr/bin/rview
/usr/bin/vimdiff
/usr/bin/vimtutor
/usr/bin/xxd
%doc /usr/man/man1
%doc /usr/share/vim/vim$VIM_VERSHORT/doc
/usr/share/vim/vim$VIM_VERSHORT
END_OF_LINE

cat >> $RPM_BUILDDIR/SPECS/vim.spec << END_OF_LINE

%changelog
* Tue Jun  8 2004  Yasuhiro Matsumoto <mattn_jp @ hotmail.com>
- modify all
* Sat Feb  8 2003  Itou Hiroki <wmwm @ nifty.com>
- add patch3
* Mon Jan 20 2003  Itou Hiroki <wmwm @ nifty.com>
- Initial build for RedHatLinux7.1/7.2/7.3
END_OF_LINE

## make rpm
##
rpmbuild -ba --target $RPM_TARGET $RPM_BUILDDIR/SPECS/vim.spec
echo
echo   vim-$VERSION_FULL RPM package is ready in $RPM_BUILDDIR/RPMS/$RPM_TARGET
echo

