# Tests by default. 
%define  dotests 1
Summary: A GNU set of database routines which use extensible hashing.
Name:    gdbm
Version: 1.18.1
Release: 1
Source0: ftp://ftp.gnu.org/gnu/%{name}-%{version}.tar.gz
Source1: ftp://ftp.gnu.org/gnu/%{name}-%{version}.tar.gz.sig
Source2: libgdbm.so.3-aix32
Source3: libgdbm.so.3-aix64

# added these library to maintain compatiblity
Source4: libgdbm.so.4-aix32
Source5: libgdbm.so.4-aix64

License: GPL
URL: http://www.gnu.org/software/gdbm/
Group: System Environment/Libraries
BuildRoot: /var/tmp/%{name}--Ã%{version}-root

BuildRequires: gettext >= 0.19.8.1-3 
Requires: libgcc >= 6.3.0
Requires: gettext >= 0.19.8.1-3 

%description
Gdbm is a GNU database indexing library, including routines which use
extensible hashing.  Gdbm works in a similar way to standard UNIX dbm
routines.  Gdbm is useful for developers who write C applications and
need access to a simple and efficient database or who are building C
applications which will use such a database.

If you're a C developer and your programs need access to simple
database routines, you should install gdbm.  You'll also need to
install gdbm-devel.


%package devel
Summary: Development libraries and header files for the gdbm library.
Group: Development/Libraries
Requires: %{name} = %{version}
Requires: /sbin/install-info, info

%description devel
Gdbm-devel contains the development libraries and header files for
gdbm, the GNU database system.  These libraries and header files are
necessary if you plan to do development using the gdbm database.

Install gdbm-devel if you are developing C programs which will use the
gdbm database library.  You'll also need to install the gdbm package.


%prep
%setup -q

# Duplicate source for 32 & 64 bits
rm -rf /tmp/%{name}-%{version}-32bit
mkdir  /tmp/%{name}-%{version}-32bit
mv *   /tmp/%{name}-%{version}-32bit
mkdir 32bit
mv     /tmp/%{name}-%{version}-32bit/* 32bit
rm -rf /tmp/%{name}-%{version}-32bit
mkdir 64bit
cp -rp 32bit/* 64bit/

%build
export RM="/usr/bin/rm -f"
# setup environment for 32-bit and 64-bit builds
export AR="/usr/bin/ar -X32_64"
export NM="/usr/bin/nm -X32_64"
export CONFIG_SHELL=/usr/bin/ksh
export CONFIG_ENV_ARGS=/usr/bin/ksh

# first build the 64-bit version
cd 64bit
export CC="gcc -maix64"
export CFLAGS="-fPIC -pthread"
export OBJECT_MODE=64
./configure \
    --prefix=%{_prefix} \
    --mandir=%{_mandir} \
    --infodir=%{_infodir} \
    --enable-shared --disable-static

gmake %{?_smp_mflags} 

cp src/.libs/libgdbm.so.6 .

if [ "%{dotests}" == 1 ]
then
    (gmake -k check || true)
     /usr/sbin/slibclean
fi


# now build the 32-bit version
cd ../32bit
export CC="gcc -maix32 -D_LARGE_FILES"
export OBJECT_MODE=32
export LDFLAGS="-Wl,-bmaxdata:0x80000000"
./configure \
    --prefix=%{_prefix} \
    --mandir=%{_mandir} \
    --infodir=%{_infodir} \
    --enable-shared --disable-static

gmake %{?_smp_mflags}

if [ "%{dotests}" == 1 ]
then
    (gmake -k check || true)
    /usr/sbin/slibclean
fi


# add the 64-bit shared objects to the shared library containing already the
# 32-bit shared objects
${AR} -q src/.libs/libgdbm.a ../64bit/libgdbm.so.6

# Add the older 1.8.3 shared members for compatibility with older apps
# (make sure they're set for LOADONLY with 'strip -e')
cp %{SOURCE2} libgdbm.so.3
/usr/bin/strip -X32 -e libgdbm.so.3
/usr/bin/ar -X32 -q src/.libs/libgdbm.a libgdbm.so.3

cp %{SOURCE3} libgdbm.so.3
/usr/bin/strip -X64 -e libgdbm.so.3
/usr/bin/ar -X64 -q src/.libs/libgdbm.a libgdbm.so.3

cp %{SOURCE4} libgdbm.so.4
/usr/bin/strip -X32 -e libgdbm.so.4
/usr/bin/ar -X32 -q src/.libs/libgdbm.a libgdbm.so.4

cp %{SOURCE5} libgdbm.so.4
/usr/bin/strip -X64 -e libgdbm.so.4
/usr/bin/ar -X64 -q src/.libs/libgdbm.a libgdbm.so.4


%install
[ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT}
export RM="/usr/bin/rm -f"

cd 64bit
export AR="/usr/bin/ar -X64"
export OBJECT_MODE=64
make DESTDIR=${RPM_BUILD_ROOT} install

cd ../32bit
export AR="/usr/bin/ar -X32"
export OBJECT_MODE=32
make DESTDIR=${RPM_BUILD_ROOT} install

gzip --best ${RPM_BUILD_ROOT}%{_infodir}/*.info
rm -f ${RPM_BUILD_ROOT}%{_infodir}/dir

(
  cd ${RPM_BUILD_ROOT}
  for dir in include lib
  do
    mkdir -p usr/${dir}
    cd usr/${dir}
    ln -sf ../..%{_prefix}/${dir}/* .
    cd -
  done
)



%post devel
/sbin/install-info %{_infodir}/gdbm.info.gz %{_infodir}/dir --entry="* gdbm: (gdbm).                   The GNU Database." || :


%preun devel
if [ $1 = 0 ]; then
   /sbin/install-info --delete %{_infodir}/gdbm.info.gz %{_infodir}/dir --entry="* gdbm: (gdbm).                   The GNU Database." || :
fi


%clean
[ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT}


%files
%defattr(-,root,system)
%doc 32bit/COPYING 32bit/NEWS 32bit/README
%{_libdir}/*.a
/usr/lib/*.a


%files devel
%defattr(-,root,system)
%{_includedir}/*
%{_libdir}/*.la
%{_infodir}/*.info*
%{_mandir}/man3/*
/usr/include/*
/usr/lib/*.la


%changelog
* Wed Apr 24 2018 Ravi Hirekurabar <rhirekur@in.ibm.com> -1.18.1-1
- Updated to 1.18.1

* Thu Feb 02 2012 Gerard Visiedo <gerard.visiedo@bull.net> - 1.10-1
- Initial port on Aix6.1

