EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: base-3.15.5/templates/makeBaseApp/top/iocBoot/ioc/Makefile@Common
From: John Dobbins <[email protected]>
To: Andrew Johnson <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: Mon, 23 Apr 2018 20:38:12 +0000

Andrew,


In fact on my machine 


>echo $ARCH
x86_64

Unsetting it fixed the problem. 

Thanks for your follow through. 

John





From: Andrew Johnson <[email protected]>
Sent: Monday, April 23, 2018 4:24 PM
To: John Dobbins
Cc: [email protected]
Subject: Re: base-3.15.5/templates/makeBaseApp/top/iocBoot/ioc/Makefile@Common
 
Hi John.

On 04/23/2018 02:30 PM, John Dobbins wrote:
> I restarted from scratch with 3.15.5 and got same result.
> Did same with 3.15.4 and got same result.
> 3.15.3 works. All of this is consistent with the date of the change you
> indicated.

Interesting. I just switched to a different account so I shouldn't be
relying on any personal configurations and created a new makeBaseApp
example IOC from a different Base-3.15.5 tree, and the result works.
There's something different about your setup; I'm running RHEL-7.5, but
I also tried it on RHEl-6.9 with no difference. The difference must be
due to something in our environments (more below).

> I did  "make -d"  in iocBoot/iocmyExample  and reproduce the tail here:
>
>     Updating goal targets....
>     Considering target file `all'.
>      File `all' does not exist.
>       Considering target file `install'.
>        File `install' does not exist.
>         Considering target file `buildInstall'.
>          File `buildInstall' does not exist.
>          Finished prerequisites of target file `buildInstall'.
>         Must remake target `buildInstall'.
>         Successfully remade target file `buildInstall'.
>        Finished prerequisites of target file `install'.
>       Must remake target `install'.
>       Successfully remade target file `install'.
>      Finished prerequisites of target file `all'.
>     Must remake target `all'.
>     Successfully remade target file `all'.
>     make: Nothing to be done for `all'.
>
> The target envPaths is not considered. This used to be considered after
> buildInstall.

For comparison, here's my tail from 'make -d':

> Updating goal targets....
> Considering target file `all'.
>  File `all' does not exist.
>   Considering target file `install'.
>    File `install' does not exist.
>     Considering target file `buildInstall'.
>      File `buildInstall' does not exist.
>       Considering target file `envPaths'.
>        File `envPaths' does not exist.
>         Considering target file `../../configure/RELEASE'.
>         File `../../configure/RELEASE' was considered already.
>         Considering target file `../../configure/CONFIG_SITE'.
>         File `../../configure/CONFIG_SITE' was considered already.
>        Finished prerequisites of target file `envPaths'.
>       Must remake target `envPaths'.
> Invoking recipe from /iocapps2/R3.15.5/base/3-15-5-aes1/configure/RULES.ioc:34 to update target `envPaths'.
> perl -CSD /iocapps2/R3.15.5/base/3-15-5-aes1/bin/linux-x86_64/convertRelease.pl -t /home/phoebus/EPICS/TEMP/3.15-example envPaths
> Putting child 0x25652b0 (envPaths) PID 24690 on the chain.
> Live child 0x25652b0 (envPaths) PID 24690
> Reaping winning child 0x25652b0 PID 24690
> Removing child 0x25652b0 PID 24690 from chain.
>       Successfully remade target file `envPaths'.
>      Finished prerequisites of target file `buildInstall'.
>     Must remake target `buildInstall'.
>     Successfully remade target file `buildInstall'.
>    Finished prerequisites of target file `install'.
>   Must remake target `install'.
>   Successfully remade target file `install'.
>  Finished prerequisites of target file `all'.
> Must remake target `all'.
> Successfully remade target file `all'.

So in my case envPaths is seen as a dependency of buildInstall, but it
isn't in yours. The appropriate build rules are found in the base-3.15
configure/RULES.ioc file which was not modified when the ARCH variable
was removed from those Makefiles, but it looks like it probably should
have been. This part explains why:

> ifeq ($(filter $(ARCH),$(BUILD_ARCHS)),$(strip $(ARCH)))
>     buildInstall$(DIVIDER)$(ARCH) buildInstall: $(TARGETS)
>
>     clean$(DIVIDER)$(ARCH) clean:
>        $(RM) cdCommands envPaths dllPath.bat relPaths.sh
> else
>     buildInstall$(DIVIDER)$(ARCH) buildInstall:
>     clean$(DIVIDER)$(ARCH) clean:
> endif

That if condition assumes that ARCH is set and is one of the words in
BUILD_ARCHS. If ARCH is unset the if condition is apparently evaluated
as true, but if your environment has the environment variable ARCH set
to something that is not a configured EPICS build architecture the else
branch would be taken and the contents of TARGETS will be ignored.

I set ARCH in my environment to garbage and got the same results as you.

Could you try 'echo $ARCH' and see what you get?

The proper solution might be to set ARCH to $(EPICS_HOST_ARCH) in
Makefile@Common but I need to think about this a bit to decide what the
best fix is. There should be other changes to that file if it is to work
properly with ARCH unset.

Thanks for helping track this down!

- Andrew

--
Arguing for surveillance because you have nothing to hide is no
different than making the claim, "I don't care about freedom of
speech because I have nothing to say." -- Edward Snowdon

Replies:
Re: base-3.15.5/templates/makeBaseApp/top/iocBoot/ioc/Makefile@Common Andrew Johnson
References:
base-3.15.5/templates/makeBaseApp/top/iocBoot/ioc/Makefile@Common John Dobbins
Re: base-3.15.5/templates/makeBaseApp/top/iocBoot/ioc/Makefile@Common Andrew Johnson
Re: base-3.15.5/templates/makeBaseApp/top/iocBoot/ioc/Makefile@Common John Dobbins
Re: base-3.15.5/templates/makeBaseApp/top/iocBoot/ioc/Makefile@Common Andrew Johnson

Navigate by Date:
Prev: Re: base-3.15.5/templates/makeBaseApp/top/iocBoot/ioc/Makefile@Common Andrew Johnson
Next: Re: base-3.15.5/templates/makeBaseApp/top/iocBoot/ioc/Makefile@Common Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: base-3.15.5/templates/makeBaseApp/top/iocBoot/ioc/Makefile@Common Andrew Johnson
Next: Re: base-3.15.5/templates/makeBaseApp/top/iocBoot/ioc/Makefile@Common Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
ANJ, 23 Apr 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·