View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000765Ecere SDKide:buildsystempublic2012-10-22 04:502013-08-07 03:33
Assigned Toredj 
PriorityimmediateSeverityblockReproducibilityhave not tried
PlatformOSOS Version
Product Version0.44 Ryoan-ji 
Target Version0.44.08Fixed in Version0.44.08 
Summary0000765: Confusion between Host and Target in Cross-Platform Makefiles (Exclusions!)
DescriptionAt the moment there is still confusion in the cross-platform Makefiles between Host and Target platforms.

I've already fixed some of those in order to build for Android on Windows ( see [^] ), but issues remain, mainly regarding file exclusions/inclusions.

Furthermore, the variables should be further qualified/standardized... i.e. either dropping the OSX/LINUX/WINDOWS for just HOST_PLATFORM or defining both LINUX_HOST and LINUX_TARGET in addition to HOST_PLATFORM and TARGET_PLATFORM.

At the moment, defines:


PLATFORM is the Target Platform.

Thus right now, valid checks for Target platform must be e.g.:

ifeq "$(PLATFORM)" "win32"

Whereas valid checks for Host platform must be:


It would be nice if these check would explicitly refer to Target or Host to avoid confusion.

Platform specific exclusions right now do NOT use the proper check, e.g.:


$(OBJ)Direct3D8DisplayDriver.sym: src/gfx/drivers/
    $(ECP) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/ -o $(OBJ)Direct3D8DisplayDriver.sym


... and ...

$(if $(WINDOWS),$(OBJ)Direct3D8DisplayDriver.o,) \

That's the one place I can see where it's misused right now with a quick look at it / based on hitting a wall (Building for Android on Windows machine).

TagsNo tags attached.
Attached Files

- Relationships

-  Notes
redj (administrator)
2012-10-23 03:44

do we want to remove PLATFORM completely and replace all appropriate $(PLATFORM) instance by $(TARGET_PLATFORM) ?

I suggest we keep PLATFORM with the understanding that it is always equal to TARGET_PLATFORM and we use $(PLATFORM) in file names and paths only

so all if on platform will be ifdef $(TARGET_PLATFORM) or ifdef $(HOST_PLATFORM)
never $(PLATFORM)
jerome (administrator)
2012-10-23 03:48

Yes I suggest we keep it for outside usage (e.g. specifying directories in the projects, and for passing it on to the Makefile)

So TARGET_PLATFORM should be made equal to PLATFORM early on in the Makefile, if PLATFORM is set...
redj (administrator)
2012-10-23 05:52
edited on: 2012-10-24 10:45 [^]

- Issue History
Date Modified Username Field Change
2012-10-22 04:50 jerome New Issue
2012-10-22 04:50 jerome Status new => assigned
2012-10-22 04:50 jerome Assigned To => redj
2012-10-22 04:50 jerome Summary Confusion between Host and Target in Cross-Platform Makefiles (esp. exclusions!) => Confusion between Host and Target in Cross-Platform Makefiles (Exclusions!)
2012-10-22 04:50 jerome Description Updated
2012-10-23 03:44 redj Note Added: 0000641
2012-10-23 03:48 jerome Note Added: 0000642
2012-10-23 05:52 redj Status assigned => resolved
2012-10-23 05:52 redj Fixed in Version => 0.44.1 Android
2012-10-23 05:52 redj Resolution open => fixed
2012-10-23 05:52 redj Note Added: 0000643
2012-10-24 10:45 redj Note Edited: 0000643
2013-05-22 20:31 jerome Status resolved => closed
2013-08-07 03:33 jerome Fixed in Version 0.44.10 64 => 0.44.08
2013-08-07 03:33 jerome Target Version 0.44.10 64 => 0.44.08

Copyright © 2000 - 2020 MantisBT Team
Powered by Mantis Bugtracker