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

Re: Request for TC to rule on a course of action for supporting build-arch



* Roger Leigh <rleigh@codelibre.net>, 2011-06-11, 12:19:
7) Failed autodetection
  - autodetection failed to detect an existing build-arch target
  - unconditional used build-arch
  A complete list of packages is at the bottom; these are selected
  examples.

  Example: spring_0.82.7.1+dfsg1-3
    In this package, the '%: dh $@' rule is at the end of the rules,
    not the beginning.  This makes "make -qn" try to run the rule:
    % make -f debian/rules -qn build-arch
    dh build-arch
       dh_testdir -a
       debian/rules override_dh_auto_configure
    make: *** [build-arch] Error 1

    Compare with moving the rule to the start:
    % make -f debian/rules -qn build-arch
    % echo $?
    1

  Example: isomd5sum_1.0.5-2
    This package contains a real build-arch rule, and it's .PHONY.
    Again, "make -qf" actually tries to build the target and fails:
    % make -f debian/rules -qn build-arch
    make implantisomd5 checkisomd5
    make: *** [build-isomd5sum-stamp] Error 1

  Example: phonon-backend-vlc_0.4.0-1
    % make -f debian/rules -qn build-arch
    /usr/share/pkg-kde-tools/qt-kde-team/2/dhmk.pl --with=kde,pkgkde-symbolshelper
    make -f debian/rules dhmk_run_configure_commands DHMK_TARGET="configure"
    make: *** [debian/dhmk_configure] Error 1
    Probably somewhere in the guts of
    /usr/share/pkg-kde-tools/qt-kde-team/2/dhmk.mk where the
    generic '%: debian/dhmk_%' expansion is.
    Note that most of the failures are in KDE packages, so fixing this
    will fix the majority of the failures.

Quoting make documentation:

| The `-n', `-t', and `-q' options do not affect command lines that begin
| with `+' characters or contain the strings `$(MAKE)' or `${MAKE}'. Note
| that only the line containing the `+' character or the strings `$(MAKE)'
| or `${MAKE}' is run regardless of these options. Other lines in the same
| rule are not run unless they too begin with `+' or contain `$(MAKE)' or
| `${MAKE}' (*Note How the `MAKE' Variable Works: MAKE Variable.)

I think the above disqualifies the "make -qn" method...

--
Jakub Wilk


Reply to: