1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 <2018> 2019 2020 2021 2022 2023 2024 2025 | 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 <2018> 2019 2020 2021 2022 2023 2024 2025 |
<== 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 19:30:52 +0000 |
Andrew,
For the sake of completeness:
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.
Note that if I go to iocBoot/iocmyExample and run make (GNU Make 3.82) I get
"make envPaths" works
Contents of iocboot/iocmyExample is
I did "make -d" in iocBoot/iocmyExample and reproduce the tail here:
John
From: Andrew Johnson <[email protected]>
Sent: Monday, April 23, 2018 11:49 AM To: John Dobbins Cc: [email protected] Subject: Re: base-3.15.5/templates/makeBaseApp/top/iocBoot/ioc/Makefile@Common Hi John,
On 04/22/2018 04:08 PM, John Dobbins wrote: > I am installing EPICS 3.15.5 on a new filesystem, host is scientific > linux 7. Downloaded 3.15.5, set EPICS_HOST_ARCH=linux-x86_64, ran make > to build base. > > Next ran makeBaseApp.pl for an example IOC. > > however envPaths does not appear in iocBoot/iocmyExample when I run make > in IOC $(TOP) Does your Makefile still contain this line? TARGETS = envPaths That's what tells GNUmake to construct that file. > I see that the Makefile in iocBoot/iocmyExample is missing the line > > ARCH = linux-x86_64 > > Upon investigating I see that > > base-3.15.5/templates/makeBaseApp/top/iocBoot/ioc/Makefile@Common > > is missing the line > > ARCH = _ARCH_ > > which appears in my previous installations (3.14.12.2). > > 1) should this line still be there (restoring it fixes the problem) That ARCH variable was explicitly removed from that template file with this git commit: > commit 230603f4acf03a8cf147e502626e01a87dae66ce > Author: Andrew Johnson <[email protected]> > Date: Thu Apr 28 18:50:41 2016 -0500 > > Remove ARCH from cdCommands and envPaths files > > Set it in iocshRegisterCommon() instead. > Remove ARCH from iocBoot/ioc/Makefile@Common templates. It shouldn't be needed any more for Unix-like host targets, the envPaths file is now architecture-neutral; my RHEL7 box happily creates it both with and without ARCH being set. The ARCH variable is still needed to create some of the other iocBoot/ioc files though, such as cdCommands (used for VxWorks targets) and dllPath (Windows targets). > 2) if yes, any idea where I went astray? Not yet. This was from inside my iocBoot/iochost directory created from the example template: > tux% make clean > rm -f cdCommands envPaths dllPath.bat relPaths.sh > tux% cat Makefile > TOP = ../.. > include $(TOP)/configure/CONFIG > TARGETS = envPaths > include $(TOP)/configure/RULES.ioc > tux% make > perl -CSD /home/phoebus/ANJ/epics/base/3.15/bin/linux-x86_64/convertRelease.pl -t /home/phoebus3/ANJ/apps/3.15-example envPaths > tux% cat envPaths > epicsEnvSet("IOC","iochost") > epicsEnvSet("TOP","/home/phoebus3/ANJ/apps/3.15-example") > epicsEnvSet("EPICS_BASE","/home/phoebus/ANJ/epics/base/3.15") > tux% - 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 |