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: makefile question about HDEPENDS |
From: | Simon Rose via Tech-talk <tech-talk at aps.anl.gov> |
To: | timesir <mrlong336 at gmail.com>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Thu, 25 May 2023 14:20:39 +0000 |
Hi timesir – This is how the build system generates the .d (dependency) files for each of the source files. See
https://github.com/epics-base/epics-base/blob/7.0/configure/CONFIG_COMMON#L135 for the definition. The HDEPENDS.c is the mechanism to generate these files; these are also in the same file, see
https://github.com/epics-base/epics-base/blob/7.0/configure/CONFIG_COMMON#L378. For example, if HDEPENDS_METHOD = COMP then it uses the C/C++ compiler to generate these files; otherwise it uses mkmf (included in tools) For certain architectures (e.g. gnu ones), these are used to compile source files, see here:
https://github.com/epics-base/epics-base/blob/7.0/configure/RULES_BUILD#L117 – this will attempt to include all of these .d file and if (as above) HDEPENDS_METHOD = COMP then it will try to generate those .d files by running $(HDEPENDS.c) (a.k.a. the actual
compiler), which will generate both the dependency file and the resulting object file at the same time. Cheers, Simon From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of timesir via Tech-talk <tech-talk at aps.anl.gov> Dear community: |