# Tests by default. No tests: rpm -ba --define 'dotests 0' slang*.spec
%{!?dotests: %define dotests 1}
Summary: The shared library for the S-Lang extension language.
Name: slang
%define version 2.3.1a
%define majver 2.3
Version: %{version}
Release: 1
Copyright: Artistic
Group: System Environment/Libraries
Source0: ftp://space.mit.edu/pub/davis/slang/v%{majver}/slang-%{version}.tar.bz2
Source1: slang-%{version}-%{release}.build.log
Patch0: %{name}-%{version}-aix.patch
Url: ftp://space.mit.edu/pub/davis/slang/
Buildroot: /var/tmp/slang-root
Prefix: %{_prefix}
%ifarch ia64
%define DEFCCIA gcc
%define DEFCC %{DEFCCIA}
%else
%define DEFCC gcc
%endif

%ifarch ia64
  %define stdlib lib/ia64l32
  %define liblink ../../..
%else
  %define stdlib lib
  %define liblink ../..
%endif

%description
S-Lang is an interpreted language and a programming library.  The
S-Lang language was designed so that it can be easily embedded into
a program to provide the program with a powerful extension language.
The S-Lang library, provided in this package, provides the S-Lang
extension language.  S-Lang's syntax resembles C, which makes it easy
to recode S-Lang procedures in C if you need to.

%package devel
Summary: The static library and header files for development using S-Lang.
Group: Development/Libraries
Requires: slang

%description devel
This package contains the S-Lang extension language static libraries
and header files which you'll need if you want to develop S-Lang based
applications.  Documentation which may help you write S-Lang based
applications is also included.

Install the slang-devel package if you want to develop applications
based on the S-Lang extension language.

%prep
%setup -q
%patch0
rm -rf   /tmp/%{name}-%{version}-32bit
cp -pr . /tmp/%{name}-%{version}-32bit
rm -fr *
mv       /tmp/%{name}-%{version}-32bit 32bit
cp -pr 32bit 64bit

%build
# Use the default compiler for this platform - gcc otherwise
if [[ -z "$CC" ]]
then
    if test "X`type %{DEFCC} 2>/dev/null`" != 'X'; then
       export CC=%{DEFCC}
    else 
       export CC=gcc
    fi
