Re: Command-line arguments with Root 2.21/08 under NT

From: Matthew D. Langston (langston@SLAC.stanford.edu)
Date: Sat Apr 17 1999 - 00:07:42 MEST


Hi Valery,

"Valery Fine (Faine)" wrote:
> 
> First there is no big difference between WIN32 and UNIX ways to build
> ROOT. Both ways one and same set of the ShareLibraries
> /DLLs/Executables is built.
>
> I see no big problem with "know-how" since the big deal of them rules
> are present with very test/Makefile and makefile to built ATLFast
> packages as well.  As I said we use GNU make to generate STAR
> ROOT-based software as well.

Actually, what I need is the logical, higher-level, project/build
structure of ROOT on Win9x/NT.  The actual method to create .DLLs is
unimportant, as GNU Libtool knows how to invoke the compilers and make
the shared libraries on Win9x/NT platforms.

Where I need help is what to do with the `THREAD_*', `WIN32_*' and
`WINNT_*' files.  What libraries are these source files a part of?  In
what order do they appear on the link line?  Also, are any of these
source files and/or libraries conditionally built under different
circumstances?

As I mentioned, the actual implementation of how to invoke the compiler,
linker, etc. is taken care of by GNU Libtool.  I just need to know the
higher-level project structure or ROOT under Win9x/NT.

> But I don't like an idea to force Windows people to install CYGNUS
> tools (i.e. UNIX layer) on the top of the WIN32.

Many people might feel the same way about being "forced" to install a
commercial compiler suite (e.g. Microsoft Visual Studio, street price
$900 US) before they can build ROOT on their WinNT computers.

It isn't quite accurate to argue that one is "forcing" ROOT users to
install cygwin (http://sourceware.cygnus.com/cygwin/) on their WinNT
systems in order to use the Autoconfed version of ROOT, since you must
install at least one compiler suite on a WinNT system in order to build
ROOT on your own.

Actually, GNU Autoconf recognizes and can use third party compilers,
e.g. the Microsoft C/C++ compiler.  The user can chose which compiler to
use at build time.

Currently, WinNT users must install the following to build ROOT on their
own:

  1) CMZ
  2) Microsoft or Borland compiler

With the Autoconfed version of ROOT, users would only have to install

  1) cygwin

Of course, users could still install and use, e.g. Microsoft Visual
Studio if they wanted to.

You can look at the cygwin package as adding a UNIX layer on top of
Win32 if you wish, but you can also look at it as providing a no-cost
and complete development environment, e.g. `make' and the C, C++ and
Fortran 77 compilers.  The user doesn't have to use the "UNIX layer" if
they don't want to.

> For me it is too expansive and I doubt it is what people under Windows
> want to see.

Well, cygwin is free, and Microsoft Developer Studio is $900 US, so I'm
not sure what you mean by "too expensive".  I consider myself as one of
the "people under Windows", and I prefer to use the cygwin tools over
anything else.  I am not arguing that all ROOT users should switch to
the egcs compiler under Win32 unless they want to.  However, it is nice
to be able to give users the choice, as the commercially available
development environments are quite expensive, particularly for the small
university research groups.

> The same "know-how" one can find in the "Imake rules" those CERN uses
> to create makefiles to build CERNLIB for Windows NT.

As I mentioned, it is not the compiler flags, linker flags, etc. that is
important.  We need the ROOT specific list of libraries, and the source
files that go into these libraries.  That's all.

Valery, thank you for taking the time to answer my e-mails with your
thoughtful answers to my questions.  I hope I don't seem combative about
the GNU tools vs. the commercially available tools.  One of the primary
reasons I added GNU Autoconf, Automake and Libtool support to ROOT was
to be able to give users a choice in the development tools that they
use.  Me, and many of my colleagues, simply can't afford to buy a $900
software package for everyone who wants to compile their own classes for
use with ROOT.

--
Matthew D. Langston
SLD, Stanford Linear Accelerator Center
langston@SLAC.Stanford.EDU



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:31 MET