File snobol4.spec of Package snobol4

#
# spec file for package snobol4
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


%global _smp_mflags -j1
%global optflags %{optflags} -Wno-error=unused-result -Wno-error=unused-but-set-variable -Wno-error=restrict -Wno-error=unused-variable -Wno-error=maybe-uninitialized -Wno-error=uninitialized
Name:           snobol4
Version:        2.3.1
Release:        0
Summary:        A port of Macro SNOBOL4
License:        BSD-2-Clause
URL:            https://www.regressive.org/snobol4/csnobol4/curr/
Source0:        https://ftp.regressive.org/snobol4/%{name}-%{version}.tar.gz
# Do not hardcode -O3.
Patch1:         snobol4-2.3.1-configure-no-opt.patch
Patch2:         reproducible.patch
BuildRequires:  gcc
BuildRequires:  gcc-c++
BuildRequires:  gdbm-devel
BuildRequires:  libbz2-devel
BuildRequires:  libedit-devel
BuildRequires:  m4
BuildRequires:  make
BuildRequires:  openssl-devel
BuildRequires:  readline-devel
BuildRequires:  sqlite-devel
BuildRequires:  tcl-devel
BuildRequires:  xz-devel
BuildRequires:  zlib-devel

%description
This is a free port of the original SIL (SNOBOL4 Implementation
Language) "macro" version of SNOBOL4 (developed at Bell Labs) with the
`C' language as a target.

SNOBOL4, while known primarily as a string language excels at any task
involving symbolic manipulations.  It provides dynamic typing, garbage
collection, user data types, on the fly compilation.

%package devel
Summary:        Development files for snobol4
Requires:       %{name}%{?_isa} = %{version}-%{release}

%description devel
Development files for snobol4.

%prep
%autosetup -p1

# Remove version control files
rm -r doc/CVS doc/.cvsignore

%build
# This isn't a real configure script, hence, no macro.
./configure --add-cflags="%{optflags}" --add-cppflags="%{optflags}" --prefix=%{_prefix} --mandir=%{_mandir} --snolibdir=%{_libdir}/snobol4 --with-tcl=%{_libdir}/tclConfig.sh
%make_build

%install
%make_install

# all in libdir? What is this, 1985? Oh wait, this is SNOBOL, so maybe 1969.
mkdir -p %{buildroot}%{_includedir}/snobol4
mv %{buildroot}%{_libdir}/%{name}/%{version}/include/* %{buildroot}%{_includedir}/snobol4
pushd %{buildroot}%{_libdir}/%{name}/%{version}/
rm -rf include
ln -s ../../../include/snobol4 include
popd

# We rather install doc/ ourselves
rm -rf %{buildroot}%{_datadir}/doc/%{name}-%{version}
rm -rf %{buildroot}%{_libdir}/%{name}/%{version}/CHANGES %{buildroot}%{_libdir}/%{name}/%{version}/README

%files
%doc CHANGES README doc/
%license COPYRIGHT
%{_bindir}/sdb*
%{_bindir}/snobol4
%{_bindir}/snobol4-%{version}
%{_bindir}/snopea*
%{_libdir}/snobol4/
%exclude %{_libdir}/snobol4/%{version}/include
%{_mandir}/man1/sdb.1%{?ext_man}
%{_mandir}/man1/snobol4*.1%{?ext_man}
%{_mandir}/man1/snopea.1%{?ext_man}
%{_mandir}/man3/snolib.3%{?ext_man}
%{_mandir}/man3/snobol4*.3%{?ext_man}
%{_mandir}/man7/snopea.7%{?ext_man}

%files devel
%{_includedir}/%{name}
%{_libdir}/snobol4/%{version}/include

%changelog
openSUSE Build Service is sponsored by