From: Greg C. <chi...@co...> - 2006-02-15 13:21:35
|
To meet the needs of my own development team, I've put together a uniform way of installing MinGW as well as many other tools. I offer to extend it to meet the MinGW community's needs, and to keep it actively maintained. - Why another installer? Because users are complaining. Because this one works for me, and it's designed for easy, reliable maintenance. If you're satisfied with the InnoSetup or NullSoft installers, then fine--many people feel happier with a GUI anyway. Those installers seem to have hit some speedbumps, and an alternative might be welcome. It doesn't have to be a replacement. - What is it? Here's a stripped-down version for MinGW C++ only: http://cvs.savannah.gnu.org/viewcvs/*checkout*/lmi/lmi/gwc/mingw_install.make?rev=1.2 http://cvs.savannah.gnu.org/viewcvs/*checkout*/lmi/lmi/gwc/test.md5?rev=1.1 the latter file being required only for running the installer's test suite. - How is it run? To use the latest version of all archives: make --file=mingw_install.make To install an earlier version, for example with archives corresponding to 'MinGW-5.0.0.exe': make --file=mingw_install.make file_list='$(mingw_20050827)' To install to a different directory: make --file=mingw_install.make prefix='wherever/you/like' - What does it do? It downloads files once only. Copy it and the downloaded files to a CD, and you can install MinGW anywhere, without net access. It won't install on top of another version, because that's unsafe: instead, it prints a message presenting safe options. - What are the prerequisites? It requires wget, and a shell with some basic utilities. For the latter, MSYS is more than sufficient, but I've used the ancient 'ming-selfhost' with its tiny 'ash' shell in the past to reduce the footprint, and that works just as well. 'CMD.EXE' won't do. - Why implement it as a makefile? Our production code does other things for other tools we need. It builds some programs or libraries from source, so a makefile seemed a natural fit. There's no compelling reason to translate a mingw-only version to a shell script. - What would need to be extended? My team uses only the C++ compiler. I can extend it to include other languages, like ada and objc, as well as miscellaneous libraries and binaries if they're available online. Then it would do what the inno-setup installer did. - How easy is this to maintain? As an example, adding only these five lines lets you mimic 'MinGW-3.1.0-1.exe' of 2003-09-15 closely: mingw_20030915 = \ binutils-2.13.90-20030111-1.tar.gz \ gcc-3.2.3-20030504-1.tar.gz \ mingw-runtime-3.1.tar.gz \ w32api-2.4.tar.gz \ It's not a complete copy: it's missing - a dozen binaries like 'gdb.exe' and 'drmingw.exe', and their documentation; - the 'readline' library and headers; and - 'libhistory.a' and 'libmmalloc.a'. It adds 'info' and 'man' directories that 'MinGW-3.1.0-1.exe' doesn't provide, and gives a slightly newer 'C++filt.exe'. All other files are identical. There's no uninstaller. I use 'rm', though the 'Delete' key in 'explorer' works as well. - Any other known problems? Sourceforge mirrors are often incomplete. I'm working on a modification that'll use other mirrors as necessary. - What help would I ask? I'd like to know when a new release should be declared, and what archives it should use. I'd also like to know where things like 'readline' come from. It'd be nice to have a tarball for gdb binaries. The '.exe' requires manual intervention to run. And I'd welcome any comments. |