fi
if test "X$CC" != "Xgcc"
then
       export RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed 's:-fsigned-char::'`
       export CFLAGS="$RPM_OPT_FLAGS"
%ifarch ia64
   if test "X$CC" != "Xgcc"
   then
       export RPM_OPT_FLAGS=""
   fi
%endif
fi
export CC="/opt/freeware/bin/gcc"
export CXX="/opt/freeware/bin/g++"
# build on 64bit mode
cd 64bit
export OBJECT_MODE=64
export CFLAGS="$RPM_OPT_FLAGS -maix64 -D_LARGE_FILES"
export LDFLAGS="-Wl,-brtl"
./configure --prefix=%{_prefix} --libdir=%{_libdir}64  --mandir=%{_mandir} --includedir=%{_prefix}/include/slang
make all
if [ "%{dotests}" == 1 ]
then
    (gmake -k check || true)
fi

# build on 32bit mode
cd ../32bit
export OBJECT_MODE=32
export CFLAGS="$RPM_OPT_FLAGS -maix32 -D_LARGE_FILES"
export LDFLAGS="-Wl,-brtl"
./configure --prefix=%{_prefix} --libdir=%{_libdir} --mandir=%{_mandir} --includedir=%{_prefix}/include/slang
make all
if [ "%{dotests}" == 1 ]
then
    (gmake -k check || true)
fi

%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{_prefix}/include/slang

# install on 64bit mode
cd 64bit
export OBJECT_MODE=64
make DESTDIR=$RPM_BUILD_ROOT install

(
    cd  ${RPM_BUILD_ROOT}/%{prefix}/bin
    for fic in $(ls -1| grep -v -e _32 -e _64)
    do
	mv $fic "$fic"_64
    done
)

# install on 32bit mode
cd ../32bit
export OBJECT_MODE=32
make DESTDIR=$RPM_BUILD_ROOT install

(
    cd  ${RPM_BUILD_ROOT}/%{prefix}/bin
    for fic in $(ls -1| grep -v -e _32 -e _64)
    do
	mv $fic "$fic"_32
	ln -sf "$fic"_64 $fic
    done
)
# create the proper AIX shared library
/usr/bin/ar -X32 -rv ${RPM_BUILD_ROOT}%{_libdir}/lib%{name}.a \
    ${RPM_BUILD_ROOT}%{_libdir}/lib%{name}.so.2
/usr/bin/ar -X64 -q  ${RPM_BUILD_ROOT}%{_libdir}/lib%{name}.a \
    ${RPM_BUILD_ROOT}%{_libdir}64/lib%{name}.so.2

( cd $RPM_BUILD_ROOT
 mkdir -p usr/include
 cd usr/include
 ln -sf ../..%{prefix}/include/* .
 cd -

 mkdir -p usr/%{stdlib}
 cd usr/%{stdlib}
 ln -sf %{liblink}%{prefix}/lib/* .
 cd -

 mkdir -p usr/%{stdlib}64
 cd usr/%{stdlib}64
 ln -sf %{liblink}%{prefix}/lib64/* .
 cd -

 mkdir -p usr/bin
 cd usr/bin
 ln -sf ../..%{prefix}/bin/* .
 cd -
)

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,system)
%doc 32bit/COPYING 32bit/doc/README 32bit/changes.txt
%doc 32bit/doc/*/slang*.txt 32bit/doc/*.txt
%{_libdir}/*.a
%{_libdir}/*.so*
%{_libdir}64/*.so*
/usr/lib/*.a
/usr/lib/*.so*
/usr/lib64/*.so*

%doc 32bit/slsh/doc/html/slsh*.html
%config(noreplace) %{_sysconfdir}/slsh.rc
%{_bindir}/*
%{_mandir}/man1/*
%{_libdir}/%{name}
%{_libdir}64/%{name}
%{_datadir}/slsh
/usr/bin/*


%files devel
%defattr(-,root,system)
%doc 32bit/doc/*/cslang*.txt 32bit/doc/*/cref.txt
%{_includedir}/*
/usr/include/*

%changelog
* Mon Apr 24 2017 Reshma V Kumar <reskumar@in.ibm.com>
- Version 2.3.1a

* Mon May 21 2001 Marc Stephenson <marc@austin.ibm.com>
- Version 1.4.4

* Tue Feb 20 2001 aixtoolbox <aixtoollbox-l@austin.ibm.com>
- Account for different standard lib location in IA64 32-bit ABI

* Fri Oct 27 2000 pkgmgr <pkgmgr@austin.ibm.com>
- Modify for AIX Freeware distribution

* Tue Mar  7 2000 Jeff Johnson <jbj@redhat.com>
- rebuild for sparc baud rates > 38400.

* Sun Mar 21 1999 Cristian Gafton <gafton@redhat.com> 
- auto rebuild in the new build environment (release 4)

* Wed Oct 21 1998 Bill Nottingham <notting@redhat.com>
- libslang.so goes in -devel

* Sun Jun 07 1998 Prospector System <bugs@redhat.com>

- translations modified for de

* Sat Jun  6 1998 Jeff Johnson <jbj@redhat.com>
- updated to 1.2.2 with buildroot.

* Tue May 05 1998 Prospector System <bugs@redhat.com>
- translations modified for de, fr, tr

* Sat Apr 18 1998 Erik Troan <ewt@redhat.com>
- rebuilt to find terminfo in /usr/share

* Tue Oct 14 1997 Donnie Barnes <djb@redhat.com>
- spec file cleanups

* Mon Sep 1 1997 Donnie Barnes <djb@redhat.com>
- upgraded to 0.99.38 (will it EVER go 1.0???)
- all patches removed (all appear to be in this version)

* Thu Jun 19 1997 Erik Troan <ewt@redhat.com>
- built against glibc

