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:
- Vx Works?:
<c:make target="vxApp" file="vxworks/Makefile" directory="vxworks" />
- Linux:
<c:make target="linuxApp" file="Makefile" />
- 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,
- Vx Works?:
bitten-slave --verbose --name=vxworks -f c:\bitten.ini https://svn/trac/project/builds
- 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
- 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
comment:2 Changed 15 years ago by anonymous
Posted to mailing list. Pending moderator approval.
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.