2002 2003 2004 2005 <2006> 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 | Index | 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: | Re: 3.14.8 / cygwin dependency |
From: | Ralph Lange <[email protected]> |
To: | EPICS Core Talk <[email protected]> |
Date: | Tue, 24 Jan 2006 11:17:01 +0100 |
Hi - I was thinking and talking about this issue a bit more:Now I would say it's generally bad to use wildcards for what is done within make target chains, as this introduces hidden dependencies that make never has a chance to know about and resolve correctly.
Janet (or Jeff): What was this wildcard introduced for? As it's not for the Borland (by ifdef) and not for the Microsoft (by my experience), it can only affect the MinGW or Cygnus compilers. Are there other files generated apart from the target dll or exe? Or does the compiler name the target dll or exe different from the usual make target name? Wouldn't it be possible and more appropriate to add targets or change the target name in that case?
Cheers, Ralph Jeff Hill wrote:
Thanks Rlaph.Actually surprised that I havent seen this here. Jeff-----Original Message-----From: Ralph Lange [mailto:[email protected]] Sent: Monday, January 23, 2006 7:47 AMTo: Janet Anderson Cc: EPICS Core Talk Subject: Re: 3.14.8 / cygwin dependency Hi Janet, I found the change that broke the non-cygwin build: In RULES_BUILD 1.88.2.14 the line to install binaries was changed from @$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN) to ifdef WIN32 @$(INSTALL_PRODUCT) -d -m 555 $<* $(INSTALL_BIN) else @$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN) endifImmediately afterwards the wildcard was taken back for BORLAND compilations. The problem is that the standard Windows shell - or whatever make uses to call programs on non-cygnus systems - does not allow wildcards in this place. Changing the "$<*" to "$(wildcard $<*)" lets make do the wildcard job, which should be the better option, anyway.What exactly were you trying to "catch" with that wildcard? For my Microsoft non-cygnus system I actually can't think of any other files that would be matched by it.I didn't commit any changes to CVS as I wasn't sure about the usefulness of that wildcard. So - if we need the wildcard, please change it as shown above, which will work everywhere. If we don't need the wildcard, going back to the traditional line is fine with me.Cheers, Ralph
-- Ralph Lange [email protected] Tel: +49 30 6392-2117 BESSY Controls Group www.bessy.de Fax: ... -4859