Re: [ROOT] Problem with signal/slot in macro: ROOT or Panther?

From: cstrato (cstrato@aon.at)
Date: Sun Dec 07 2003 - 14:50:41 MET


Dear Eddy

1, Sorry, the missing "\" was my mistake, however, correcting
    it did not help. I still get the following error when compiling:

Makefile:307: main/src/ssh2rpd.d: No such file or directory
Makefile:309: build/dummy.d: No such file or directory
EXTRA_CCFLAGS += -I/Users/testuser/ROOT/cern/include/root-3.10.01/ 
-DPower_Macintosh -DDarwin -Wall -Wmissing-prototypes 
-Wno-unknown-pragmas -pipe -fsigned-char -fno-common -D_REENTRANT -g 
EXTRA_CXXFLAGS += -I/Users/testuser/ROOT/cern/include/root-3.10.01/ 
-DPower_Macintosh -DDarwin EXTRA_LDFLAGS = -Llib 
-L/Users/testuser/ROOT/cern/lib/root-3.10.01/ 
-L/Users/testuser/ROOT/cern -O -pipe -W -Wall -fsigned-char -fno-common 
-I/usr/X11R6/include -Iinclude -DHAVE_CONFIG 
-DINCLUDEDIR=\"/usr/include\" -DOBJSUFFIX=\".o\" -o 
build/rmkdepend/cppsetup.o -c build/rmkdepend/cppsetup.c
EXTRA_CCFLAGS: Command not found
make: *** [build/rmkdepend/cppsetup.o] Error 127

    As you see, the command EXTRA_CCFLAGS is not found.
    I tried to look in google, it should be defined in
    /usr/share/lib/make/make.rules, however, this path
    does not exist, and searching the disk for "make.rules"
    did not give any results.
    Do you know, where EXTRA_CCFLAGS should be defined?
    In your last mail you mention that EXTRA_xx are used in
    all Makefiles in the config directory, but there they
    are not defined?

2, Currently, I learn a lot from you. I tested the command
    "otool" with the following results for root.exe and for
    radioGui. It seems that radioGui loads more libraries
    than root.exe:

otool -L /Users/rabbitus/ROOT/root/bin/root.exe
/Users/rabbitus/ROOT/root/bin/root.exe:
         /Users/rabbitus/ROOT/root/lib/libCore.dylib (compatibility 
version 0.0.0, current version 0.0.0)
         /Users/rabbitus/ROOT/root/lib/libCint.dylib (compatibility 
version 0.0.0, current version 0.0.0)
         /Users/rabbitus/ROOT/root/lib/libHist.dylib (compatibility 
version 0.0.0, current version 0.0.0)
         /Users/rabbitus/ROOT/root/lib/libGraf.dylib (compatibility 
version 0.0.0, current version 0.0.0)
         /Users/rabbitus/ROOT/root/lib/libGraf3d.dylib (compatibility 
version 0.0.0, current version 0.0.0)
         /Users/rabbitus/ROOT/root/lib/libTree.dylib (compatibility 
version 0.0.0, current version 0.0.0)
         /Users/rabbitus/ROOT/root/lib/libMatrix.dylib (compatibility 
version 0.0.0, current version 0.0.0)
         /Users/rabbitus/ROOT/root/lib/libRint.dylib (compatibility 
version 0.0.0, current version 0.0.0)
         /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, 
current version 71.0.0)

otool -L radioGui
radioGui:
         libGuiUtilsX.dylib (compatibility version 0.0.0, current 
version 0.0.0)
         /Users/rabbitus/ROOT/root/lib/libCore.dylib (compatibility 
version 0.0.0, current version 0.0.0)
         /Users/rabbitus/ROOT/root/lib/libCint.dylib (compatibility 
version 0.0.0, current version 0.0.0)
         /Users/rabbitus/ROOT/root/lib/libHist.dylib (compatibility 
version 0.0.0, current version 0.0.0)
         /Users/rabbitus/ROOT/root/lib/libGraf.dylib (compatibility 
version 0.0.0, current version 0.0.0)
         /Users/rabbitus/ROOT/root/lib/libGraf3d.dylib (compatibility 
version 0.0.0, current version 0.0.0)
         /Users/rabbitus/ROOT/root/lib/libGpad.dylib (compatibility 
version 0.0.0, current version 0.0.0)
         /Users/rabbitus/ROOT/root/lib/libTree.dylib (compatibility 
version 0.0.0, current version 0.0.0)
         /Users/rabbitus/ROOT/root/lib/libRint.dylib (compatibility 
version 0.0.0, current version 0.0.0)
         /Users/rabbitus/ROOT/root/lib/libPostscript.dylib 
(compatibility version 0.0.0, current version 0.0.0)
         /Users/rabbitus/ROOT/root/lib/libMatrix.dylib (compatibility 
version 0.0.0, current version 0.0.0)
         /Users/rabbitus/ROOT/root/lib/libPhysics.dylib (compatibility 
version 0.0.0, current version 0.0.0)
         /Users/rabbitus/ROOT/root/lib/libGui.dylib (compatibility 
version 0.0.0, current version 0.0.0)
         /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, 
current version 71.0.0)

3, I followed your suggestion with:
    "gSystem->Load("/blah/bla/.../libGuiUtilsX.so");"
    Sorrowly, this does not have any effect on the outcome.

4, With regard to your guess that I am loading an outdated library:
    I deleted my HD before doing a clean install of Panther and XCode,
    however as Apple Developer I received Panther directly from ADC.
    "gcc_select" gives:
    gcc version 3.3 20030304 (Apple Computer, Inc. build 1495)
    I have installed the newest Fink 0.6.2 Binary Installer and
    installed the necessary packages from source code.
    I am always downloading the newest root version from CVS.
    Therefore, it is not quite clear to me which library could
    be outdated?

