#The following files are under the license : MIT feh variant # * systemc.spec # * systemc-2.2.0-utils.patch # * systemc-2.2.0-fx_utils.patch # * systemc-2.2.0-fxnum.patch # * systemc-2.2.0-proxy.patch # * systemc-2.2.0-fx_rep.patch %define SYSTEMC_HOME %{_libdir}/%{name}/%{version} Name: systemc Version: 2.2.0 Release: 8%{?dist} Summary: Design and verification language for Hardware Group: Applications/Engineering License: SystemC Open Source License 2.3 URL: http://www.systemc.org # needs free membership to download # http://www.systemc.org/members/download_files/check_file?agreement=systemc_2-2-0_07-03-14 Source0: %{name}-%{version}.tgz Source1: %{name}-SRPM.license # gcc 4 related patches Patch0: %{name}-2.2.0-utils.patch Patch1: %{name}-2.2.0-fx_utils.patch Patch2: %{name}-2.2.0-fxnum.patch Patch3: %{name}-2.2.0-proxy.patch Patch4: %{name}-2.2.0-fx_rep.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: gcc-c++ autoconf automake16 prelink %description SystemC™ is a language built in standard C++ by extending the language with the use of class libraries. SystemC addresses the need for a system design and verification language that spans hardware and software. %prep %setup -q %patch0 -p0 %patch1 -p0 %patch2 -p0 %patch3 -p0 %patch4 -p0 %{__cp} -p %{SOURCE1} %{name}-SRPM.license # setting Install base properly affected=`find src/ -type f -name "Makefile*"` for idx in $affected Makefile*; do %{__sed} -i -e 's|\$(prefix)|\$(DESTDIR)%{SYSTEMC_HOME}|g' $idx done # rpmlint W: zero-length %{__rm} -f src/sysc/qt/md/null.README # removing bunch of binary files find . -type f -name ".DS_Store" -exec rm -f {} ';' find . -type f -name "*.vcproj" -exec rm -f {} ';' find . -type f -name "*.ncb" -exec rm -f {} ';' #Fedora specific compiler flag -O2 gets overridden by -O3. %{__sed} -i -e "s|OPT_CXXFLAGS=\"-O3\"|OPT_CXXFLAGS=|" \ -e "s|EXTRA_CXXFLAGS=|EXTRA_CXXFLAGS=\"%{optflags} -fPIC \"|g" configure* # rpmlint : line endings for i in examples/sysc/Readme_msvc71.txt \ examples/sysc/2.1/reset_signal_is/reset_signal_is.cpp ; do echo "Fixing wrong-file-end-of-line-encoding : $i" %{__sed} 's/\r//' $i > $i.rpmlint touch -r $i $i.rpmlint; %{__mv} $i.rpmlint $i done # # Examples # # Do not install the examples with its precompiled binaries %{__sed} -i "s|examples||" Makefile* find examples/ -type f -name "*" -exec chmod 0644 {} ';' # fixing rpmlints and keeping timestamps %{__sed} "s|/usr/local/bin/perl|%{_bindir}/perl|" \ examples/sysc/risc_cpu/assembler.pl > \ examples/sysc/risc_cpu/assembler.pl.rpmlint touch -r examples/sysc/risc_cpu/assembler.pl \ examples/sysc/risc_cpu/assembler.pl.rpmlint %{__mv} examples/sysc/risc_cpu/assembler.pl.rpmlint \ examples/sysc/risc_cpu/assembler.pl %build # prefix here is considered as the install base # it should not be confused with exec_prefix. %configure --prefix=%{SYSTEMC_HOME} gmake %{?_smp_mflags} %install %{__rm} -rf %{buildroot} %{__mkdir} -p %{buildroot}%{SYSTEMC_HOME}/lib-linux # Removing useless Makefile before loading %%doc find examples/ -type f -name "Makefile*" -exec rm -f {} ';' gmake INSTALL="install -p" DESTDIR=%{buildroot} install # duplicate Cleanups pushd %{buildroot}%{SYSTEMC_HOME} %{__rm} -f AUTHORS COPYING ChangeLog INSTALL %{__rm} -rf LICENSE NEWS README RELEASENOTES docs/ popd # strip debug info, or strip everything # turn static library into dynamic ar -x src/libsystemc.a gcc %{optflags} -shared *.o -o libsystemc.so # rpmlint W: executable-stack execstack -c libsystemc.so %{__install} -pm 0755 libsystemc.so %{buildroot}%{SYSTEMC_HOME}/lib-linux/libsystemc.so %{__rm} -f %{buildroot}%{SYSTEMC_HOME}/lib-linux/libsystemc.a # fix for error while loading shared libraries %{__mkdir} -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/ cat > %{name}-%{version}.conf << EOF %{SYSTEMC_HOME}/lib-linux/ EOF %{__install} -pm 0644 %{name}-%{version}.conf %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{version}.conf %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %clean %{__rm} -rf %{buildroot} # Rpmlint W: devel-file-in-non-devel-package ignored # SystemC is a tool to design hardware at low-level. # It is not meant to be required by any other packages # except additional related plugins. %files %defattr(-,root,root,-) %doc RELEASENOTES ChangeLog NEWS docs/ examples/ %doc AUTHORS README %{name}-SRPM.license %{SYSTEMC_HOME} %config(noreplace) %{_sysconfdir}/ld.so.conf.d/%{name}-%{version}.conf %changelog * Wed Dec 17 2008 Chitlesh Goorah 2.2.0-8 - fixed rpmfusion review comment id=151#21 * Mon Dec 15 2008 Chitlesh Goorah 2.2.0-7 - fixed rpmfusion review comment id=151#16 * Fri Dec 05 2008 Chitlesh Goorah 2.2.0-6 - static library replaced by dynamic * Sat Nov 30 2008 Chitlesh Goorah 2.2.0-5 - opting gcc4 instead of gcc3.4 * Sat Nov 30 2008 Chitlesh Goorah 2.2.0-4 - fixed rpmfusion review comment id=151#6 - examples are now properly packaged - reverting directory structure to _libdir * Sat Nov 29 2008 Chitlesh Goorah 2.2.0-3 - fixed rpmfusion review comment id=151#4 - opting a similar directory structure and the avr packages do on /usr/avr * Thu Nov 27 2008 Chitlesh Goorah 2.2.0-2 - strip -O3 from the build and fixed rpmfusion comment id=151#2 * Thu Jun 26 2008 Chitlesh Goorah 2.2.0-1 - Initial Package