Blob Blame History Raw
%define _with_java 1

Name:		bigloo
Version: 	2.8c
Release:	1%{?dist}
Summary: 	Bigloo is compiler for the Scheme programming language

Group:		Development/Languages
License:	GPL
URL:		http://www-sop.inria.fr/mimosa/fp/Bigloo
Source: 	ftp://ftp-sop.inria.fr/mimosa/fp/Bigloo/bigloo2.8c-beta23Aug06.tar.gz
Patch0:		bigloo-symbol.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires:	emacs
BuildRequires:	emacs-el
BuildRequires:	xemacs
BuildRequires:	xemacs-el
BuildRequires:	indent
BuildRequires:	/sbin/install-info
BuildRequires:	zip
BuildRequires:	java-1.4.2-gcj-compat-devel
Requires:	bigloo-libs = %{version}-%{release}
Requires(post):	   /sbin/install-info
Requires(postun):  /sbin/install-info

%description
Bigloo is a Scheme implementation devoted to one goal: enabling Scheme
based programming style where C(++) is usually required. Bigloo
attempts to make Scheme practical by offering features usually
presented by traditional programming languages but ot offered by
Scheme and functional programming. Bigloo compiles Scheme modules. It
delivers small and fast stand alone binary executables. Bigloo enables
full connections between Scheme and C programs.


%package libs
Summary:	Bigloo runtime libraries
Group:		System Environment/Libraries

%description libs
Runtime libraries for Bigloo compiled programs.


%package doc
Summary:	Bigloo documentation
Group:		Development/Languages

%description doc
Documentation for the Bigloo compiler and integrated development
environment.


%package emacs
Summary:	Bigloo Emacs environment
Group:		Development/Languages
Requires:	emacs-common

%description emacs
Emacs development environment for Bigloo


%package xemacs
Summary:	Bigloo XEmacs environment
Group:		Development/Languages
Requires:	xemacs-common

%description xemacs
XEmacs development environment for Bigloo


%prep
%setup -q -n %{name}%{version}
#%patch0 -p1
perl -pi -e 's|bmask=755|bmask=644|' configure
perl -pi -e 's|/usr/local/bin/indent|indent|' configure


%build
%define emacslisppath %{_datadir}/emacs/site-lisp
%define xemacslisppath %{_datadir}/xemacs/site-packages/lisp
%define inplace `pwd`/inplace

./configure \
	--prefix=%{_prefix} \
	--bindir=%{_bindir} \
	--libdir=%{_libdir} \
	--mandir=%{_mandir}/man1 \
	--infodir=%{_infodir} \
	--docdir=%{_docdir} \
	--lispdir=%{emacslisppath}/bigloo \
	--bee=full \
	--native-default-backend \
	--emacs=emacs \
	--dotnet=no \
	%{?_with_java: --jvm=yes} \
	%{!?_with_java: --jvm=no} \
	--sharedbde=yes \
	--sharedcompiler=yes \
	--coflags="$RPM_OPT_FLAGS"

perl -pi -e 's|EMACSBRAND=.*|EMACSBRAND=emacs21|' Makefile.config

# _smp_mflags breaks the build
env LD_LIBRARY_PATH=`pwd`/lib/%{version} \
    BIGLOOLIB=%{inplace}%{_libdir}/bigloo/%{version} \
    make
env LD_LIBRARY_PATH=`pwd`/lib/%{version} \
    BIGLOOLIB=%{inplace}%{_libdir}/bigloo/%{version} \
    make DESTDIR=%{inplace} install
env LD_LIBRARY_PATH=`pwd`/lib/%{version} \
    PATH=`pwd`/bin:$PATH \
    BIGLOOLIB=%{inplace}%{_libdir}/bigloo/%{version} \
    make compile-bee


%install
rm -rf $RPM_BUILD_ROOT
env LD_LIBRARY_PATH=`pwd`/lib/%{version} \
    make DESTDIR=$RPM_BUILD_ROOT install
env LD_LIBRARY_PATH=`pwd`/lib/%{version} \
    make DESTDIR=$RPM_BUILD_ROOT EMACSDIR=$RPM_BUILD_ROOT%{emacslisppath}/bigloo install-bee
