Re: Re: Root 5.20 won't build static on Windows

From: Rene Brun <Rene.Brun_at_cern.ch>
Date: Tue, 31 Mar 2009 19:47:32 +0200


Tom,

Yes, I remember your argumentation a few months ago. Concerning the static version, we cannot build N possible combinations corresponding to users needs. For example, you request TFile, TTree, TNtuple, but most users will want only the TH1 classes and TTree. I suggest to look at the makefile.static and build your own packaging. Currently the Makefile does not support any build option.

Rene

Tom Roberts wrote:
> It's not a question of "stupid", it's a question of user friendliness,
> user experience, and user expectations. My users are not the same as
> Root users -- Root users must know how to program in C++ to do
> anything, which implies considerable computer experience; my users
> don't need that, and most of them don't know C++ at all.
>
> To you, to me, and to C++ programmers in general, installing Root is
> trivial -- after all, we do that sort of thing quite frequently. Even
> installing multiple versions side-by-side is easy. But my users are
> physicists, many are not so computer savvy, and such things are rather
> unusual to them. For instance, very few of my users use Cygwin on
> Windows or even have a C++ compiler installed; supporting Windows more
> than tripled my user base. (This is also why I supply the HistoRoot
> program to permit users to easily generate plots without programming
> Root in C++, and why it must run as a macro.)
>
> Bottom line: Root is great! -- it has tremendous capabilities and is
> so flexible that I can provide a GUI program for my users to use
> without needing to know C++. But it is not good at mixing library
> versions, so I include the Root libraries my program uses in my
> distribution. This makes G4beamline independent of whichever version
> of Root users might have installed (even none). Note that a number of
> them are still using Root 5.12 (the version that was current back when
> I first implemented Root support in G4beamline).
>
>
> Tom Roberts
>
>
>
> Rene Brun wrote:
>> Tom,
>>
>> We have 12000 distributions of the source tar file per month. Are
>> your users more stupid than the average? ::)
>>
>> Rene Brun
>>
>> Tom Roberts wrote:
>>> I forgot to mention two ironies:
>>> 1) C:/root/bin/root starts up just fine without any libfreetype.a,
>>> and opens a GUI macro just fine (with lots of fonts that look good
>>> and are probably true type fonts).
>>> 2) I don't need any fonts at all -- the only classes I use are TFile
>>> and TNtuple. Is there some workaround I can use to get static
>>> libraries for those classes? While it said it was "Making
>>> bin/roota", it was really building libpcre.a, which is needed by
>>> libRoot.a (which was built OK).
>>>
>>> It seems to me that a greatly-reduced library containing only TFile,
>>> TTree, and TNtuple (+ their required dependencies) would be useful
>>> for users like me who only do Root I/O in a separate program. The
>>> DLLs add ~50 MB to my distribution (no, I cannot expect my users to
>>> install the correct version of Root themselves).
>>>
>>>
>>> Tom Roberts
>>>
>>>
>>> Tom Roberts wrote:
>>>> This is Windows Xp with Cygwin, VC++ express edition 9.0. I need to
>>>> build it from source, because I need the static library.
>>>>
>>>> Root 5.20 built and runs successfully for me, but "make static" fails:
>>>>
>>>> Making bin/roota...
>>>> build/win/ld.sh -nologo -ignore:4049,4075,4217,4221 -incremental:no
>>>> -o bin/roota
>>>> main/src/rmain.o cint/reflex/src/G__Reflex.o
>>>> core/base/src/G__Base1.o core/base
>>>> /src/G__Base2.o core/base/src/G__Base3.o core/clib/src/G__Clib.o
>>>> core/cont/src/G
>>>> __Cont.o core/meta/src/G__Meta.o core/meta/src/G__TCint.o
>>>> core/metautils/src/G__
>>>> MetaUtils.o core/rint/src/G__Rint.o core/thread/src/G__Thread.o
>>>> core/winnt/src/G
>>>> __WinNT.o geom/geom/src/G__Geom1.o geom/geom/src/G__Geom2.o
>>>> geom/geombuilder/src
>>>> /G__GeomBuilder.o geom/geompainter/src/G__GeomPainter.o
>>>> graf2d/gpad/src/G__GPad.
>>>> o graf2d/graf/src/G__Graf1.o graf2d/graf/src/G__Graf2.o
>>>> graf2d/postscript/src/G_
>>>> _PostScript.o graf2d/win32gdk/src/G__Win32gdk.o
>>>> graf3d/g3d/src/G__G3D.o gui/fitp
>>>> anel/src/G__FitPanel.o gui/ged/src/G__Ged.o gui/gui/src/G__Gui1.o
>>>> gui/gui/src/G_
>>>> _Gui2.o gui/gui/src/G__Gui3.o gui/guibuilder/src/G__GuiBld.o
>>>> gui/guihtml/src/G__
>>>> GuiHtml.o gui/sessionviewer/src/G__SessionViewer.o
>>>> hist/hist/src/G__Hist.o hist/
>>>> histpainter/src/G__HistPainter.o hist/spectrum/src/G__Spectrum.o
>>>> hist/spectrumpa
>>>> inter/src/G__Spectrum2Painter.o html/src/G__Html.o
>>>> io/io/src/G__IO.o io/sql/src/
>>>> G__SQL.o io/xml/src/G__XML.o math/foam/src/G__Foam.o
>>>> math/fumili/src/G__Fumili.o
>>>> math/genvector/src/G__GenVector.o
>>>> math/genvector/src/G__GenVector32.o math/math
>>>> core/src/G__Math.o math/mathcore/src/G__MathCore.o
>>>> math/mathcore/src/G__MathFit.
>>>> o math/matrix/src/G__Matrix.o math/minuit/src/G__Minuit.o
>>>> math/mlp/src/G__MLP.o
>>>> math/physics/src/G__Physics.o math/smatrix/src/G__Smatrix.o
>>>> math/smatrix/src/G__
>>>> Smatrix32.o math/splot/src/G__SPlot.o montecarlo/eg/src/G__EG.o
>>>> montecarlo/vmc/s
>>>> rc/G__VMC.o net/net/src/G__Net.o proof/proof/src/G__Proof.o
>>>> proof/proofplayer/sr
>>>> c/G__ProofDraw.o proof/proofplayer/src/G__ProofPlayer.o
>>>> tmva/src/G__TMVA.o tree/
>>>> tree/src/G__Tree.o tree/treeplayer/src/G__TreePlayer.o
>>>> tree/treeviewer/src/G__Tr
>>>> eeViewer.o lib/libRoot.a advapi32.lib lib/libfreetype.a lib/libpcre.a
>>>> LINK : fatal error LNK1181: cannot open input file 'lib/libfreetype.a'
>>>> make: *** [static] Error 157
>>>>
>>>> This looks to be related to the ttf (true type fonts) feature,
>>>> which is crazy on Windows (the home of true type fonts)....
>>>>
>>>> Suggestions?
>>>>
>>>>
>>>> Tom Roberts
>>>>
>>>
>>
>
Received on Tue Mar 31 2009 - 19:47:56 CEST

This archive was generated by hypermail 2.2.0 : Wed Apr 01 2009 - 17:50:02 CEST