Edgewall Software
Modify

Opened 15 years ago

Last modified 15 years ago

#446 new task

Support for multiple incompatible toolchains in one build configuration

Reported by: external+bitten.edgewall.org@… Owned by:
Priority: minor Milestone:
Component: General Version: 0.5.3
Keywords: Cc:
Operating System:

Description

I target Windows, Vx Works?, and Linux. The targets share some code however they are not using a common Makefile because they are separate projects with completely different toolschains. Vx Works? and Linux uses GNU Make whereas Windows uses Borland C++ Builder 6's make.

In order to use Bitten to build these three platforms I had to use multiple build configurations so each could have a different build recipe. The build steps for the three recipes are:

  1. Vx Works?:
    <c:make target="vxApp" file="vxworks/Makefile" directory="vxworks" />
    
  2. Linux:
    <c:make target="linuxApp" file="Makefile" />
    
  3. Windows (where I call a batch file that changes directory and executes Borland's make):
    <sh:exec executable="c:\bitten_borland_make.bat" />
    

Also, since the Vx Works? and Borland toolchains are both on the same Windows machine, I had to spawn two bitten-slaves with different paths to make and different --name runtime parameters (the build configuration would match the name). Another runtime parameter I had to use was --work-dir and --build-dir for the Borland build because Borland make does not support the --directory parameter so my batch script changes directory to where the Borland Makefile will always be found (not a random temp directory). For example,

  1. Vx Works?:
    bitten-slave --verbose --name=vxworks -f c:\bitten.ini https://svn/trac/project/builds
    
  2. Windows:
    bitten-slave --verbose --name=borland -f c:\bitten.ini --work-dir=c:\temp\bitten_borland --build-dir=c:\temp\bitten_borland https://svn/trac/project/builds
    
  3. Linux:
    bitten-slave --verbose -f bitten.ini https://svn/trac/project/builds
    

I would like to get feedback as to the way I implemented these build configurations. Specifically, could I have somehow combined them into a single build configuration and recipe while still taking into account the difference in toolchains and paths to make?

Thanks for the awesome project.

Attachments (0)

Change History (2)

comment:1 Changed 15 years ago by osimons

  • Milestone 0.6 deleted

You are much more likely to get a useful response by using the Mailing List rather than creating tickets - the ticket system is for bugs and enhancement requests. The ticket system does not have the same wide audience as the mailing list either.

The setup you describe has many interesting aspects that is well worth some discussion. If the mailing list discussion uncoveres issues and/or interesting ideas for improving Bitten, then you are more than welcome to create specific tickets for those. Please also check open tickets - there are for instance a ticket somewhere where I suggested we should perhaps support conditional steps, so that some steps could exist in several versions if needed. Don't remember the ticket number. There is also the wiki:Documentation/configure.html that may provide some insight for you (property interpolation).

I'll keep this ticket open for now in case it quickly turns into something specific - 'fixable' or 'improvable'. If it doesn't, I'll have to close the ticket.

Copy & paste your information into a Mailing List post please.

comment:2 Changed 15 years ago by anonymous

Posted to mailing list. Pending moderator approval.

Add Comment

Modify Ticket

Change Properties
Set your email in Preferences
Action
as new The ticket will remain with no owner.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.