BTW, I cc the mail to roottalk, since your suggestions might
also be of interest to others, and maybe the other MacRooters
might also have some ideas.

Best regards and thank you for your continuous help
Christian


Edmond Offermann wrote:
> Dear Christian,
> 
> Make sure that "everything" is on one (!) line
> so
> EXTRA_CCFLAGS += blah
> 
> or
> EXTRA_CCFLAGS += \
> blah
> 
> but not
> EXTRA_CCFLAGS +=
> blah
> 
> Coming back to your problem . I am afraid that these
> compiler/loader flags are not going to solve your
> problem > I think that you are loading an outdated
> library either from root/apple or fink .
> 
> An interesting way to check what you are actually
> loading is done through the "otool" command .
> For instance, in order to see which libraries
> are loaded through the "root" command, I give
> the following otool command (see man otool):
> 
> otool -L /Users/eddyo/cern/bin/root-3.10.00/root.exe
> /Users/eddyo/cern/bin/root-3.10.00/root.exe:
>        
> /Users/eddyo/cern/lib/root-3.10.00//libCore.dylib
> (compatibility version 0.0.0, current version 0.0.0)
>        
> /Users/eddyo/cern/lib/root-3.10.00//libCint.dylib
> (compatibility version 0.0.0, current version 0.0.0)
>        
> /Users/eddyo/cern/lib/root-3.10.00//libHist.dylib
> (compatibility version 0.0.0, current version 0.0.0)
>        
> /Users/eddyo/cern/lib/root-3.10.00//libGraf.dylib
> (compatibility version 0.0.0, current version 0.0.0)
>        
> /Users/eddyo/cern/lib/root-3.10.00//libGraf3d.dylib
> (compatibility version 0.0.0, current version 0.0.0)
>        
> /Users/eddyo/cern/lib/root-3.10.00//libTree.dylib
> (compatibility version 0.0.0, current version 0.0.0)
>        
> /Users/eddyo/cern/lib/root-3.10.00//libMatrix.dylib
> (compatibility version 0.0.0, current version 0.0.0)
>        
> /Users/eddyo/cern/lib/root-3.10.00//libRint.dylib
> (compatibility version 0.0.0, current version 0.0.0)
>         /usr/lib/libSystem.B.dylib (compatibility
> version 1.0.0, current version 71.0.0)
>         libM.dylib (compatibility version 0.0.0,
> current version 0.0.0)
> 
> compare this with "otool -L radioGui" . The libraries
> and paths should be the same .
> 
> For me another suspect is "libGuiUtilsX.so" .
> In "guiInitX.C" , the
> 
> "gSystem->Load("libGuiUtilsX.so");"
> will let you pick it up from the first place it finds
> according to LD_LIBRARY_PATH (NOT DYLD_LIBRARY_PATH) .
> I would replace that statement with a hard-coded
> path , just to make sure:
> 
> "gSystem->Load("/blah/bla/.../libGuiUtilsX.so");"
> 
> If this is doing the trick, then we should
> investigate where the library is being picked up
> by looking at unix/src/TUnixSystem.cxx, in
> particular const char *TUnixSystem::GetDynamicPath()
> 
> Best Regards, Eddy
> 
> --- cstrato <cstrato@aon.at> wrote:
> 
>>Dear Eddy
>>
>>Sorry to ask you again, but now I tried to compile
>>using your MyConfig.mk file (of course I changed it
>>to my settings, see attachment) and got the error:
>>EXTRA_CCFLAGS: command not found
>>
>>Where are EXTRA_CCFLAGS, EXTRA_CXXFLAGS,
>>EXTRA_LDFLAGS
>>defined?
>>
>>Thank you
>>Christian
>>
>>
>>Edmond Offermann wrote:
>>
>>>Dear Christian,
>>>
>>>All you steps are fine . Just do at the end
>>>"make install" . The "install" specifier
>>>will cause a copy of all bin's lib's man's etc
>>>to the appropriate directories .
>>>Also make sure that your PATH and
>>
>>DYLD_LIBRARY_PATH
>>
>>>is set such that you pick up the stuff from the
>>>new place .
>>>
>>>I assume that the MyConfig.mk worked.
>>>
>>>Eddy
>>># Local macro to ROOT Makefile
>>
>># need to be placed in ../root folder
>># adapted from Eddie Offerman«s MyConfig.mk
>>
>>
>>CC = gcc
>>EXTRA_CCFLAGS += 
>>-I/Users/testuser/ROOT/cern/include/root-3.10.01/
>>-DPower_Macintosh -DDarwin -Wall
>>-Wmissing-prototypes
>>-Wno-unknown-pragmas -pipe -fsigned-char -fno-common
>>-D_REENTRANT -g  -I./
>>CXX = g++
>>LD  = g++
>>EXTRA_CXXFLAGS +=  
>>-I/Users/testuser/ROOT/cern/include/root-3.10.01/
>>-DPower_Macintosh -DDarwin -w  -pipe -fsigned-char
>>-fno-common -D_REENTRANT -fsigned-char -g  -I./
>>EXTRA_LDFLAGS = -Llib 
>>-L/Users/testuser/ROOT/cern/lib/root-3.10.01/ 
>>-L/Users/testuser/ROOT/cern/lib/  -O -Xlinker
>>-bind_at_load
>>-flat_namespace
>>XLIBS += -L/usr/X11R6/lib -lX11
>>
>>
> 
> 
> 



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:17 MET