# TODO(dreiss): Have a Python build with and without the extension.
%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
# TODO(dreiss): Where is this supposed to go?
%{!?thrift_erlang_root: %define thrift_erlang_root /opt/thrift-erl}

Name:           thrift
License:        Thrift Software License
Group:          Development
Summary:        RPC and serialization framework
Version:        20080529svn
Epoch:          1
Release:        1
URL:            http://developers.facebook.com/thrift
Packager:       David Reiss <dreiss@facebook.com>
Source0:        %{name}-%{version}.tar.gz

BuildRequires:  gcc >= 3.4.6
BuildRequires:  gcc-c++

# TODO(dreiss): Can these be moved into the individual packages?
%if %{!?without_java: 1}
BuildRequires:  java-devel >= 0:1.5.0
BuildRequires:  ant >= 0:1.6.5
%endif

%if %{!?without_python: 1}
BuildRequires:  python-devel
%endif

%if %{!?without_erlang: 1}
BuildRequires:  erlang
%endif

BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

%description
Thrift is a software framework for scalable cross-language services
development. It combines a powerful software stack with a code generation
engine to build services that work efficiently and seamlessly between C++,
Java, C#, Python, Ruby, Perl, PHP, Objective C/Cocoa, Smalltalk, Erlang,
Objective Caml, and Haskell.

%files
%defattr(-,root,root)
%{_bindir}/thrift
%{_datadir}/thrift/if/reflection_limited.thrift


%package lib-cpp
Summary: Thrift C++ library
Group:   Libraries

%description lib-cpp
C++ libraries for Thrift.

%files lib-cpp
%defattr(-,root,root)
%{_libdir}/libthrift*.so.*


%package lib-cpp-devel
Summary:   Thrift C++ library development files
Group:     Libraries
Requires:  %{name} = %{version}-%{release}
Requires:  boost-devel
%if %{!?without_libevent: 1}
Requires:  libevent-devel >= 1.2
%endif
%if %{!?without_zlib: 1}
Requires:  zlib-devel
%endif

%description lib-cpp-devel
C++ static libraries and headers for Thrift.

%files lib-cpp-devel
%defattr(-,root,root)
%{_includedir}/thrift/
%{_libdir}/libthrift*.*a
%{_libdir}/libthrift*.so
%{_libdir}/pkgconfig/thrift*.pc


%if %{!?without_java: 1}
%package lib-java
Summary:   Thrift Java library
Group:     Libraries
Requires:  java >= 0:1.5.0

%description lib-java
Java libraries for Thrift.

%files lib-java
%defattr(-,root,root)
%{_javadir}/*
%endif


%if %{!?without_python: 1}
%package lib-python
Summary: Thrift Python library
Group:   Libraries

%description lib-python
Python libraries for Thrift.

%files lib-python
%defattr(-,root,root)
%{python_sitearch}/*
%endif


%if %{!?without_erlang: 1}
%package lib-erlang
Summary:  Thrift Python library
Group:    Libraries
Requires: erlang

%description lib-erlang
Erlang libraries for Thrift.

%files lib-erlang
%defattr(-,root,root)
%{thrift_erlang_root}
%endif


%prep
%setup -q

%build
# TODO(dreiss): Implement a single --without-build-kludges.
%configure \
  %{?without_libevent: --without-libevent } \
  %{?without_zlib:     --without-zlib     } \
  --without-java \
  --without-csharp \
  --without-py \
  --without-erlang \

make

%if %{!?without_java: 1}
cd lib/java
%ant
cd ../..
%endif

%if %{!?without_python: 1}
cd lib/py
CFLAGS="%{optflags}" %{__python} setup.py build
cd ../..
%endif

%if %{!?without_erlang: 1}
cd lib/erl
make
cd ../..
%endif

%install
%makeinstall

%if %{!?without_java: 1}
mkdir -p $RPM_BUILD_ROOT%{_javadir}
cp -p lib/java/*.jar $RPM_BUILD_ROOT%{_javadir}
%endif

%if %{!?without_python: 1}
cd lib/py
%{__python} setup.py install -O1 --skip-build --root $RPM_BUILD_ROOT
cd ../..
%endif

%if %{!?without_erlang: 1}
mkdir -p ${RPM_BUILD_ROOT}%{thrift_erlang_root}
cp -r lib/erl/ebin ${RPM_BUILD_ROOT}%{thrift_erlang_root}
%endif


%clean
rm -rf ${RPM_BUILD_ROOT}


%changelog
* Wed May 28 2008 David Reiss <dreiss@facebook.com> - 20080529svn
- Initial build, based on the work of Kevin Smith and Ben Maurer.
