On Fri, Jun 17, 2011 at 3:02 AM, Mike Frysinger <[email protected]> wrote:
> On Monday, June 13, 2011 17:35:24 Jie Zhang wrote:
>> Btw, I just tried your patch. It did not work:
>>
>> make[3]: Entering directory `/home/jie/sources/urjtag/svn/trunk/src/svf'
>>   YACC   svf_bison.c
>>   CC     svf.lo
>>   LEX    svf_flex.c
>>   CC     libsvf_flex_la-svf_flex.lo
>> svf.c:56:23: fatal error: svf_bison.h: No such file or directory
>> compilation terminated.
>> make[3]: *** [svf.lo] Error 1
>> make[3]: *** Waiting for unfinished jobs....
>> svf_flex.l:47:23: fatal error: svf_bison.h: No such file or directory
>> compilation terminated.
>> make[3]: *** [libsvf_flex_la-svf_flex.lo] Error 1
>> updating svf_bison.h
>> make[3]: Leaving directory `/home/jie/sources/urjtag/svn/trunk/src/svf'
>> make[2]: *** [all-recursive] Error 1
>> make[2]: Leaving directory `/home/jie/sources/urjtag/svn/trunk/src'
>> make[1]: *** [all-recursive] Error 1
>> make[1]: Leaving directory `/home/jie/sources/urjtag/svn/trunk'
>> make: *** [all] Error 2
>
> i dont see how this is possible.  my patch didnt touch src/svf/, only
> src/bsdl/.  and the contents of one subdir have no bearing at all on any other
> when it comes to lex/yacc.
>
Since your previous patch also remove OBJEXT override from svf subdir,
but your this patch only touch bsdl.

>> I found this with
>>
>> make

Oops, I meat to type:

make maintainer-clean

but your "git clean -x -d" should have the same effect.

>> ./configure --enable-maintainer-mode
>> make -j4
>
> i just tried the same and it worked fine.  then i tried:
>
> git clean -x -d
> autoreconf -i -s -v -f
> ./configure
> make -j4
> ./configure --enable-maintainer-mode
> make -j4
> make clean
> make -j4
>
> still worked
>
I don't know if you have a local patch for src/svf/Makefile.am.

But even for src/bsdl/Makefile.am with your patch, it still has very
tricky issue. After a successful make, make some changes to
src/bsdl/bsdl_bison.y, like remove or insert some white spaces between
"int" and "integer" in the following code:

%union {
  int   integer;
  char *str;
}

then make, I got:

make[3]: Entering directory `/home/jie/sources/urjtag/git/urjtag/src/bsdl'
  YACC   bsdl_bison.c
updating bsdl_bison.h
  CC     bsdl_bison.lo
  CCLD   libbsdl.la
make[3]: Leaving directory `/home/jie/sources/urjtag/git/urjtag/src/bsdl'

You can see that some targets depending on bsdl_bison.h are not remade.

Then make some change src/bsdl/bsdl_bison.y again, remove or insert
white spaces on the same line or revert previous changes, then make, I
got

make[3]: Entering directory `/home/jie/sources/urjtag/git/urjtag/src/bsdl'
  YACC   bsdl_bison.c
updating bsdl_bison.h
  CC     vhdl_bison.lo
  CC     bsdl_bison.lo
  CC     bsdl.lo
  CC     bsdl_sem.lo
  CCLD   libbsdl.la
  CC     libbsdl_flex_la-vhdl_flex.lo
  CC     libbsdl_flex_la-bsdl_flex.lo
  CCLD   libbsdl_flex.la
make[3]: Leaving directory `/home/jie/sources/urjtag/git/urjtag/src/bsdl'

This time the targets depending on basl_bison.h got remade.

If you change src/bsdl/bsdl_bison.y again, you will got the first case
again. And then the second case, repeating...

I tried to help to find the root cause of this issue, but couldn't
find it. Your patch might look simple, but it's actually not that
simple. It's much trickier than it looks like.


Regards,
Jie

------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
UrJTAG-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/urjtag-development

Reply via email to