On Mon, 2012-01-16 at 06:59 -0500, Eli Zaretskii wrote:
> > From: Paul Smith <psmith@gnu....>
> > 1. Standard configure/Makefile.am
> > 2. build.sh
> > 3. Makefile.DOS
> > 4. NMakefile
> > 5. SMakefile
> > 6. build_w32.bat
> > 7. Makefile.ami
> > 8. makefile.vms
> > 9. makefile.com
> > 10. dosbuild.bat
> > 11. make_msvc_net2001.vcproj
> They are for 2 different ports: dosbuild.bat for the MS-DOS
> (a.k.a. DJGPP) port, build_w32.bat for the MS-Windows port.
> If what you mean is collapse them into a single batch file, then it
> could be possible, but is it worth the hassle? They are typically
> maintained by different people.
They don't bother me much, EXCEPT at times like these when I need to add
new files to the build, etc. then I have to go around to all these
places and update them to add the new file. It's kind of annoying,
> > Do we really need NMakefile AND SMakefile AND Makefile.DOS?
> NMakefile is for building the MS-Windows port with nmake, the
> Microsoft's make program. Given that build_w32.bat exists, we could
> remove it (and the same goes for the make_msvc_* files).
For the msvc files, my understanding was that someone was developing on
Windows using MSVC and wanted those files included in the distro to make
> SMakefile is for something called `smake' which seems to be from some
> old Posix platform, so I don't know anything about it.
Hm. That might be a good contender for deletion.
> How about moving them to a subdirectory, where they could bit-rot out
> of sight?
For sure once I actually take the plunge and move to a "real" source
code control system, one of the very first things I'll be doing is some
directory cleanup operations, file renames, etc.
> > Looking at it another way, for the non-configure-based systems isn't a
> > batch file enough, just to get GNU make built the first time, then you
> > can use GNU make itself to build afterwards?
> Once you build Make with the batch file, how do you rebuild it, if you
> cannot run the configure script? You need a Makefile, don't you?
> Makefile.DOS is such a Makefile for DOS; the MS-Windows port doesn't
> have such a Makefile suitable for GNU Make, so one keeps running
> build_w32.bat to rebuild.
So, I think there are two groups who compile make from source. One is
the user who wants a copy to run and for whatever reason, doesn't have
one already, and the other is someone who wants to develop and modify
GNU make itself.
For the first group, really all we need is the bootstrapping script.
They'll run it once, get "make", "make.exe", or whatever, and be done.
Since they're building from scratch anyway, the script is no worse than
a real make/makefile combo.
For the second group, they will want to rebuild make multiple times,
which means they'd probably like a makefile. Make is not so huge that
using the bootstrapping script is out of the question but it seems funny
to use a static compilation script to develop make :-)
What I was thinking was this: write a very simple, very generic and
portable makefile that can build make. It wouldn't have lots of fancy
targets like the current SMakefile/NMakefile have, for creating
distributions etc. Just the compile and link.
Now if you don't already have a make then all you have to do is run the
bootstrapping script one time to build GNU make, then from that point
you can use GNU make with the simple, generic makefile to continue to
That might get rid of a number of the makefile variants.
Paul D. Smith <psmith@gnu....> Find some GNU make tips at:
"Please remain calm...I may be mad, but I am a professional." --Mad Scientist