1 %define __strip %{_mingw32_strip}
2 %define __objdump %{_mingw32_objdump}
3 %define _use_internal_dependency_generator 0
4 %define __find_requires %{_mingw32_findrequires}
5 %define __find_provides %{_mingw32_findprovides}
10 Summary: MinGW Windows port of the Netscape Portable Runtime (NSPR)
12 License: MPLv1.1 or GPLv2+ or LGPLv2+
13 Group: Development/Libraries
14 URL: http://www.mozilla.org/projects/nspr/
15 Source0: ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v%{version}/src/nspr-%{version}.tar.gz
16 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
21 Source2: nspr-config-vars.in
23 Patch1: nspr-config-pc.patch
25 # MinGW-specific build patch.
26 Patch1000: mingw32-nspr-4.7.2-build.patch
28 BuildRequires: mingw32-filesystem >= 33
29 BuildRequires: mingw32-gcc
30 BuildRequires: mingw32-binutils
36 NSPR provides platform independence for non-GUI operating system
37 facilities. These facilities include threads, thread synchronization,
38 normal file and network I/O, interval timing and calendar time, basic
39 memory management (malloc and free) and shared library linking.
43 %setup -q -n nspr-%{version}
45 cp ./mozilla/nsprpub/config/nspr-config.in \
46 ./mozilla/nsprpub/config/nspr-config-pc.in
49 cp %{SOURCE2} ./mozilla/nsprpub/config/
59 # Configure for Windows cross-compiling.
60 %{_mingw32_configure} \
61 --prefix=%{_mingw32_prefix} \
62 --libdir=%{_mingw32_libdir} \
63 --includedir=%{_mingw32_includedir}/nspr4 \
64 --enable-optimize="%{_mingw32_cflags}" \
66 --enable-win32-target=WINNT \
69 # NSPR comes with its own "special" install program called nsinstall.
70 # This must be built as a native program.
71 make -C config CC=gcc CFLAGS="-DXP_UNIX=1"
73 # Now build the rest using the "special" nsinstall.
75 NSINSTALL=$(pwd)/config/nsinstall \
76 RANLIB=i686-pc-mingw32-ranlib \
77 RC=i686-pc-mingw32-windres \
84 rm -rf $RPM_BUILD_ROOT
88 # 'make install' doesn't appear to work, so do it by hand.
89 mkdir -p $RPM_BUILD_ROOT%{_mingw32_bindir}
90 mkdir -p $RPM_BUILD_ROOT%{_mingw32_libdir}
91 mkdir -p $RPM_BUILD_ROOT%{_mingw32_includedir}
92 install dist/bin/*.dll $RPM_BUILD_ROOT%{_mingw32_bindir}
93 install dist/lib/*.dll.a $RPM_BUILD_ROOT%{_mingw32_libdir}
94 cp -r dist/include/nspr $RPM_BUILD_ROOT%{_mingw32_includedir}/
96 # Write an nspr pkgconfig file.
98 NSPR_LIBS=`./config/nspr-config --libs`
99 NSPR_CFLAGS=`./config/nspr-config --cflags`
100 NSPR_VERSION=`./config/nspr-config --version`
101 %{__mkdir_p} $RPM_BUILD_ROOT/%{_mingw32_libdir}/pkgconfig
103 cat ./config/nspr-config-vars > \
104 $RPM_BUILD_ROOT/%{_mingw32_libdir}/pkgconfig/nspr.pc
106 cat %{SOURCE1} | sed -e "s,%%libdir%%,%{_mingw32_libdir},g" \
107 -e "s,%%prefix%%,%{_mingw32_prefix},g" \
108 -e "s,%%exec_prefix%%,%{_mingw32_prefix},g" \
109 -e "s,%%includedir%%,%{_mingw32_includedir}/nspr4,g" \
110 -e "s,%%NSPR_VERSION%%,$NSPR_VERSION,g" \
111 -e "s,%%FULL_NSPR_LIBS%%,$NSPR_LIBS,g" \
112 -e "s,%%FULL_NSPR_CFLAGS%%,$NSPR_CFLAGS,g" >> \
113 $RPM_BUILD_ROOT/%{_mingw32_libdir}/pkgconfig/nspr.pc
119 rm -rf $RPM_BUILD_ROOT
123 %defattr(-,root,root)
124 %{_mingw32_bindir}/libnspr4.dll
125 %{_mingw32_bindir}/libplc4.dll
126 %{_mingw32_bindir}/libplds4.dll
127 %{_mingw32_libdir}/libnspr4.dll.a
128 %{_mingw32_libdir}/libplc4.dll.a
129 %{_mingw32_libdir}/pkgconfig/nspr.pc
130 %{_mingw32_includedir}/nspr
134 * Tue Jan 13 2009 Richard W.M. Jones <rjones@redhat.com> - 4.7.2-3
135 - Requires pkgconfig.
137 * Mon Nov 10 2008 Richard W.M. Jones <rjones@redhat.com> - 4.7.2-2
138 - Initial RPM release.