%% Johnny Wales <[EMAIL PROTECTED]> writes:

  jw> What about a 'make No_I_Really_Really_Really_Mean_It-install'
  jw> option, or something along those lines that prints a warning, asks
  jw> 'Are you sure you wish to do this here zany thing?' then installs
  jw> to the -proper- (indicated by which) location?

If that becomes part of the GNU coding standards and automake (which is
the tool that generates all the makefiles for GNU make and most other
GNU tools) creates such a target, obviously GNU make will use it.
Actually, this would have to be discovered at "configure" time, not
install time, since many packages (although not GNU make) have hardcoded
paths built into them about where to look for configuration files, etc.;
you can't simply install them in a completely different place and expect
them to work.  Examples include GCC and Emacs; there are a number of
others.

Also, it's completely against all precedent to have install be
interactive.  And, it's _much_ too complicated.  "which" returns a make
that depends on your PATH; but you typically have to be root to install
in system directories, so you'd get whatever's on root's path, which may
not be the make on your path.  Also, what if the "make" on your PATH is
a symbolic link?  What if there are multiple directories, /bin/make
vs. /usr/bin/make etc.?  Also on many systems "which" is a csh script,
and can sometimes report incorrect results which invoked from a Bourne
shell environment.

Basically, any attempt on the part of the configuration to guess where
to put make would be wrong at least as often as it was right.  Instead
of guessing using confusing and error-prone heuristicts, we have a
default which is the same for every package, and we provide a very
simple way to specify an alternative, which is also the same for every
package.

  jw> That'd be good. Reason being: I'm a programmer, so I can easily
  jw> read make output and find out what seems to be going on (as
  jw> indicated by finding this oddity and fixing it),

There's no need to parse the output.

You could merely read the INSTALL file shipped with every GNU program
(it's even the same biolerplate file, so once you read it once you're
done for all GNU tools).

  jw> but I know my mom couldn't and would simply become frustrated and
  jw> scared. And, if we ever plan to take over the desktop, there needs
  jw> to be some method of making all software install and magically
  jw> begin working, so upgrades will simply be a one-command or
  jw> one-click process.

That's not the responsibility of the source distribution install script.
That is the job of your distribution's package manager.  If you install
make using that manager, and it doesn't put the binary in the right
place, then you've found a bug and you should report it to your
distribution.

The GNU make source tarball is a generic package which is built and
installed on non-Linux systems at least as often, if not moreso, than on
Linux systems.  Remember that not only does GNU make run on UNIX of all
flavors, but it also runs on DOS, Windows, Amiga, and VMS.  On every
other UNIX aside from Linux, the system make is _not_ GNU make, and on
these systems you _never_ want to replace the system make with GNU make;
instead you want both.

It's the same for all GNU tools; they install in /usr/local for good
reason: on every system except for Linux, they are additional, local
tools and it's inappropriate to replace the system versions with them.

  jw> This is one of the Good Things about Microsoft software:
  jw> InstallShield standardized install.

GNU has a _very_ standardized install.  It's just that most Linux
distributions don't adhere to it.

I'm not faulting them: they're doing the right thing because they're
using GNU tools as the default system tools.  But that doesn't mean that
the GNU standards aren't doing the right thing, too.

  jw> Admitted, my mom would never use Make, but I grade software based
  jw> on 'Mom-friendlyness'. One thing that I think continues to stand
  jw> in the way of the Open Source Revolution is the little
  jw> difficulties people always complain about, install being one of
  jw> them. My mom would not be able to use Linux as of right now, not
  jw> even the big-huge distros, because she wouldn't be able to figure
  jw> out little details like networking, RPM, or Debian Package
  jw> Manager. That's why I made the suggestion about make install
  jw> installing in the 'expected' place, and why I think it's a good
  jw> idea.

I maintain that there's no way for make's configure to intuit the
"expected" place given the _huge_ variety of systems and situations in
which it could be installed.

Configure has it right: rather than guessing it always puts things in
the same place, and gives a simple way for you to tell it you want to
install somewhere else.  Only the installer can say what the right thing
is.

The proper separation of responsibilities is that the Linux distribution
package manager provide for building and installing tools in the correct
directories for that distribution.  It's not the place of the generic,
one-size-fits-all configuration to guess at that destination.

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <[EMAIL PROTECTED]>          Find some GNU make tips at:
 http://www.gnu.org                      http://www.ultranet.com/~pauld/gmake/
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist

Reply via email to