[haiku-development] Re: HAIKU_DEFINES TARGET_DEFINES ... what's the difference?

  • From: Ingo Weinhold <ingo_weinhold@xxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Mon, 26 Jul 2010 01:18:28 +0200

On 2010-07-25 at 21:45:06 [+0200], Matt Madia <mattmadia@xxxxxxxxx> wrote:
> I'm looking at implementing if-else conditionals in AboutSystem &
> Installer's rdefs.
> 
> What's difference between HAIKU_DEFINES and TARGET_DEFINES?

Please have a look at BuildSetup around lines 900 and following. There the 
TARGET_* variables are set to the values of the corresponding HAIKU_* or
HOST_* variables, depending on what target platform is set. Out of that set 
of HAIKU_* variables none should be used later anymore. The build system uses 
the TARGET_* variables for targets built for the target platform and the 
HOST_* variables for targets built for the build platform.

> In ReleaseBuildProfiles, both are modified
> ---
> #HAIKU_DEFINES += HAIKU_OFFICIAL_RELEASE ;
> #TARGET_DEFINES += HAIKU_OFFICIAL_RELEASE ;
> 
> Though in BuildSetup, only HAIKU_DEFINES are modified
> ---
>  switch $(HAIKU_DISTRO_COMPATIBILITY) {
>       case official   : HAIKU_DEFINES += 
>       HAIKU_DISTRO_COMPATIBILITY_OFFICIAL ;
>       case compatible : HAIKU_DEFINES += 
>       HAIKU_DISTRO_COMPATIBILITY_COMPATIBLE ;
>       case "default"  : HAIKU_DEFINES += HAIKU_DISTRO_COMPATIBILITY_DEFAULT 
>       ;
> 
> Would it be worthwhile to modify both in that section?

No, the TARGET_* variables are set later anyway. ReleaseBuildProfiles is 
executed after BuildSetup, though, which is why setting HAIKU_DEFINES won't 
affect TARGET_DEFINES at that point anymore, though. Consequently, setting 
the former should be superfluous and setting the latter should be done only 
when $(TARGET_PLATFORM) = haiku.

Well, ReleaseBuildProfiles might simply not be the best place to do that 
anyway.

CU, Ingo

Other related posts: