RE: [ROOT] root dictionaries in .NET

From: Valeri Fine (fine@bnl.gov)
Date: Tue Mar 30 2004 - 21:12:42 MEST


Hello John,

 
> Thanks for the email.
 
> Francois-Xavier's web site is one of two linked from the ROOT web
pages:
 
> http://root.cern.ch/root/Version310.html
 
> Axel Naumann's is the other; this is the second web page you found.  I
> have seen both, and because they don't mention export libraries, I'm
> surprised to hear about it now...
 
>So the quick advice, to avoid a lengthy explanation, is to use either
> >ACLiC or the %ROOTSYS%\test\Makefile.win32 makefile as a pattern.
That Makefile
> isnot quite convenient since it builds many different executables and
DLL's at
> once. So you have to sort it out and disregard all rules to
> >build the various executables and leave Event.DLL rules only.


> I love quick advice, but F-X explains in great detail on his webpage
> that Microsoft .NET can do nothing with a Makefile. 

  It is not quite correct.
  He meant (implied) "Microsoft Developer Studio" rather "Visual C++
Win32 SDK"

> So I don't know
> what you are asking me to do here.  Perhaps I should have the lengthy
> explanation, since it appears to be available nowhere else.

By some reason ROOT Manual missed to explain how to build the ROOT tests
under Windows.   ftp://root.cern.ch/root/doc/chapter18.pdf 


  To see what I am speaking about you need to find 

   1.  "Microsoft Studio .NET command prompt" icon
   2.  "Click" that icon to get the famous "MS DOS black Window"
   3.  At this point you should be able to invoke the MVC++ compiler "by
hand"
       Just type "cl" to see:

C:\Documents and Settings\fine >cl
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.00.9466 for
80x86
Copyright (C) Microsoft Corporation 1984-2001. All rights reserved.

usage: cl [ option... ] filename... [ /link linkoption... ]
  
   4. Make sure your ROOT-related env. variable are set properly
     just type 
  C:\work>set ROOT
          ROOTSYS=c:\cygwin\home\fine\work\ROOT\3.10.02\root
  C:\work> PATH

  If you installed ROOT from http://root.bnl.gov then all variables are
to be set automatically for you (one click installation)    

   5. If you don't have the proper variable installed I would advice to
create a simple "setRoot.bat" batch file:

    set ROOTSYS=" where your ROOT system was installed"
    PATH "%ROOTSYS%\bin";%PATH%
    Set LIB="%ROOTSYS%\lib";%LIB%
    Set INCLUDE="%ROOTSYS%\include";%INCLUDE%  

   5. Start that batch file from the "Command Prompt"
   6. cd %ROOTSYS%\test
   7. nmake -f Makefile.win32
   8. dir *.exe
   9. dir *.dll


You should see the bunch of the executable that "nmake" with
Makefile.win32" has produced. Just start either to make sure they are
Ok.

The proper "make rule" to produce the ROOTCint Dictionary under Windows
can be found there and it is:

$(EVENTSO):     $(EVENTO)
   BINDEXPLIB  $* $(EVENTO) > $*.def
   lib -nologo -MACHINE:IX86 $(EVENTO) -def:$*.def
$(OutPutOpt)$(EVENTLIB)
   $(LD) $(SOFLAGS) $(LDFLAGS) $(EVENTO) $*.exp $(LIBS)
$(OutPutOpt)$(EVENTSO)
   @echo "$(EVENTSO) done"



Where "EVENTO" should be list of YOUR object files and EVENTSO is the
name of the YOUR  DLL.

I wonder of one can explain and share with us how to add this step to
the regular ".NET" Solution.


If you need more concrete assistance please send me your directory (zip
or tar file) and I'll create the proper Makefile and send you it back,

Note: Sometimes one can not send me the E-mail with the attachments.
      By this reason I would advice to upload your stuff on 
      some Web page and send me the link top download.

   Hope this helps.
                                Valeri


> 
> At the same time, I will rework the dictionaries.  I got a little
> confused the first time through and might have made a mistake.
> 
>     - John
> 
> --
> 
> Dr. John Krane
> jkrane@netzero.com



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:07 MET