Re: [ROOT] Correct LIBS for a Makefile

From: Rene Brun (Rene.Brun@cern.ch)
Date: Mon Jun 24 2002 - 11:15:30 MEST


Hi,

The WIN32 version of ROOT IS BUILT under CYGWIN.
Please  have a look at the Makefile, eg $ROOTSYS/test/Makefile
to see how we build the test programs under Windows with win32.

Rene Brun

On Mon, 24 Jun 2002, Stilianos Kesisoglou wrote:

> Hi,
> 
>     I am using a Makefile to compile and link some classes with ROOT on a UNIX machine.
>     My Makefile is:
> 
> LIBS = -L$(ROOTSYS)/lib -lNew  -lCint  \
>         -lGraf -lGraf3d -lHist -lHtml -lMatrix  -lMinuit  \
>         -lPostscript -lProof -lTree -lCore -lGX11 \
>         -lGpad -lGui  \
>         -L/usr/X11R6/lib -lm -ldl \
>  
> OPTCOMP =  +K0 
> CXXFLAGS = --exceptions --thread_safe -I$(ROOTSYS)/include -I.
> OBJECTS = main.o Track.o TrackCollection.o EMcandidate.o ParticleJetCorr.o JetOOC.o JetOffset.o JetResponse.o JetDecay.o pick.o
> 
> all: $(OBJECTS)
>  KCC $(OPTCOMP) $(CXXFLAGS) -o EM_Analysis -g $(OBJECTS) $(LIBS)
> 
> main.o: main.cpp 
>  KCC $(OPTCOMP) $(CXXFLAGS) -c main.cpp
> 
> Track.o: em_util/em_util/Track.C
>  KCC $(OPTCOMP) $(CXXFLAGS) -c em_util/em_util/Track.C
> 
> TrackCollection.o: em_util/em_util/TrackCollection.C
>  KCC $(OPTCOMP) $(CXXFLAGS) -c em_util/em_util/TrackCollection.C
> 
> EMcandidate.o: em_util/em_util/EMcandidate.C
>  KCC $(OPTCOMP) $(CXXFLAGS) -c em_util/em_util/EMcandidate.C
> 
> ParticleJetCorr.o: ParticleJetCorr.C
>  KCC $(OPTCOMP) $(CXXFLAGS) -c ParticleJetCorr.C
> 
> JetOOC.o: JetOOC.C
>  KCC $(OPTCOMP) $(CXXFLAGS) -c JetOOC.C
> 
> JetOffset.o: JetOffset.C
>  KCC $(OPTCOMP) $(CXXFLAGS) -c JetOffset.C
> 
> JetResponse.o: JetResponse.C
>  KCC $(OPTCOMP) $(CXXFLAGS) -c JetResponse.C
> 
> JetDecay.o: JetDecay.C
>  KCC $(OPTCOMP) $(CXXFLAGS) -c JetDecay.C
> 
> pick.o: pick.C
>  KCC $(OPTCOMP) $(CXXFLAGS) -c pick.C
> 
> clean:
>  rm -f *.o
>  rm -f EM_Analysis;
> 
>     Now what I want to do is the transfer the whole job on a Windows2000 machine, 
> on which I have installed ROOT (Windows version) and I have a complete UNIX 
> environment (Cygwin).
> 
>     I know how to use Cygwin's g++ (instead of KCC) to create the objects "main.o", "pick.o" etc
> but I am having problems at the link stage with the libraries.
> 
>     Since I have the Win2K version of ROOT (so is not compiled under Cygwin) the libraries have 
> the names "libNew.dll" etc and not "libNew.a" which is what the linker is looking for.
> 
>     How can I modify my LIBS to solve this?
> 
>     Creating the libraries "lib***.a" from "lib***.dll" as described on the Cygwin documentation
> doesn't work since the dll's are striped. 
> 
> 
> Stelios.
> 
> 



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:58 MET