[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: fresh checkout and compile



Hi Mark and David,

FYI, the fresh checkout and compile now works for me as long as I do  
one additional step of rearranging include files:

 >  svn co https://halldsvn.jlab.org/repos/trunk/src
 >  svn co https://halldsvn.jlab.org/repos/trunk/calib
 >  mkdir include
 >  cd include
 >  ln -s ../src/libraries/include/*.h .
 >  cd ../src
 >  make

Is that the way things are intended to be done?

Thanks,
Ryan

On May 30, 2009, at 7:35 PM, Mark M. Ito wrote:

> Thanks Dave. You saved my Saturday. And I do like the solution.
>
> David Lawrence wrote:
>> Hi Guys,
>>
>>   The simplest way to handle this (one can debate if it's the best)  
>> is to simply add the proper sequencing to the existing mechanism in  
>> the top level Makefile. Namely, add the libraries/include and  
>> programs/Utilities/hddm to the DIRS variable before the libraries  
>> directory is added.
>>
>>   It turns out there were a couple of other hiccups though that  
>> needed to be fixed for this specific case:
>>
>> 1. The hddm-c program was installed into $(OSNAME) rather than $ 
>> (BMS_OSNAME)
>> 2. The Makefile in libraries/HDDM assumed hddm-c was already in  
>> your path instead of
>>  explicitly pointing to the one from the current build (a potential  
>> problem too if hddm-c
>>  ever changed and you have hddm-c from another build in your path).
>>
>> I've gone ahead and made all of these changes and checked them in.  
>> It seems to build a fresh checkout fine for me now so hopefully it  
>> will work for everyone else giving Mark a little breathing room to  
>> implement a more ambitious, longer term solution as he sees fit.
>>
>> Regards,
>> -David
>>
>> Ryan Mitchell wrote:
>>> Hi Mark,
>>>
>>> Thanks for looking at this.  I see the chicken and egg problem.   
>>> Of course having all this done automatically (or having the HDDM  
>>> and HDDS packages separated out) would be ideal, but having the  
>>> user take a few extra steps isn't absolutely terrible either, as  
>>> long as its documented, imo.
>>>
>>> Thanks,
>>> Ryan
>>>
>>>
>>> On May 29, 2009, at 9:11 PM, Mark M. Ito wrote:
>>>
>>>> Ryan,
>>>>
>>>> You are quite right; one should not have to struggle as you did.
>>>>
>>>> This "feature" was introduced by me, I am sorry to say.  I made  
>>>> the switch to having event.xml be the authoritative file.  
>>>> Unfortunately, this introduces a two-level chicken and egg  
>>>> problem. Level 1: you need to build hddm-c on the programs side  
>>>> before you do a make on the libraries side in HDDM. And level 2:  
>>>> you need to do a make in the include directory on the libraries  
>>>> side in the include directory before you do the aforementioned  
>>>> make on the programs side. Suffice it to say the current make  
>>>> system was not designed to deal with an authoritative event.xml.
>>>>
>>>> By the way, your solution is quite reasonable. Doing all this  
>>>> automatically is on my list. You just moved it to the top.  
>>>> Probably should have been there before.
>>>>
>>>> I should say that I think both HDDM and HDDS should perhaps (in  
>>>> the future) be broken out of our standard tree and stand  
>>>> independently. They are really tools, and have no particular  
>>>> knowledge of GlueX or Hall D or any other particular geometry or  
>>>> data format. That way these tools could be built first (like we  
>>>> build ROOT and CERNLIB) and the GlueX-specific build items could  
>>>> go ahead and use them. So, for example, the hddm-c binary would  
>>>> exist before the GlueX build starts.
>>>>
>>>> -- Mark
>>>>
>>>>
>>>>
>>>>
>>>> Ryan Mitchell wrote:
>>>>> Hi All,
>>>>>
>>>>> I've been running into some problems when I do a fresh checkout  
>>>>> and compile of the Hall-D software.  Following the instructions  
>>>>> online I do...
>>>>>
>>>>> >  cd $HALLD_HOME
>>>>> >  svn co https://halldsvn.jlab.org/repos/trunk/src
>>>>> >  svn co https://halldsvn.jlab.org/repos/trunk/calib
>>>>> >  cd $HALLD_HOME/src
>>>>> >  make
>>>>>
>>>>> The compilation makes it all the way to the librararies/HDDM  
>>>>> directory before it complains about not being able to find the  
>>>>> hddm-c application.
>>>>>
>>>>> I can get things to work eventually.  For example:
>>>>>
>>>>> >  cd $HALLD_HOME/include
>>>>> >  ln -s $HALLD_HOME/src/libraries/include/*.h .
>>>>> >  cd $HALLD_HOME/src/programs/Utilities/
>>>>> >  make
>>>>> >  setenv PATH $HALLD_HOME/src/programs/Utilities/hddm/\:$PATH
>>>>> >  cd $HALLD_HOME/src
>>>>> >  make
>>>>>
>>>>> but it would be nice (and less frustrating) if the user (me, for  
>>>>> example) didn't have to struggle this much.  Is there an expert  
>>>>> who could take a look? Did I do something wrong?
>>>>>
>>>>> Thanks,
>>>>> Ryan
>>>>>
>>>>>
>>>>>
>>>
>>