-(cd %{_includedir} ;
-LD_LIBRARY_PATH="%{_builddir}/%{name}%{perlver}_%{perlrel}" \
-PERL5LIB=$RPM_BUILD_ROOT%{_libdir}/perl5 $RPM_BUILD_ROOT%{_bindir}/perl \
-$RPM_BUILD_ROOT%{_libdir}/perl5/%{perlver}%{perlrel}/%{_target_platform}%{perlthread} \
-$RPM_BUILD_ROOT%{_bindir}/h2ph \
--d $RPM_BUILD_ROOT%{_libdir}/perl5/%{_target_platform}/%{perlver}%{perlrel}/ \
-*.h sys/*.h linux/*.h asm/*.h net/*.h netinet/*.h arpa/*.h )
+## Generate *.ph files with a trick (based on RH).
+
+%{__make} all -f - <<EOF
+PKGS = glibc-devel gdbm-devel gpm-devel libgr-devel libjpeg-devel \
+ libpng-devel libtiff-devel ncurses-devel popt-devel \
+ zlib-devel binutils libelf e2fsprogs-devel pam-devel pwdb-devel \
+ rpm-devel
+STDH = \$(filter /usr/include/%%, \$(shell rpm -q --queryformat '[%%{FILENAMES}\n]' \$(PKGS)))
+STDH += \$(wildcard /usr/include/linux/*.h) \$(wildcard /usr/include/asm/*.h) \$(wildcard /usr/include/scsi/*.h)
+GCCDIR = \$(shell gcc --print-file-name include)
+GCCH = \$(filter \$(GCCDIR)/%%, \$(shell rpm -q --queryformat '[%%{FILENAMES}\n]' gcc))
+
+LIBPATH = %{_builddir}/%{name}-%{version}
+PERLLIB = $RPM_BUILD_ROOT%{_libdir}/perl5/%{version}
+PERLBIN = $RPM_BUILD_ROOT%{_bindir}/perl
+PERL = LD_LIBRARY_PATH=\$(LIBPATH) PERL5LIB=\$(PERLLIB) \$(PERLBIN)
+PHDIR = \$(PERLLIB)/%{_target_platform}%{perlthread}
+PHBIN = $RPM_BUILD_ROOT%{_bindir}/h2ph
+H2PH = \$(PERL) \$(PHBIN) -d \$(PHDIR)/