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 | 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 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Problem with DB_INSTALLS in Makefile |
From: | Mark Rivers via Tech-talk <tech-talk at aps.anl.gov> |
To: | "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Wed, 31 Aug 2022 14:40:40 +0000 |
I just tested the template file generation in asyn with this command:
/home/epics/devel/asyn/bin/linux-x86_64/makeSupport.pl -t streamSCPI test4
It worked fine, and generated this test4/test4Sup directory:
**********************
corvette:~/scratch/test4/test4Sup>ls -l
total 12
-rw-rw-r-- 1 epics domain users 256 Aug 31 08:44 Makefile
-rw-rw-r-- 1 epics domain users 2032 Aug 31 08:07 devtest4.db
-rw-rw-r-- 1 epics domain users 190 Aug 31 08:07 devtest4.proto
**********************
This is the Makefile it generated:
**********************
corvette:~/scratch/test4/test4Sup>more Makefile
TOP=..
include $(TOP)/configure/CONFIG
#=======================================
# Install .dbd and .db files
DB_INSTALLS += devtest4.db
DB_INSTALLS += $(TOP)/test4Sup/devtest4.proto
#=======================================
include $(TOP)/configure/RULES
**********************
The Makefile looks OK to me. I am not sure why the proto file has an explicit path, and the .db file did not, since they are in the same directory.
However, when I run it I get the following error:
**********************
corvette:~/scratch/test4/test4Sup>make
make -C O.linux-x86_64 -f ../Makefile TOP=../.. \
T_A=linux-x86_64 install
make[1]: Entering directory `/home/epics/scratch/test4/test4Sup/O.linux-x86_64'
make[1]: *** No rule to make target `devtest4.db', needed by `../../db/devtest4.db'. Stop.
make[1]: Leaving directory `/home/epics/scratch/test4/test4Sup/O.linux-x86_64'
make: *** [install.linux-x86_64] Error 2
**********************
If I change the Makefile to use DB rather than DB_INSTALLS for the first file, it works fine:
**********************
corvette:~/scratch/test4/test4Sup>more Makefile
TOP=..
include $(TOP)/configure/CONFIG
#=======================================
# Install .dbd and .db files
DB += devtest4.db
DB_INSTALLS += $(TOP)/test4Sup/devtest4.proto
#=======================================
include $(TOP)/configure/RULES
**********************
**********************
corvette:~/scratch/test4/test4Sup>make
perl -CSD /usr/local/epics-devel/base-7.0.6.1/bin/linux-x86_64/makeMakefile.pl O.linux-x86_64 ../..
perl -CSD /usr/local/epics-devel/base-7.0.6.1/bin/linux-x86_64/makeMakefile.pl O.vxWorks-ppc32 ../..
mkdir -p O.Common
make -C O.linux-x86_64 -f ../Makefile TOP=../.. \
T_A=linux-x86_64 install
make[1]: Entering directory `/home/epics/scratch/test4/test4Sup/O.linux-x86_64'
Installing ../../db/devtest4.db
mkdir ../../db
Installing ../../db/devtest4.proto
make[1]: Leaving directory `/home/epics/scratch/test4/test4Sup/O.linux-x86_64'
make -C O.vxWorks-ppc32 -f ../Makefile TOP=../.. \
T_A=vxWorks-ppc32 install
make[1]: Entering directory `/home/epics/scratch/test4/test4Sup/O.vxWorks-ppc32'
make[1]: Nothing to be done for `install'.
make[1]: Leaving directory `/home/epics/scratch/test4/test4Sup/O.vxWorks-ppc32'
**********************
It seems like DB_INSTALLS works if the file has a path, but does not work if the file is in the current directory?
This is base 7.0.6.1.
Mark
|