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