git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: GIT on MinGW problem

From
Jakub Narebski <jnareb@gmail.com>
Date
May 26, 2007, 23:47 UTC
Message-ID
<f3agkk$bhn$1@sea.gmane.org>
In-Reply-To
<4658BA64.2050904@xs4all.nl>
Han-Wen Nienhuys wrote:
> Johannes Schindelin escreveu:
Show 40 quoted lines
>>>> * git version reports just:
>>>>
>>>>    git version -dirty
>>>>
>>>> Since git-gui parses the output of git version, but does not expect it
>>>> to be of this format, and fails with an error message that it cannot
>>>> parse the version.
>>> My biggest problem is that the makefiles of git are an unmitigated
>>> disaster, and there seems to be little interest in solving this
>>> problem. For example, my suggestion to introduce autoconf was met with
>>> derision.
>> 
>> Well, I would not call it derision. But many people have had bad 
>> experience with that big mess which is autoconf, so we were more than 
>> reluctant to do it.
> 
> autoconf is not that big a mess, but it is a macrolanguage, which does
> come with its pitfalls.  Automake and libtool are the messy things,
> and I prefer to stay away from them as far as possible.
> 
> The point of autoconf is to generate a hyper-portable script that
> deals with all the different flavors of shell breakage.  For the user
> it simplifies compiling packages enormously, which IMO should be the
> guiding concern if you like to have users.
> 
> For a pretty run-of-the-mill tool like git (dependency wise), it
> should be easy to write a working configure.in.
> 
> My favorite approach is: use autoconf to generate
> 
>  - config.h
>  
>  - config.make
> 
> All settings that force recompile should be in config.h, and standard
> C methods to track dependencies will take care of the recompilation
> when anything changes.  The main Makefile includes config.make, and
> contains all configurable settings. The Makefile only needs to be
> edited by developers. Require GNU Make so you can write sane
> makefiles.

Actually we do have configure.ac script; ./configure (result of "make configure") is not distributed in the tarball I think. It generates file named not config.make, but config.mak.autogen. By the way, the .autogen suffix is to distinguish ./configure generated file from handmade user configureation, but I have no idea why it is config.mak not config.make. But there is no config.h -- we do not rely on automake and autoheader.

If you are well wersed in autoconf, feel free to improve our configure.ac
script.
 
> Instead, we have a Makefile that relies on an esoteric combination of
> perl and shell scripting inside Makefiles.

The idea is to be able to get reasonable defaults (depending on system of course) without needing autoconf, and running quite long on some platform ./configure script detection...

-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
Previous: Han-Wen NienhuysNext: Han-Wen Nienhuys
Message 22 of 69 in “GIT on MinGW problem”
  1. Aaron GrayMay 12, 2007
  2. Junio C HamanoMay 12, 2007
  3. Aaron GrayMay 12, 2007
  4. Han-Wen NienhuysMay 12, 2007
  5. Johannes SixtMay 25, 2007
  6. Marco CostalbaMay 25, 2007
  7. Johannes SchindelinMay 25, 2007
  8. Johannes SixtMay 25, 2007
  9. Han-Wen NienhuysMay 26, 2007
  10. Johannes SchindelinMay 26, 2007
  11. Han-Wen NienhuysMay 27, 2007
  12. Johannes SchindelinMay 27, 2007
  13. Han-Wen NienhuysMay 27, 2007
  14. NixMay 28, 2007
  15. Han-Wen NienhuysMay 27, 2007
  16. Aaron GrayMay 25, 2007
  17. Han-Wen NienhuysMay 26, 2007
  18. Johannes SchindelinMay 26, 2007
  19. Junio C HamanoMay 26, 2007
  20. Johannes SchindelinMay 26, 2007
  21. Han-Wen NienhuysMay 26, 2007
  22. Jakub NarebskiMay 26, 2007
  23. Han-Wen NienhuysMay 27, 2007
  24. Shawn O. PearceMay 27, 2007
  25. Han-Wen NienhuysMay 27, 2007
  26. Steven GrimmMay 27, 2007
  27. Jakub NarebskiMay 27, 2007
  28. Han-Wen NienhuysMay 27, 2007
  29. Johannes SchindelinMay 28, 2007
  30. Han-Wen NienhuysMay 28, 2007
  31. Johannes SchindelinMay 27, 2007
  32. Han-Wen NienhuysMay 27, 2007
  33. GIT on MinGW, with tcltk for gitkHan-Wen Nienhuys, May 27, 2007
  34. Aaron GrayMay 27, 2007
  35. Han-Wen NienhuysMay 27, 2007
  36. Aaron GrayMay 27, 2007
  37. Aaron GrayMay 27, 2007
  38. Han-Wen NienhuysMay 27, 2007
  39. Aaron GrayMay 27, 2007
  40. Han-Wen NienhuysMay 27, 2007
  41. Aaron GrayMay 27, 2007
  42. Johannes SchindelinMay 27, 2007
  43. Johannes SixtMay 29, 2007
  44. Han-Wen NienhuysMay 27, 2007
  45. Johannes SixtMay 29, 2007
  46. Marius Storm-OlsenMay 29, 2007
  47. Johannes SixtMay 29, 2007
  48. Han-Wen NienhuysMay 29, 2007
  49. Johannes SixtMay 29, 2007
  50. Johannes SchindelinMay 29, 2007
  51. Marius Storm-OlsenMay 29, 2007
  52. Johannes SixtMay 29, 2007
  53. Marius Storm-OlsenMay 29, 2007
  54. Johannes SchindelinMay 29, 2007
  55. Johannes SixtMay 29, 2007
  56. Nguyen Thai Ngoc DuyMay 29, 2007
  57. Johannes SixtMay 29, 2007
  58. Nguyen Thai Ngoc DuyMay 29, 2007
  59. Make git-k an alias to gitkJohannes Schindelin, May 30, 2007
  60. Johannes SixtMay 30, 2007
  61. Han-Wen NienhuysMay 30, 2007
  62. Johannes SchindelinMay 30, 2007
  63. Shawn O. PearceMay 30, 2007
  64. Git wrapper: add --redirect-stderr optionJohannes Schindelin, May 30, 2007
  65. Shawn O. PearceMay 30, 2007
  66. Johannes SchindelinMay 30, 2007
  67. Shawn O. PearceMay 30, 2007
  68. Johannes SchindelinMay 30, 2007
  69. Johannes SchindelinMay 27, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.