%% "Robert P. J. Day" <[EMAIL PROTECTED]> writes:

  rpjd> i inherited someone else's make-based project, which supports
  rpjd> multi-arch builds by, based on your selection, redefining a
  rpjd> number of basic variables with assignments like:

  rpjd>   CC=${CROSS_COMPILE}gcc
  rpjd>   LD=${CROSS_COMPILE}ld

  rpjd> and so on, and defines all of the rules based on ${CC}, ${LD}, etc.

  rpjd> the drawback i see to this is that it assumes that *every*
  rpjd> compile in the entire process using ${CC} will use the
  rpjd> cross-compiler version of the development commands, and it's
  rpjd> possible that part of the build could quite possibly involve the
  rpjd> occaional native compile, for whatever reason.

  rpjd>   CROSS_CC=${CROSS_COMPILE}gcc
  rpjd>   CROSS_LD=${CROSS_COMPILE}ld

I always do it the other way around.  As you say, needing to build a
native tool is not common.  So, I do something like:

    HOST_CC = gcc
    HOST_CXX = g++

    CC = $(CROSS_COMPILE)gcc
    CXX = $(CROSS_COMPILE)g++

etc.  This way the "default" is the common case, which is cross-compile.
Also, often you need to write special rules for the native builds
anyway, since you typically don't want the output to live in the same
object directories as the cross-compiled code.


YMMV.

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <[EMAIL PROTECTED]>          Find some GNU make tips at:
 http://www.gnu.org                      http://make.paulandlesley.org
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist


_______________________________________________
Help-make mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-make

Reply via email to