I'm trying to port the mingw32-dlfcn-w32 package over to the new cross
compilers. Unfortunately I am not really very good with spec files. I've
changed the spec file that came with the original source RPM to get the
following, but trying to rebuild gives an error locating windows.h (which is
in the expected locations for the cross filesystems). Can anyone give me
some help on this?
-Jay
The spec file...
%global __strip %{_cross_strip}
%global __objdump %{_cross_objdump}
%global _use_internal_dependency_generator 0
%global __find_requires %{_cross_findrequires}
%global __find_provides %{_cross_findprovides}
%define __debug_install_post %{_cross_debug_install_post}
%global realname dlfcn-win32
%global _cross_pkg_name dlfcn-win32
%global _cross_build_win32 1
%global _cross_build_win64 1
%global alphatag r11
Name: cross-dlfcn
Version: 0
Release: 0.8.%{alphatag}%{?dist}
Summary: Implements a wrapper for dlfcn (dlopen dlclose dlsym dlerror)
License: LGPLv2+
Group: Development/Libraries
URL:
http://code.google.com/p/dlfcn-win32/
Source0:
http://dlfcn-win32.googlecode.com/files/%{realname}-%{alphatag}.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u}
-n)
BuildArch: noarch
BuildRequires: cross-filesystem >= 65
BuildRequires: cross-gcc
BuildRequires: cross-binutils
#BuildRequires: dos2unix
Patch1: dlfcn_configure.patch
Patch2: dlfcn-fix-cplusplus-linkage.patch
%{?_cross_default_requires}
%{?_cross_debug_package}
%description
This library implements a wrapper for dlfcn, as specified in POSIX and SUS,
around the dynamic link library functions found in the Windows API.
%package -n mingw32-%{_cross_pkg_name}
Summary: Dynamic version of the MinGW Windows dlfcn library
Requires: %{name} = %{version}-%{release}
Group: Development/Libraries
%description -n mingw32-%{_cross_pkg_name}
%{description}
%package -n mingw32-%{_cross_pkg_name}-static
Summary: Static version of the MinGW Windows dlfcn library
Requires: %{name} = %{version}-%{release}
Group: Development/Libraries
%description -n mingw32-%{_cross_pkg_name}-static
%{description}
%package -n mingw64-%{_cross_pkg_name}
Summary: Dynamic version of the MinGW Windows dlfcn library
Requires: %{name} = %{version}-%{release}
Group: Development/Libraries
%description -n mingw64-%{_cross_pkg_name}
%{description}
%package -n mingw64-%{_cross_pkg_name}-static
Summary: Static version of the MinGW Windows dlfcn library
Requires: %{name} = %{version}-%{release}
Group: Development/Libraries
%description -n mingw64-%{_cross_pkg_name}-static
%{description}
%prep
%setup -q -n %{realname}-%{alphatag}
%{__sed} -i 's/\r//' configure
%{__sed} -i 's/\r//' README
%{__sed} -i 's/\r//' COPYING
%patch1 -p1
%patch2 -p0
%build
%{_cross_configure -s static "--disable-shared" "--enable-static"}
%{_cross_configure -s static "--disable-static"}
%{_cross_make -s static %{?_smp_mflags}}
%{_cross_make -s shared %{?_smp_mflags}}
%install
rm -rf $RPM_BUILD_ROOT
%{_cross_make_install -s static "DESTDIR=$RPM_BUILD_ROOT/build_static"}
%{_cross_make_install -s shared "DESTDIR=$RPM_BUILD_ROOT"}
# Move the static libraries to the right location
mv $RPM_BUILD_ROOT/build_static%{_mingw32_libdir}/*.a
$RPM_BUILD_ROOT%{_mingw32_libdir}
mv $RPM_BUILD_ROOT/build_static%{_mingw64_libdir}/*.a
$RPM_BUILD_ROOT%{_mingw64_libdir}
# Manually merge the libtool files
#sed -i
s/"old_library=''"/"old_library='libgio-2.0.a'"/
$RPM_BUILD_ROOT%{_mingw32_libdir}/libgio-2.0.la
#sed -i
s/"old_library=''"/"old_library='libglib-2.0.a'"/
$RPM_BUILD_ROOT%{_mingw32_libdir}/libglib-2.0.la
#sed -i
s/"old_library=''"/"old_library='libgobject-2.0.a'"/
$RPM_BUILD_ROOT%{_mingw32_libdir}/libgobject-2.0.la
#sed -i
s/"old_library=''"/"old_library='libgmodule-2.0.a'"/
$RPM_BUILD_ROOT%{_mingw32_libdir}/libgmodule-2.0.la
#sed -i
s/"old_library=''"/"old_library='libgthread-2.0.a'"/
$RPM_BUILD_ROOT%{_mingw32_libdir}/libgthread-2.0.la
#sed -i
s/"old_library=''"/"old_library='libgio-2.0.a'"/
$RPM_BUILD_ROOT%{_mingw64_libdir}/libgio-2.0.la
#sed -i
s/"old_library=''"/"old_library='libglib-2.0.a'"/
$RPM_BUILD_ROOT%{_mingw64_libdir}/libglib-2.0.la
#sed -i
s/"old_library=''"/"old_library='libgobject-2.0.a'"/
$RPM_BUILD_ROOT%{_mingw64_libdir}/libgobject-2.0.la
#sed -i
s/"old_library=''"/"old_library='libgmodule-2.0.a'"/
$RPM_BUILD_ROOT%{_mingw64_libdir}/libgmodule-2.0.la
#sed -i
s/"old_library=''"/"old_library='libgthread-2.0.a'"/
$RPM_BUILD_ROOT%{_mingw64_libdir}/libgthread-2.0.la
# Drop the .def files as they aren't interesting for other packages
rm -f $RPM_BUILD_ROOT%{_mingw32_libdir}/*.def
rm -f $RPM_BUILD_ROOT%{_mingw64_libdir}/*.def
# Drop the folder which was temporary used for installing the static bits
rm -rf $RPM_BUILD_ROOT/build_static
%clean
rm -rf $RPM_BUILD_ROOT
%files -n mingw32-%{_cross_pkg_name}
%defattr(-,root,root,-)
%doc README COPYING
%{_mingw32_bindir}/libdl.dll
%{_mingw32_libdir}/libdl.dll.a
%{_mingw32_includedir}/dlfcn.h
%files -n mingw32-%{_cross_pkg_name}-static
%defattr(-,root,root,-)
%{_mingw32_libdir}/libdl.a
%files -n mingw64-%{_cross_pkg_name}
%defattr(-,root,root,-)
%doc README COPYING
%{_mingw64_bindir}/libdl.dll
%{_mingw64_libdir}/libdl.dll.a
%{_mingw64_includedir}/dlfcn.h
%files -n mingw64-%{_cross_pkg_name}-static
%defattr(-,root,root,-)
%{_mingw64_libdir}/libdl.a
%changelog
* Tue Feb 08 2011 Fedora Release Engineering <
rel-eng(a)lists.fedoraproject.org> - 0-0.8.r11
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Fri Oct 30 2009 Erik van Pienbroek <epienbro(a)fedoraproject.org> -
0-0.7.r11
- Use %%global instead of %%define
- Automatically generate debuginfo subpackage
- Fixed %%defattr line
- Added -static subpackage
- Fixed linker error with C++ applications
* Sat Jul 25 2009 Fedora Release Engineering <
rel-eng(a)lists.fedoraproject.org> - 0-0.6.r11
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Wed Feb 25 2009 Fedora Release Engineering <
rel-eng(a)lists.fedoraproject.org> - 0-0.5.r11
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Fri Feb 20 2009 Richard W.M. Jones <rjones(a)redhat.com> - 0-0.4.r11
- Rebuild for mingw32-gcc 4.4
* Wed Jan 14 2009 Richard W.M. Jones <rjones(a)redhat.com> - 0-0.3.r11
- Use Version 0
(
https://www.redhat.com/archives/fedora-packaging/2009-January/msg00064.html)
- Revert use of dos2unix for now
(
https://www.redhat.com/archives/fedora-packaging/2009-January/msg00066.html)
- Use _smp_mflags.
* Tue Jan 13 2009 Richard W.M. Jones <rjones(a)redhat.com> - 0.1-0.2.r11
- Import into fedora-mingw temporary repository because there are packages
which will depend on this.
- Fix the version/release according to packaging guidelines.
- Tidy up the spec file.
- Use dos2unix and keep the timestamps.
* Fri Jan 02 2009 Itamar Reis Peixoto <itamar(a)ispbrasil.com.br> - r11-1
- Initial RPM release.