[ROOT] Correct LIBS for a Makefile

From: Stilianos Kesisoglou (kesisogl@fnal.gov)
Date: Mon Jun 24 2002 - 11:09:54 MEST


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