File tas-yagle.spec of Package tas-yagle
%define _unpackaged_files_terminate_build 1
%define debug_package %{nil}
Name: tas-yagle
Version: 3.4.6
Release: <CI_CNT>.<B_CNT>.b956a7b
Summary: Tas/Yagle - Static Timing Analyser
Group: Applications/Engineering
License: GPL-2.0-only
URL: https://coriolis.lip6.fr/
Source0: %{name}-%{version}.tar.gz
Patch0: flex-2.5.4-stdc.patch
#Packager: Jean-Paul Chaput <Jean-Paul.Chaput@lip6.fr>
#BuildRequires: texlive-scheme-tetex
BuildRequires: libstdc++-devel
BuildRequires: gcc-c++
BuildRequires: tcsh
BuildRequires: tcl-devel >= 8.5.3
BuildRequires: motif-devel
BuildRequires: libXt-devel
BuildRequires: libXp-devel
BuildRequires: libXpm-devel
BuildRequires: ncurses-devel
BuildRequires: byacc
BuildRequires: bison
BuildRequires: lua
#BuildRequires: fop >= 0.95
#BuildRequires: saxon9 >= 9.3.0.4
BuildRequires: libedit-devel >= 2.11
Requires: libedit >= 2.11
# All RHEL clones.
%if 0%{?rhel} || 0%{?fedora}
%global build_variant Linux.el9
%endif
# ALmaLinux 8
%if 0%{?rhel} == 8
BuildRequires: javapackages-filesystem == 5.3.0
BuildRequires: java-1.8.0-openjdk-headless
%endif
# ALmaLinux 9
%if 0%{?rhel} >= 9 || 0%{?fedora} >= 39
BuildRequires: lsb_release
BuildRequires: swig >= 1.3.27
BuildRequires: java-1.8.0-openjdk-headless
%endif
# All openSUSE.
%if 0%{?is_opensuse}
BuildRequires: lsb-release
BuildRequires: swig >= 1.3.27
BuildRequires: java-1_8_0-openjdk-headless
%endif
#opensuse_leap-15.6
%if 0%{?sle_version} == 150600 && 0%{?is_opensuse}
%global build_variant Linux.openSUSE
BuildRequires: termcap
%endif
#opensuse_Tumbleweed
%if 0%{?suse_version} > 1600 && 0%{?is_opensuse}
%global build_variant Linux.openSUSE
BuildRequires: libtermcap2
%endif
%description
STATIC TIMING ANALYSIS
The advent of semiconductor fabrication technologies now allows high
performance in complex integrated circuits.
With the increasing complexity of these circuits, static timing analysis (STA)
has revealed itself as the only feasible method ensuring that expected
performances are actually obtained.
In addition, signal integrity (SI) issues due to crosstalk play a crucial role
in performance and reliability of these systems, and must be taken into account
during the timing analysis.
However, performance achievement not only lies in fabrication technologies,
but also in the way circuits are designed. Very high performance designs are
obtained with semi or full-custom designs techniques.
The HITAS platform provides advanced STA and SI solutions at transistor level.
It has been built-up in order to allow engineers to ensure complete timing and
SI coverage on their digital custom designs, as well as IP-reuse through timing
abstraction.
Furthermore, hierarchy handling through transparent timing views allows
full-chip verification, with virtually no limit of capacity in design size.
%package doc
Summary: Documentation & Tutorials for Tas/Yagle
Requires: %{name} = %{version}-%{release}
BuildArch: noarch
%description doc
STATIC TIMING ANALYSIS
The advent of semiconductor fabrication technologies now allows high
performance in complex integrated circuits.
With the increasing complexity of these circuits, static timing analysis (STA)
has revealed itself as the only feasible method ensuring that expected
performances are actually obtained.
In addition, signal integrity (SI) issues due to crosstalk play a crucial role
in performance and reliability of these systems, and must be taken into account
during the timing analysis.
However, performance achievement not only lies in fabrication technologies,
but also in the way circuits are designed. Very high performance designs are
obtained with semi or full-custom designs techniques.
The HITAS platform provides advanced STA and SI solutions at transistor level.
It has been built-up in order to allow engineers to ensure complete timing and
SI coverage on their digital custom designs, as well as IP-reuse through timing
abstraction.
Furthermore, hierarchy handling through transparent timing views allows
full-chip verification, with virtually no limit of capacity in design size.
%prep
%setup
%build
# Compile the local version of Flex.
tar zxf ./distrib_extras/flex-2.5.4_patch.tar.gz
localInstall=`pwd`
pushd flex-2.5.4
patch -p1 < %{_sourcedir}/flex-2.5.4-stdc.patch
./configure --prefix=${localInstall}
make install
popd
PATH=${localInstall}/bin:$PATH
export PATH
# Setting up the build layout.
# tas/yag uses an old fashioned Makefile.
pushd distrib
buildDir=`pwd`
AVERTEC_OS="Linux"
buildDirs="api_include api_lib bin lib include man/man3 share/doc"
for dir in ${buildDirs}; do
mkdir -p ${dir}
done
ln -s sources obj
ln -s share/etc etc
makefileEnv=""
pushd obj
make WITH_FLEXLM=NOFLEX \
BUILD_VARIANT=%{build_variant} \
LIB_SUFFIX=64 \
LIB_SUFFIX_=_64 \
ALLIANCE_TOP=${buildDir} \
AVERTEC_TOP=${buildDir} \
AVERTEC_OS=$AVERTEC_OS \
AVERTEC_LICENSE=AVERTEC_DUMMY \
AVT_LICENSE_SERVER=house \
AVT_LICENSE_FILE=27009@house \
AVT_COMPILATION_TYPE=distrib \
AVT_DISTRIB_DIR=${buildDir} \
PACKAGING_TOP=${localInstall}
popd
# Build documentation.
PATH=`pwd`/bin:$PATH
pushd docxml2
%ifarch x86_64 aarch64
# wrap_nolicense makes core dump under 64 bits.
# Uses the precompiled version of the doc (from RHEL6 32bits).
tar jxf docxml2-compiled.tar.bz2
%else
make AVERTEC_TOP=${buildDir}/share
%endif
popd
popd
%install
rm -rf %{buildroot}
mkdir -p %{buildroot}%{_sysconfdir}/profile.d
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_datadir}/tasyag/etc
mkdir -p %{buildroot}%{_mandir}/man3
for conf in avt.slib avttools.dtb Xtas Xyagle trmodel.cfg; do
cp distrib/share/etc/$conf %{buildroot}%{_datadir}/tasyag/etc
done
for tool in avt_shell avtman xtas xyagle ttvdiff ttvren; do
cp distrib/bin/$tool %{buildroot}%{_bindir}
done
cp distrib/share/etc/avt_env.sh %{buildroot}%{_sysconfdir}/profile.d
cp -r distrib/share/tcl %{buildroot}%{_datadir}/tasyag
mv distrib/man/man3/fopen.3 distrib/man/man3/avt_fopen.3
mv distrib/man/man3/fclose.3 distrib/man/man3/avt_fclose.3
cp distrib/man/man3/* %{buildroot}%{_mandir}/man3
mkdir -p %{buildroot}/usr/share/doc/tas-yagle
mv distrib/docxml2/compiled/{docavertec.html,docpdf,dochtml} %{buildroot}/usr/share/doc/tas-yagle
mv distrib/share/tutorials %{buildroot}/usr/share/doc/tas-yagle
find %{buildroot}/usr/share/doc/tas-yagle -name '*.gif' | xargs chmod a-x
rm -f tas-yagle-files.docs
find "%{buildroot}/usr/share/doc/tas-yagle" -type d -exec /bin/echo "%%dir {}" \; >> tas-yagle-files.docs
find "%{buildroot}/usr/share/doc/tas-yagle" -type f >> tas-yagle-files.docs
sed -i "s,%{buildroot},," tas-yagle-files.docs
%files
%defattr(-,root,root,-)
%doc LICENSE.rst
%dir %{_datadir}/tasyag
%dir %{_datadir}/tasyag/etc
%dir %{_datadir}/tasyag/tcl
%config %{_sysconfdir}/profile.d/avt_env.sh
%config %{_datadir}/tasyag/etc/*
%{_bindir}/avt_shell
%{_bindir}/avtman
%{_bindir}/ttvdiff
%{_bindir}/ttvren
%{_bindir}/xtas
%{_bindir}/xyagle
%{_datadir}/tasyag/tcl/*
%{_mandir}/man3/ams*
%{_mandir}/man3/avt*
%{_mandir}/man3/beg*
%{_mandir}/man3/callfunc*
%{_mandir}/man3/char_to_string*
%{_mandir}/man3/cns*
%{_mandir}/man3/cpe*
%{_mandir}/man3/ctk*
%{_mandir}/man3/dtb*
%{_mandir}/man3/elp*
%{_mandir}/man3/fcl*
%{_mandir}/man3/genius_date*
%{_mandir}/man3/gns*
%{_mandir}/man3/inf*
%{_mandir}/man3/lib*
%{_mandir}/man3/mbk*
%{_mandir}/man3/onecold*
%{_mandir}/man3/onehot*
%{_mandir}/man3/runStatHiTas*
%{_mandir}/man3/sim_*
%{_mandir}/man3/spi*
%{_mandir}/man3/ssta*
%{_mandir}/man3/stb*
%{_mandir}/man3/stm*
%{_mandir}/man3/trc*
%{_mandir}/man3/ttv*
%files doc -f tas-yagle-files.docs
%changelog
* Sun Jul 27 2025 Jean-Paul Chaput <Jean-Paul.Chaput@lip6.fr> - 3.4.6-1
- Rebuild against latest Tumbleweed, fix issues with gcc 15.
- Have to enforce GNU99 C dialect to still compile.
* Fri Dec 27 2024 Jean-Paul Chaput <Jean-Paul.Chaput@lip6.fr> - 3.4.6-1
- Ported to openSUSE Build System (OBS).
* Tue Apr 17 2012 Jean-Paul Chaput <Jean-Paul.Chaput@lip6.fr> - 3.4.5-1
- Initial packaging.