[subexp-daq] Possible problem in Makefile of NURDLIB

Hans Toshihide Törnqvist hans.tornqvist at chalmers.se
Mon Apr 15 15:01:15 CEST 2024


Dear Günter,

On 2024-04-15 12:51, Weber, Guenter Dr. wrote:
> Dear Håkan,
> 
> 
> thank you very much for the explanations and the modifications.
> 
> 
> I see that you updated the automatic determination of the VULOM4_FW 
> variable in the NURDLIB Makefile. Just for clarification: it will always 
> come up with the VULOM4B version, even though there might be a VULOM4 
> module in the setup, as the firmware for both modules is identical for 
> the purpose of this compilation, right?
> 
> 
> Moreover, to make things more comfortable for the user, I added the 
> following code to the Makefile:
> 
> 
> ifeq (,$(TRLOII_PATH))
> TRLOII_PATH_TEST:=$(shell pwd)/../trloii
> ifeq ("$(wildcard $(TRLOII_PATH_TEST))", "")
> TRLOII_ERROR:=WARNING: Makefile guessed $(TRLOII_PATH_TEST), but folder 
> does not exist!
> $(call infovar,TRLOII_ERROR)
> else
> TRLOII_PATH:=$(TRLOII_PATH_TEST)
> endif
> endif
> 
> This assumes that it is unlikey that you want to compile NURDLIB without 
> TRLOII being present. But maybe, if it is desired to decide if NURDLIB 
> should compile with or without TRLOII it is better to have this as an 
> explict option for "make" instead of doing it implicitly by having the 
> TRLOII_PATH variable being set by hand or not.

If ../trloii exists and nconf runs as expected this works also on 
non-VME systems. But I'm not too keen on having this warning where this 
is an expected outcome. Will think about it.

Cheers,
Hans

> Best greetings
> 
> Günter
> 
> 
> 
> ------------------------------------------------------------------------
> *Von:* subexp-daq <subexp-daq-bounces at lists.chalmers.se> im Auftrag von 
> Håkan T Johansson <f96hajo at chalmers.se>
> *Gesendet:* Samstag, 13. April 2024 03:50:36
> *An:* Discuss use of Nurdlib, TRLO II, drasi and UCESB.
> *Betreff:* Re: [subexp-daq] Possible problem in Makefile of NURDLIB
> 
> Dear Günter,
> 
> we think that we have managed to solve the issues at hand (there were
> multiple):
> 
> - The missing TRIDI compile: r3bfuser compiles (unconditionally) with both
>     tridi and vulom support if it compiles with one of them.  (tridi is a
>     module with similar hardware as the vulom).  Now the compile
>     instructions also include to get the tridi things compiles.
> 
> - The VULOM4_FW now only picks one version, which should be enough.
>     Those named _trlo actually have the same register layout, and
>     find_firmwares.pl point them to the same, so any should do.
> 
> (Please see the updated instructions in the other mail.  Only the
> compilation sequence had additions, not the download parts.  But nurdlib
> and r3bfuser repositores need to be updated.
> 
> For this:
> 
>> Reporting compilation errors when they happen and why they happen would 
>> be really very much appreciated
> 
> I am not sure what can be done when the issues are within the
> feature-finding builds.  I.e., when those fail, it just means that
> certains options are not available.  Problem is when later programs rely
> on them.
> 
> if anything, the later programs should then produce more specific errors
> telling what they are missing.  That might be doable with some #error
> macros, if they do not have complex makefiles to find features.
> 
> The other thing might be that 'make showconfig' is too cluttered.  There
> are essentially two kinds of features.  The uninteresting ones where the
> systems need to find one working option out of many.  If no option works,
> things will stop, as it cannot continue.
> 
> The more interesting selections are the ones where it can get away with no
> support, i. this case e.g. not compiling tridi support.
> 
> Perhaps one should have a 'make showconfig_all' which works as the one
> now, and 'make showconfig' only giving the important ones.
> 
> Cheers,
> Håkan
> 
> 
> 
> On Fri, 12 Apr 2024, Weber, Guenter Dr. wrote:
> 
>> 
>> Dear friends,
>> 
>> 
>> on line 108 to 110 of the Makefile there is an automatic setting of the
>> VULOM4_FW parameter:
>> 
>> 
>>   ifeq (,$(VULOM4_FW))
>>    VULOM4_FW:=$(shell ls $(TRLOII_PATH)/trloctrl | grep _trlo | $(SED)
>> 's,fw_,,;s,_trlo.*,,')
>>   endif
>> 
>> However, if I let this run (i.e. VULOM4_FW is not set by hand) the outcome
>> is as follows:
>> 
>> 
>> VULOM4_FW = "1409285e 68f8955e 6e4ba1a9 a73c5093 af33ed35"
>> 
>> 
>> My understandig is that there should only be a single number selected
>> (1409285e for VULOM4B and 6e4ba1a9 for VULOM4). I checked what the "ls"
>> command produces on two systems:
>> 
>> 
>> RIO4L-2 mbsdaq > ls $TRLOII_PATH/trloctrl
>> Makefile  examples/  find_firmwares.pl*  firmwaredirs  fw_0866c243_rfx1/ 
>> fw_1409285e_trlo@  fw_5e8f5ef4_tridi/  fw_68f8955e_trlo_all_in/ 
>> fw_6e4ba1a9_trlo/  fw_a1729cda_rfx0/  fw_a73c5093_trlo@ 
>> fw_af33ed35_trlo_big/  trloctrl.sh*  trlolib/
>> 
>> RIO4-MCAL-1 mbsdaq > ls $TRLOII_PATH/trloctrl
>> Makefile  examples/  find_firmwares.pl*  firmwaredirs  fw_0866c243_rfx1/ 
>> fw_1409285e_trlo@  fw_5e8f5ef4_tridi/  fw_68f8955e_trlo_all_in/ 
>> fw_6e4ba1a9_trlo/  fw_a1729cda_rfx0/  fw_a73c5093_trlo@ 
>> fw_af33ed35_trlo_big/  tridi_log.txt  trloctrl.sh*  trlolib/  vulom_log.txt
>> 
>> 
>> RIO4L-2 is the one I am working on right now with the VULOM4, whereas
>> RIO4-MCAL-1 is the system already running with VULOM4B.
>> 
>> 
>> To me it looks like the code in the Makefile is not working as intended,
>> right?
>> 
>> 
>> 
>> 
>> 
>> Best greetings
>> 
>> Günter
>> 
>> 
>> 
>>
> 


More information about the subexp-daq mailing list