hi, i review this %_mingw32_make macro again. i can't find any better solution than implement it separately from %_mingw32_makeinstall. probably most of the case it's not used inside spec file, but even if i used it will work and use the runtime used directories (the only exception %_mingw32_make install, but there is the %_mingw32_makeinstall macro for this). it's working on fedora and rhel/centos too and mingw32-make outside of spec also working. i hope it'd be ok (and if you like i'll do the epel build). yours.
On Wed, Dec 17, 2008 at 03:30:11PM +0100, Farkas Levente wrote:
hi, i review this %_mingw32_make macro again. i can't find any better solution than implement it separately from %_mingw32_makeinstall. probably most of the case it's not used inside spec file, but even if i used it will work and use the runtime used directories (the only exception %_mingw32_make install, but there is the %_mingw32_makeinstall macro for this). it's working on fedora and rhel/centos too and mingw32-make outside of spec also working. i hope it'd be ok (and if you like i'll do the epel build). yours.
Yes, this is looking much better. The only thing I would say is that it's probably best to list the actual files explicitly here:
-%{_bindir}/mingw32-configure +%{_bindir}/mingw32-*
ie.
%{_bindir}/mingw32-configure %{_bindir}/mingw32-make
Rich.
Richard W.M. Jones wrote:
On Wed, Dec 17, 2008 at 03:30:11PM +0100, Farkas Levente wrote:
hi, i review this %_mingw32_make macro again. i can't find any better solution than implement it separately from %_mingw32_makeinstall. probably most of the case it's not used inside spec file, but even if i used it will work and use the runtime used directories (the only exception %_mingw32_make install, but there is the %_mingw32_makeinstall macro for this). it's working on fedora and rhel/centos too and mingw32-make outside of spec also working. i hope it'd be ok (and if you like i'll do the epel build). yours.
Yes, this is looking much better. The only thing I would say is that it's probably best to list the actual files explicitly here:
-%{_bindir}/mingw32-configure +%{_bindir}/mingw32-*
ie.
%{_bindir}/mingw32-configure %{_bindir}/mingw32-make
as you like:-)
On Thu, Dec 18, 2008 at 11:49:16AM +0100, Farkas Levente wrote:
Richard W.M. Jones wrote:
On Wed, Dec 17, 2008 at 03:30:11PM +0100, Farkas Levente wrote:
hi, i review this %_mingw32_make macro again. i can't find any better solution than implement it separately from %_mingw32_makeinstall. probably most of the case it's not used inside spec file, but even if i used it will work and use the runtime used directories (the only exception %_mingw32_make install, but there is the %_mingw32_makeinstall macro for this). it's working on fedora and rhel/centos too and mingw32-make outside of spec also working. i hope it'd be ok (and if you like i'll do the epel build). yours.
Yes, this is looking much better. The only thing I would say is that it's probably best to list the actual files explicitly here:
-%{_bindir}/mingw32-configure +%{_bindir}/mingw32-*
ie.
%{_bindir}/mingw32-configure %{_bindir}/mingw32-make
as you like:-)
OK, I've built this in Rawhide. Note that the version is 41-1.
Rich.
On Wed, Dec 17, 2008 at 03:30:11PM +0100, Farkas Levente wrote:
hi, i review this %_mingw32_make macro again. i can't find any better solution than implement it separately from %_mingw32_makeinstall. probably most of the case it's not used inside spec file, but even if i used it will work and use the runtime used directories (the only exception %_mingw32_make install, but there is the %_mingw32_makeinstall macro for this). it's working on fedora and rhel/centos too and mingw32-make outside of spec also working.
I still really don't think we should be passing all these args to 'make' or 'make install' by default because its diverging from what native builds do. For native builds '%__make' just expands to '/usr/bin/make' and %configure is where all these paths are setup. Only in a very few cases of broken apps not using autotools would args to make be needed and they can be done in those app's .spec
Daniel
Daniel P. Berrange wrote:
On Wed, Dec 17, 2008 at 03:30:11PM +0100, Farkas Levente wrote:
hi, i review this %_mingw32_make macro again. i can't find any better solution than implement it separately from %_mingw32_makeinstall. probably most of the case it's not used inside spec file, but even if i used it will work and use the runtime used directories (the only exception %_mingw32_make install, but there is the %_mingw32_makeinstall macro for this). it's working on fedora and rhel/centos too and mingw32-make outside of spec also working.
I still really don't think we should be passing all these args to 'make' or 'make install' by default because its diverging from what native builds do. For native builds '%__make' just expands to '/usr/bin/make' and %configure is where all these paths are setup. Only in a very few cases of broken apps not using autotools would args to make be needed and they can be done in those app's .spec
Daniel
you've got right, the most important part here to set env variable setting and not make's args ie. it can be: %_mingw32_make %{_mingw32_env} ; make too. but the %_mingw32_makeinstall should have to remain this way (imho)
Farkas Levente wrote:
Daniel P. Berrange wrote:
On Wed, Dec 17, 2008 at 03:30:11PM +0100, Farkas Levente wrote:
hi, i review this %_mingw32_make macro again. i can't find any better solution than implement it separately from %_mingw32_makeinstall. probably most of the case it's not used inside spec file, but even if i used it will work and use the runtime used directories (the only exception %_mingw32_make install, but there is the %_mingw32_makeinstall macro for this). it's working on fedora and rhel/centos too and mingw32-make outside of spec also working.
I still really don't think we should be passing all these args to 'make' or 'make install' by default because its diverging from what native builds do. For native builds '%__make' just expands to '/usr/bin/make' and %configure is where all these paths are setup. Only in a very few cases of broken apps not using autotools would args to make be needed and they can be done in those app's .spec
Daniel
you've got right, the most important part here to set env variable setting and not make's args ie. it can be: %_mingw32_make %{_mingw32_env} ; make too. but the %_mingw32_makeinstall should have to remain this way (imho)
so here's my last patch in this series which removes the parameters from make.
On Mon, Dec 29, 2008 at 03:44:54PM +0100, Farkas Levente wrote:
Farkas Levente wrote:
Daniel P. Berrange wrote:
I still really don't think we should be passing all these args to 'make' or 'make install' by default because its diverging from what native builds do. For native builds '%__make' just expands to '/usr/bin/make' and %configure is where all these paths are setup. Only in a very few cases of broken apps not using autotools would args to make be needed and they can be done in those app's .spec
Daniel
you've got right, the most important part here to set env variable setting and not make's args ie. it can be: %_mingw32_make %{_mingw32_env} ; make too. but the %_mingw32_makeinstall should have to remain this way (imho)
so here's my last patch in this series which removes the parameters from make.
[...]
+%_mingw32_make %{_mingw32_env} ; make
I think, as per Daniel's reply above, that %_mingw32_make should just expand to plain 'make'.
Note that almost every specfile we have just runs 'make' (and 'make install'). This macro isn't really used anywhere, so I'm not sure why it is necessary.
Rich.
Richard W.M. Jones wrote:
On Mon, Dec 29, 2008 at 03:44:54PM +0100, Farkas Levente wrote:
Farkas Levente wrote:
Daniel P. Berrange wrote:
I still really don't think we should be passing all these args to 'make' or 'make install' by default because its diverging from what native builds do. For native builds '%__make' just expands to '/usr/bin/make' and %configure is where all these paths are setup. Only in a very few cases of broken apps not using autotools would args to make be needed and they can be done in those app's .spec
Daniel
you've got right, the most important part here to set env variable setting and not make's args ie. it can be: %_mingw32_make %{_mingw32_env} ; make too. but the %_mingw32_makeinstall should have to remain this way (imho)
so here's my last patch in this series which removes the parameters from make.
[...]
+%_mingw32_make %{_mingw32_env} ; make
I think, as per Daniel's reply above, that %_mingw32_make should just expand to plain 'make'.
Note that almost every specfile we have just runs 'make' (and 'make install'). This macro isn't really used anywhere, so I'm not sure why it is necessary.
the differencies it's define a lots of env variable. and i look into many configure scripts and makefile and saw that thay use these macros like PKG_CONFIG_PATH, CC, CFLAGS, RANLIB etc. so imho it's rather useful since in this case we've to use less patches in most pacakges.
On Fri, Jan 09, 2009 at 11:19:16PM +0100, Farkas Levente wrote:
the differencies it's define a lots of env variable. and i look into many configure scripts and makefile and saw that thay use these macros like PKG_CONFIG_PATH, CC, CFLAGS, RANLIB etc. so imho it's rather useful since in this case we've to use less patches in most pacakges.
I think this is a misunderstanding of what the generated Makefiles are doing. Take a look at the GNU standards on this:
http://www.gnu.org/prep/standards/standards.html#Directory-Variables
Basically what it's saying is that any paths provided to ./configure become the defaults in the Makefile. eg:
./configure --prefix=/foo make # by default the prefix will be /foo
People can _override_ these paths by supplying arguments to make, eg:
./configure --prefix=/usr make prefix=/foo # override the default prefix
However we want the first case -- all paths supplied to ./configure and just use the simple 'make' command.
That's not to say that every package out there follows the GNU standards (or, equivalently, uses autoconf correctly), but we can deal with non-compliant packages on a case-by-case basis.
Rich.
Richard W.M. Jones wrote:
On Fri, Jan 09, 2009 at 11:19:16PM +0100, Farkas Levente wrote:
the differencies it's define a lots of env variable. and i look into many configure scripts and makefile and saw that thay use these macros like PKG_CONFIG_PATH, CC, CFLAGS, RANLIB etc. so imho it's rather useful since in this case we've to use less patches in most pacakges.
I think this is a misunderstanding of what the generated Makefiles are doing. Take a look at the GNU standards on this:
http://www.gnu.org/prep/standards/standards.html#Directory-Variables
Basically what it's saying is that any paths provided to ./configure become the defaults in the Makefile. eg:
./configure --prefix=/foo make # by default the prefix will be /foo
People can _override_ these paths by supplying arguments to make, eg:
./configure --prefix=/usr make prefix=/foo # override the default prefix
However we want the first case -- all paths supplied to ./configure and just use the simple 'make' command.
That's not to say that every package out there follows the GNU standards (or, equivalently, uses autoconf correctly), but we can deal with non-compliant packages on a case-by-case basis.
i talk about makefiles which not generated with configure.