Implement a convertion tool for BeIDE *.proj -> makefile/jamfile convertion.
completed by: Alex11223
mentors: Siarhei Zharski
WARNING: This is research task without guarantie of successfull completion!
Before you start researching and coding:
- Install Haiku in the virtual machine (Virtual Box is recommended) or on real hardware;
- Download the R5 BeOS Development tools archive from the link below;
- Setup the R5 Development tools in some safe, non-standard directory, for example '~/r5-devtools'. It is required to avoid messing current Haiku development tools;
- Locate some *.proj files that are the Project files of BeIDE - the development environment widely used on BeOS;
- Also take familiar with the BeIDE/optional/makemake project - this is a tool used to convert BeIDE projects into makefiles. This tools have utilized the BeIDE scripting capabilities and creates the makefiles from the /boot/develop/etc/makefile template;
- Note that format of BeIDE project files is unpublished and required data should be guessed during your work on this task;
Your task is:
- Try to research how the following info is stored in the BeIDE project files:
- name of application;
- type of application (application, library etc.)
- list of source files;
- list of resource files;
- list of system libraries;
- list of user libraries;
- system include paths;
- user include paths;
- probably compiler and linker flags;
- may be something else significant.
- Use the makemake as sample to write the tool creating makefiles using the info obtained from BeIDE project and /boot/develop/etc/makefile as template.
- Support generating Jamfiles using the similar structured template as makefile;
- http://dev.haiku-os.org/ticket/3601 - ticket requesting this tool;
- http://www.bebits.com/app/2680 - BeOS R5 Development Tools;
- http://haiku-os.org/legacy-docs/bebook/index.html - BeBook - system API reference;
- http://haiku-os.org/development - information about development for Haiku;
- http://haiku-os.org/development/coding-guidelines - Haiku Coding Guidelines;