On Fri, Jul 31, 2009 at 8:03 AM, Glenn
Coombs<glenn.coo...@googlemail.com> wrote:
...
> I encountered this issue when I added the eval at line 18 so that I could
> set CHIPNAME to the uppercase of the filename stub.

Is there some reason that you didn't use the solution that works in
every version of make that has ever been written and instead used a
complex solution that only has a chance of working in the most recent
versions of a single make implementation?

%_struct.h: %_struct.def
ifdef VERBOSE
        CHIPNAME=`echo $* | tr a-z A-Z` ; \
        $(REGCONV) -chipname $$CHIPNAME $< -simout $@
else
        @CHIPNAME=`echo $* | tr a-z A-Z` ; \
        echo Creating regconv header file CHIPNAME=$$CHIPNAME: $(notdir $@) ; \
        $(REGCONV) -chipname $$CHIPNAME $< -simout $@
endif


If the duplication bugs you:

set_chipname = CHIPNAME=`echo $* | tr a-z A-Z`
regconv = $(REGCONV) -chipname $$CHIPNAME $< -simout $@
ifdef VERBOSE
  describe = echo "$(regconv)"
else
  describe = echo "Creating regconv header file CHIPNAME=$$CHIPNAME:
$(notdir $@)"
endif

%_struct.h: %_struct.def
        @${set_chipname}; ${describe}; ${regconv}


(Yeah, it's a bug in make that it crashes on your makefile...but that
makefile just seems like the wrong way to solve your problem.)


Philip Guenther


_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to