make -C manuals DESTDIR=$RPM_BUILD_ROOT install-bee
chmod 755 $RPM_BUILD_ROOT%{_bindir}/*
(
    cd $RPM_BUILD_ROOT%{_libdir}
    chmod 755 bigloo/%{version}/*.so
    rm -f *.so
    mv bigloo/%{version}/*.so .
    # seems to need to be hard linked so that it is provided by the package
#    for ext in bdl calendar fth mail multimedia pth sqlite ssl web
#    do
#        ln -f libbigloo${ext}_s-%{version}.so libbigloo${ext}_u-%{version}.so
#    done
    (cd bigloo/%{version}; ln -sf ../../*.so .)
)
rm -fr $RPM_BUILD_ROOT%{_infodir}/dir
rm -fr $RPM_BUILD_ROOT%{_datadir}/doc

perl -pi -e 's|^BOOTBINDIR=.*|BOOTBINDIR=%{_bindir}|' Makefile.config

mkdir -p $RPM_BUILD_ROOT%{emacslisppath}/site-start.d
cat > $RPM_BUILD_ROOT%{emacslisppath}/site-start.d/bigloo.el <<EOF
(require 'bmacs)
EOF

(
  cd bmacs
  make clean
  make EMACS=xemacs EMACSBRAND=xemacs EMACSDIR=$RPM_BUILD_ROOT%{xemacslisppath}/bigloo install
)

mkdir -p $RPM_BUILD_ROOT%{xemacslisppath}/site-start.d
cat > $RPM_BUILD_ROOT%{xemacslisppath}/site-start.d/bigloo.el <<EOF
(require 'bmacs)
EOF


%clean
rm -rf $RPM_BUILD_ROOT


%post
/sbin/install-info %{_infodir}/bigloo.info %{_infodir}/dir 2>/dev/null || :


%postun
if [ $1 = 0 ]; then
  /sbin/install-info --delete %{_infodir}/bigloo.info %{_infodir}/dir 2>/dev/null || :
fi


%post libs -p /sbin/ldconfig


%postun libs -p /sbin/ldconfig


%files
%defattr(-,root,root,-)
%{_bindir}/*
%{_libdir}/bigloo
%{_infodir}/*
%{_mandir}/man*/*
%doc Makefile.config examples LICENSE COPYING
%doc README*
%doc tutorial


%files emacs
%defattr(-,root,root,-)
%{emacslisppath}/bigloo
%{emacslisppath}/site-start.d/bigloo.el


%files xemacs
%defattr(-,root,root,-)
%{xemacslisppath}/bigloo
%{xemacslisppath}/site-start.d/bigloo.el


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


%files doc
%defattr(-,root,root,-)
%doc manuals/*.html


%changelog
* Thu Aug 31 2006 Gerard Milmeister <gemi@bluewin.ch> - 2.8c-1
- new version 2.8c-beta23Aug06

* Thu Aug  3 2006 Gerard Milmeister <gemi@bluewin.ch> - 2.8c-1

* Mon Aug 28 2006 Gerard Milmeister <gemi@bluewin.ch> - 2.8b-3
- Rebuild for FE6

* Thu Jun 22 2006 Gerard Milmeister <gemi@bluewin.ch> - 2.8b-1
- new version 2.8b

* Thu Jun  1 2006 Gerard Milmeister <gemi@bluewin.ch> - 2.8a-2
- final 2.8a release

* Tue Mar 21 2006 Gerard Milmeister <gemi@bluewin.ch> - 2.8a-1.20060322
- new version 2.8a-20060322

* Mon Mar 13 2006 Gerard Milmeister <gemi@bluewin.ch> - 2.8a-1.20060313
- new version 2.8a-20060313

* Mon Nov 28 2005 Gerard Milmeister <gemi@bluewin.ch> - 2.7a-2
- disable bmem, causes link problems

* Sun Nov 27 2005 Gerard Milmeister <gemi@bluewin.ch> - 2.7a-1
- New Version 2.7a

* Tue Sep 27 2005 Gerard Milmeister <gemi@bluewin.ch> - 2.6f-3
- Removed --arch

* Fri Feb 18 2005 Gerard Milmeister <gemi@bluewin.ch> - 0:2.6f-1
- New Version 2.6f

* Sun Feb 13 2005 Gerard Milmeister <gemi@bluewin.ch> - 0:2.6e-1
- New Version 2.6e

* Tue Mar 16 2004 Gerard Milmeister <gemi@bluewin.ch> - 0:2.6-0.fdr.1.c
- New Version 2.6c
- Separated Emacs and XEmacs packages

* Tue Dec 16 2003 Gerard Milmeister <gemi@bluewin.ch> - 0:2.6-0.fdr.1.b
- New Version 2.6b

* Thu Nov 27 2003 Gerard Milmeister <gemi@bluewin.ch> - 0:2.6-0.fdr.1.a
- First Fedora release