Commit c2096e59 authored by Thomas Oulevey's avatar Thomas Oulevey Committed by Federico Vaga

initial version of the single spec file

Signed-off-by: 's avatarThomas Oulevey <thomas.oulevey@cern.ch>
Signed-off-by: Federico Vaga's avatarFederico Vaga <federico.vaga@cern.ch>
parent 474fc489
%{?!gittag: %{error: You did not specify a version}}
%{?!arch: %{error: You did not specify an architecture}}
%global project_name mock-turtle
Summary: Mock Turtle development header files and tools
Name: mockturtle-devel
Version: %{gittag}
License: GPL-3.0-or-later
Release: 1%{?dist}
URL: https://ohwr.org/project/%{name}
BuildArch: %{arch}
BuildRequires: make, gcc
# Binary libraries are necessary to develop, just headers is not enough
Requires: mockturtle-lib, mockturtle-lib-static
Source0: https://ohwr.org/project/%{project_name}/-/archive/%{gittag}/%{project_name}-%{gittag}.tar.bz2
%description
This package contains the Mock Turtle development header files and tools
%prep
%autosetup -n %{project_name}-%{gittag}
%build
make -C software/include
make -C software/lib
%install
make -C software/include INCLUDEDESTDIR=%{buildroot}/%{_includedir} install
make -C software/lib DESTLIBDIR=%{buildroot}/%{_libdir} install
# Static library is installed by another package
rm -f %{buildroot}/%{_libdir}/*.a
# Specific so version is installed by another package
rm -f %{buildroot}/%{_libdir}/*.so.*
%files
%license LICENSES/GPL-3.0-or-later.txt
%{_libdir}/libmockturtle.so
%{_includedir}/mockturtle/mockturtle.h
%{_includedir}/mockturtle/libmockturtle.h
%{_includedir}/mockturtle/hw/mockturtle_addresses.h
%{_includedir}/mockturtle/hw/mockturtle_cpu_csr.h
%{_includedir}/mockturtle/hw/mockturtle_cpu_lr.h
%{_includedir}/mockturtle/hw/mockturtle_endpoint.h
%{_includedir}/mockturtle/hw/mockturtle_queue.h
%changelog
* Mon May 06 2019 Federico Vaga <federico.vaga at cern.ch> - 4.0.0
- First public release
%{?!module_name: %{error: You did not specify a module name (%%module_name)}}
%{?!version: %{error: You did not specify a module version (%%version)}}
%{?!kernel_versions: %{error: You did not specify kernel versions (%%kernel_version)}}
%{?!packager: %define packager DKMS <dkms-devel@lists.us.dell.com>}
%{?!license: %define license Unknown}
%{?!_dkmsdir: %define _dkmsdir /var/lib/dkms}
%{?!_srcdir: %define _srcdir %_prefix/src}
%{?!_datarootdir: %define _datarootdir %{_datadir}}
Summary: %{module_name} %{version} dkms package
Name: %{module_name}-driver
Version: %{version}
License: %license
Release: 1dkms
BuildArch: noarch
Group: System/Kernel
Requires: dkms >= 1.95
BuildRequires: dkms
BuildRoot: %{_tmppath}/%{module_name}-%{version}-%{release}-root/
%description
Kernel modules for %{module_name} %{version} in a DKMS wrapper.
%prep
if [ "%mktarball_line" != "none" ]; then
/usr/sbin/dkms mktarball -m %module_name -v %version %mktarball_line --archive `basename %{module_name}-%{version}.dkms.tar.gz`
cp -af %{_dkmsdir}/%{module_name}/%{version}/tarball/`basename %{module_name}-%{version}.dkms.tar.gz` %{module_name}-%{version}.dkms.tar.gz
fi
%install
if [ "$RPM_BUILD_ROOT" != "/" ]; then
rm -rf $RPM_BUILD_ROOT
fi
mkdir -p $RPM_BUILD_ROOT/%{_srcdir}
mkdir -p $RPM_BUILD_ROOT/%{_datarootdir}/%{module_name}
if [ -d %{_sourcedir}/%{module_name}-%{version} ]; then
cp -Lpr %{_sourcedir}/%{module_name}-%{version} $RPM_BUILD_ROOT/%{_srcdir}
fi
if [ -f %{module_name}-%{version}.dkms.tar.gz ]; then
install -m 644 %{module_name}-%{version}.dkms.tar.gz $RPM_BUILD_ROOT/%{_datarootdir}/%{module_name}
fi
if [ -f %{_sourcedir}/common.postinst ]; then
install -m 755 %{_sourcedir}/common.postinst $RPM_BUILD_ROOT/%{_datarootdir}/%{module_name}/postinst
fi
%clean
if [ "$RPM_BUILD_ROOT" != "/" ]; then
rm -rf $RPM_BUILD_ROOT
fi
%post
for POSTINST in %{_prefix}/lib/dkms/common.postinst %{_datarootdir}/%{module_name}/postinst; do
if [ -f $POSTINST ]; then
$POSTINST %{module_name} %{version} %{_datarootdir}/%{module_name}
exit $?
fi
echo "WARNING: $POSTINST does not exist."
done
echo -e "ERROR: DKMS version is too old and %{module_name} was not"
echo -e "built with legacy DKMS support."
echo -e "You must either rebuild %{module_name} with legacy postinst"
echo -e "support or upgrade DKMS to a more current version."
exit 1
%preun
echo -e
echo -e "Uninstall of %{module_name} module (version %{version}) beginning:"
dkms remove -m %{module_name} -v %{version} --all --rpm_safe_upgrade
exit 0
%files
%defattr(-,root,root)
%{_srcdir}
%{_datarootdir}/%{module_name}/
%changelog
* %(date "+%a %b %d %Y") %packager %{version}-%{release}
- Automatic build by DKMS
%{?!gittag: %{error: You did not specify a version}}
%{?!arch: %{error: You did not specify an architecture}}
%global project_name mock-turtle
Summary: Static library to access Mock Turtle
Name: mockturtle-lib-static
Version: %{gittag}
License: GPL-3.0-or-later
Release: 1%{?dist}
URL: https://ohwr.org/project/%{name}
BuildArch: %{arch}
BuildRequires: make, gcc
Source0: https://ohwr.org/project/%{project_name}/-/archive/%{gittag}/%{project_name}-%{gittag}.tar.bz2
%description
This package the Mock Turtle static library to access Mock Turtle instances
on FPGA
%prep
%autosetup -n %{project_name}-%{gittag}
%build
make -C software/lib EXTRACFLAGS="$RPM_OPT_FLAGS"
%install
make -C software/lib DESTLIBDIR=%{buildroot}/%{_libdir}/ install
rm -f %{buildroot}/%{_libdir}/*.so*
%files
%license LICENSES/GPL-3.0-or-later.txt
%{_libdir}/libmockturtle.a
%changelog
* Mon May 06 2019 Federico Vaga <federico.vaga at cern.ch> - 4.0.0
- First public release
%{?!gittag: %{error: You did not specify a version}}
%{?!arch: %{error: You did not specify an architecture}}
%global project_name mock-turtle
Summary: Library to access Mock Turtle
Name: mockturtle-lib
Version: %{gittag}
License: GPL-3.0-or-later
Release: 1%{?dist}
URL: https://ohwr.org/project/%{name}
BuildArch: %{arch}
BuildRequires: make, gcc
Source0: https://ohwr.org/project/%{project_name}/-/archive/%{gittag}/%{project_name}-%{gittag}.tar.bz2
%description
This package the Mock Turtle library to access Mock Turtle instances on FPGA
%prep
%autosetup -n %{project_name}-%{gittag}
%build
make -C software/lib EXTRACFLAGS="$RPM_OPT_FLAGS"
%install
make -C software/lib DESTLIBDIR=%{buildroot}/%{_libdir}/ install
# Static library is installed by another package
rm -f %{buildroot}/%{_libdir}/*.a
# The basic link is used only for development
rm -f %{buildroot}/%{_libdir}/*.so
%post
/sbin/ldconfig
%postun
/sbin/ldconfig
%files
%license LICENSES/GPL-3.0-or-later.txt
%{_libdir}/libmockturtle.so.4.0.0
%changelog
* Mon May 06 2019 Federico Vaga <federico.vaga at cern.ch> - 4.0.0
- First public release
%{?!gittag: %{error: You did not specify a version}}
%{?!arch: %{error: You did not specify an architecture}}
%global project_name mock-turtle
Summary: Tools for %{project_name}
Name: mockturtle-tools
Version: %{gittag}
License: GPL-3.0-or-later
Release: 1%{?dist}
URL: https://ohwr.org/project/%{name}
BuildArch: %{arch}
BuildRequires: make, gcc
Source0: https://ohwr.org/project/%{project_name}/-/archive/%{gittag}/%{project_name}-%{gittag}.tar.bz2
%description
This package contains a set of tools useful to manage a Mock Turtle
instance
%prep
%autosetup -n %{project_name}-%{gittag}
%build
make -C software/include/
make -C software/lib EXTRACFLAGS="$RPM_OPT_FLAGS"
make -C software/tools EXTRACFLAGS="$RPM_OPT_FLAGS"
%install
make -C software/tools BINDESTDIR=%{buildroot}/%{_bindir} install
%files
%license LICENSES/GPL-3.0-or-later.txt
%{_bindir}/lsmockturtle
%{_bindir}/mockturtle-buffer
%{_bindir}/mockturtle-count
%{_bindir}/mockturtle-cpu-restart
%{_bindir}/mockturtle-gdbserver
%{_bindir}/mockturtle-loader
%{_bindir}/mockturtle-messages
%{_bindir}/mockturtle-ping
%{_bindir}/mockturtle-smem
%{_bindir}/mockturtle-variable
%changelog
* Mon May 06 2019 Federico Vaga <federico.vaga at cern.ch> - 4.0.0
- First public release
%{?!gittag: %{error: You did not specify a version}}
%{?!arch: %{error: You did not specify an architecture}}
%global project_name mock-turtle
Summary: Mock Turtle
Name: mockturtle
Version: %{gittag}
License: GPL-3.0-or-later
Release: 1%{?dist}
URL: https://ohwr.org/project/%{name}
BuildArch: %{arch}
BuildRequires: make, gcc
# Binary libraries are necessary to develop, just headers is not enough
# Requires: mockturtle-lib, mockturtle-lib-static
Requires: %{name}-lib
Requires: %{name}-tools
Requires: dkms-%{name}
Source0: https://ohwr.org/project/%{project_name}/-/archive/%{gittag}/%{project_name}-%{gittag}.tar.bz2
%description
This package is a meta package that install the Mock Turtle distribution
%package devel
Summary: Libraries and header files for mock turtle development
Group: Development/Libraries
Requires: %{name}-lib = %{version}-%{release}
#Requires: fixme
#BuildRequires: fixme
%description devel
The mockturtle-devel package contains the header files and mockturtle library
necessary for developing programs using mockturtle.
%package lib
Summary: mock turtle runtime library
#Requires: fixme
#BuildRequires: fixme
%description lib
The mockturtle-libs package contains
%package libstatic
Summary: mock turtle static library
#Requires: fixme
#BuildRequires: fixme
%description libstatic
The mockturtle-libs package contains
%package tools
Summary: mock turtle tools
#Requires:
%description tools
This package contains the Mock Turtle tools
%package -n dkms-%{name}
Summary: mockturtle kernel module(s)
Requires: dkms
%description -n dkms-%{name}
The dkms-mockturtle kernel module.
%prep
%autosetup -n %{project_name}-%{gittag}
%build
make -C software/
%install
make -C software PREFIX=%{buildroot}/ install
%files
%license LICENSES/GPL-3.0-or-later.txt
%files tools
/usr/local/bin/mockturtle-count
/usr/local/bin/lsmockturtle
/usr/local/bin/mockturtle-loader
/usr/local/bin/mockturtle-messages
/usr/local/bin/mockturtle-cpu-restart
/usr/local/bin/mockturtle-smem
/usr/local/bin/mockturtle-ping
/usr/local/bin/mockturtle-variable
/usr/local/bin/mockturtle-buffer
/usr/local/bin/mockturtle-gdbserver
#%files -n dkms-%{name}
%files lib
%license LICENSES/GPL-3.0-or-later.txt
/usr/local/lib/libmockturtle.so.
%files libstatic
%license LICENSES/GPL-3.0-or-later.txt
/usr/local/lib/libmockturtle.a
%files devel
%license LICENSES/GPL-3.0-or-later.txt
/usr/local/lib/libmockturtle.so
/usr/local/include/mockturtle/libmockturtle.h
/usr/local/include/mockturtle/mockturtle.h
/usr/local/include/mockturtle/hw/mockturtle_addresses.h
/usr/local/include/mockturtle/hw/mockturtle_cpu_csr.h
/usr/local/include/mockturtle/hw/mockturtle_cpu_lr.h
/usr/local/include/mockturtle/hw/mockturtle_endpoint.h
/usr/local/include/mockturtle/hw/mockturtle_queue.h
%changelog
* Mon May 06 2019 Federico Vaga <federico.vaga at cern.ch> - 4.0.0
- First public release
......@@ -2,8 +2,8 @@
#
# SPDX-FileCopyrightText: 2019 CERN
PREFIX ?= /usr/local/
INCLUDEDESTDIR ?= $(PREFIX)/include
PREFIX ?= /
INCLUDEDESTDIR ?= $(PREFIX)/usr/local/include
all:
$(MAKE) -C mockturtle/hw
......
......@@ -14,8 +14,8 @@ REPO_PARENT ?= ../..
GIT_VERSION := $(shell git describe --dirty --long --tags)
SO_VERSION_XYZ := $(shell git describe --abbrev=0 | grep -o -E "[0-9]+\.[0-9]+\.[0-9]")
PREFIX ?= /usr/local
DESTLIBDIR ?= $(PREFIX)/lib
PREFIX ?= /
DESTLIBDIR ?= $(PREFIX)/usr/local/lib
TRTL ?= ../..
TRTL_SW = $(TRTL)/software
......
......@@ -11,8 +11,8 @@
REPO_PARENT ?= ../..
-include $(REPO_PARENT)/parent_common.mk
PREFIX ?= /usr/local
BINDESTDIR ?= $(PREFIX)/bin
PREFIX ?= /
BINDESTDIR ?= $(PREFIX)/usr/local/bin
TRTL ?= ../..
TRTL_SW = $(TRTL)/software
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment