bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] expand debugging options to provide tracing of call to $(eval an


From: Norbert Thiebaud
Subject: [PATCH] expand debugging options to provide tracing of call to $(eval and $(call
Date: Fri, 24 Jun 2011 19:48:55 -0500

At LibreOffice we are migrating our build system from a customized
dmake to gmake.
The design of the build system used involved a fairly intensive use of
$(eval and $(call to implement an 'Object-Oriented' kind of system.

This is nice when things works, but it is pretty hard to find bug in
the build system itself...

So, to help internally to debug these problems I wrote a patch based
on make 3.82, to add --debug=c and --debug=e which activate tracing
for $(call and $(eval respectively

the patch can be found at
http://cgit.freedesktop.org/libreoffice/contrib/dev-tools/plain/misc_patches/make-3.82.lo_trace.patch?id=a4f03f17f42ded70e6a3c49cf4e9a90eaf3c12ca

In the spirit of 'pushing upstream', I submit this patch here, under
GPLv3+ terms.

Regards,

Norbert Thiebaud


Below is an example of output produced by this patch:

[...]
  ### call $(gb_Library_set_include) -->
  ### arg 0 for call $(gb_Library_set_include) is 'gb_Library_set_include'
  ### arg 1 for call $(gb_Library_set_include) is 'msword'
  ### arg 2 for call $(gb_Library_set_include) is '
-I/lo/libo/clone/writer/sw/source/core/inc
-I/lo/libo/clone/writer/sw/source/ui/inc
-I/lo/libo/clone/writer/sw/source/filter/inc
-I/lo/libo/clone/writer/sw/inc/pch -I/lo/libo/clone/writer/sw/inc
-I/lo/libo/solver/340/unxlngx6.pro/workdir/inc/sw/sdi
-I/lo/libo/solver/340/unxlngx6.pro/workdir/Misc/sw/ $(INCLUDE)
-I/lo/libo/solver/340/unxlngx6.pro/inc/offuh
-I/lo/libo/solver/340/unxlngx6.pro/inc/sw '
   ### call $(gb_Library_get_linktargetname) -->
   ### arg 0 for call $(gb_Library_get_linktargetname) is
'gb_Library_get_linktargetname'
   ### arg 1 for call $(gb_Library_get_linktargetname) is 'msword'
   ### arg 2 for call $(gb_Library_get_linktargetname) is implicit
    ### call $(gb_Library_get_filename) -->
    ### arg 0 for call $(gb_Library_get_filename) is 'gb_Library_get_filename'
    ### arg 1 for call $(gb_Library_get_filename) is 'msword'
    ### arg 2 for call $(gb_Library_get_filename) is implicit
    ### call to $(gb_Library_get_filename) expended into
libmswordlo.so
    ### call $(gb_Library_get_filename) <--
   ### call to $(gb_Library_get_linktargetname) expended into
Library/libmswordlo.so
   ### call $(gb_Library_get_linktargetname) <--
   ### call $(gb_LinkTarget_set_include) -->
   ### arg 0 for call $(gb_LinkTarget_set_include) is
'gb_LinkTarget_set_include'
   ### arg 1 for call $(gb_LinkTarget_set_include) is 'Library/libmswordlo.so'
   ### arg 2 for call $(gb_LinkTarget_set_include) is '
-I/lo/libo/clone/writer/sw/source/core/inc
-I/lo/libo/clone/writer/sw/source/ui/inc
-I/lo/libo/clone/writer/sw/source/filter/inc
-I/lo/libo/clone/writer/sw/inc/pch -I/lo/libo/clone/writer/sw/inc
-I/lo/libo/solver/340/unxlngx6.pro/workdir/inc/sw/sdi
-I/lo/libo/solver/340/unxlngx6.pro/workdir/Misc/sw/ $(INCLUDE)
-I/lo/libo/solver/340/unxlngx6.pro/inc/offuh
-I/lo/libo/solver/340/unxlngx6.pro/inc/sw '
   ### arg 3 for call $(gb_LinkTarget_set_include) is ''
    ### call $(gb_LinkTarget_get_headers_target) -->
    ### arg 0 for call $(gb_LinkTarget_get_headers_target) is
'gb_LinkTarget_get_headers_target'
    ### arg 1 for call $(gb_LinkTarget_get_headers_target) is
'Library/libmswordlo.so'
    ### arg 2 for call $(gb_LinkTarget_get_headers_target) is implicit
    ### arg 3 for call $(gb_LinkTarget_get_headers_target) is implicit
    ### call to $(gb_LinkTarget_get_headers_target) expended into
/lo/libo/solver/340/unxlngx6.pro/workdir/Headers/Library/libmswordlo.so
    ### call $(gb_LinkTarget_get_headers_target) <--
    ### call $(gb_LinkTarget_get_target) -->
    ### arg 0 for call $(gb_LinkTarget_get_target) is
'gb_LinkTarget_get_target'
    ### arg 1 for call $(gb_LinkTarget_get_target) is 'Library/libmswordlo.so'
    ### arg 2 for call $(gb_LinkTarget_get_target) is implicit
    ### arg 3 for call $(gb_LinkTarget_get_target) is implicit
    ### call to $(gb_LinkTarget_get_target) expended into
/lo/libo/solver/340/unxlngx6.pro/workdir/LinkTarget/Library/libmswordlo.so
    ### call $(gb_LinkTarget_get_target) <--
    ### call $(gb_LinkTarget_get_dep_target) -->
    ### arg 0 for call $(gb_LinkTarget_get_dep_target) is
'gb_LinkTarget_get_dep_target'
    ### arg 1 for call $(gb_LinkTarget_get_dep_target) is
'Library/libmswordlo.so'
    ### arg 2 for call $(gb_LinkTarget_get_dep_target) is implicit
    ### arg 3 for call $(gb_LinkTarget_get_dep_target) is implicit
    ### call to $(gb_LinkTarget_get_dep_target) expended into
/lo/libo/solver/340/unxlngx6.pro/workdir/Dep/LinkTarget/Library/libmswordlo.so.d
    ### call $(gb_LinkTarget_get_dep_target) <--
   ### call to $(gb_LinkTarget_set_include) expended into
/lo/libo/solver/340/unxlngx6.pro/workdir/Headers/Library/libmswordlo.so
/lo/libo/solver/340/unxlngx6.pro/workdir/LinkTarget/Library/libmswordlo.so
: INCLUDE :=  -I/lo/libo/clone/writer/sw/source/core/inc
-I/lo/libo/clone/writer/sw/source/ui/inc
-I/lo/libo/clone/writer/sw/source/filter/inc
-I/lo/libo/clone/writer/sw/inc/pch -I/lo/libo/clone/writer/sw/inc
-I/lo/libo/solver/340/unxlngx6.pro/workdir/inc/sw/sdi
-I/lo/libo/solver/340/unxlngx6.pro/workdir/Misc/sw/ $(INCLUDE)
-I/lo/libo/solver/340/unxlngx6.pro/inc/offuh
-I/lo/libo/solver/340/unxlngx6.pro/inc/sw
ifeq (T,T)
/lo/libo/solver/340/unxlngx6.pro/workdir/Dep/LinkTarget/Library/libmswordlo.so.d
: INCLUDE :=  -I/lo/libo/clone/writer/sw/source/core/inc
-I/lo/libo/clone/writer/sw/source/ui/inc
-I/lo/libo/clone/writer/sw/source/filter/inc
-I/lo/libo/clone/writer/sw/inc/pch -I/lo/libo/clone/writer/sw/inc
-I/lo/libo/solver/340/unxlngx6.pro/workdir/inc/sw/sdi
-I/lo/libo/solver/340/unxlngx6.pro/workdir/Misc/sw/ $(INCLUDE)
-I/lo/libo/solver/340/unxlngx6.pro/inc/offuh
-I/lo/libo/solver/340/unxlngx6.pro/inc/sw
endif

   ### call $(gb_LinkTarget_set_include) <--
  ### call to $(gb_Library_set_include) expended into
/lo/libo/solver/340/unxlngx6.pro/workdir/Headers/Library/libmswordlo.so
/lo/libo/solver/340/unxlngx6.pro/workdir/LinkTarget/Library/libmswordlo.so
: INCLUDE :=  -I/lo/libo/clone/writer/sw/source/core/inc
-I/lo/libo/clone/writer/sw/source/ui/inc
-I/lo/libo/clone/writer/sw/source/filter/inc
-I/lo/libo/clone/writer/sw/inc/pch -I/lo/libo/clone/writer/sw/inc
-I/lo/libo/solver/340/unxlngx6.pro/workdir/inc/sw/sdi
-I/lo/libo/solver/340/unxlngx6.pro/workdir/Misc/sw/ $(INCLUDE)
-I/lo/libo/solver/340/unxlngx6.pro/inc/offuh
-I/lo/libo/solver/340/unxlngx6.pro/inc/sw
ifeq (T,T)
/lo/libo/solver/340/unxlngx6.pro/workdir/Dep/LinkTarget/Library/libmswordlo.so.d
: INCLUDE :=  -I/lo/libo/clone/writer/sw/source/core/inc
-I/lo/libo/clone/writer/sw/source/ui/inc
-I/lo/libo/clone/writer/sw/source/filter/inc
-I/lo/libo/clone/writer/sw/inc/pch -I/lo/libo/clone/writer/sw/inc
-I/lo/libo/solver/340/unxlngx6.pro/workdir/inc/sw/sdi
-I/lo/libo/solver/340/unxlngx6.pro/workdir/Misc/sw/ $(INCLUDE)
-I/lo/libo/solver/340/unxlngx6.pro/inc/offuh
-I/lo/libo/solver/340/unxlngx6.pro/inc/sw
endif

  ### call $(gb_Library_set_include) <--



reply via email to

[Prev in Thread] Current Thread [Next in Thread]