Write a HOWTO-like manual for Haiku's 'makefile-engine' CLI developer helpers.
completed by: Peter Poláčik
mentors: Siarhei Zharski
The 'makefile-engine' helpers propose an easy way to create simple project for new Haiku applications, add-ons and libraries. It include two files you can found in /boot/develop/etc directory. The "makefile-engine" one is a working horse, performing most of functionality. The second file is the template for projects makefile, that should be copied in the local project directory and customized.
Your task is:
- Install Haiku in Virtual Machine or on real hardware;
- Create simple "Hello, World!" project using any sample available in the internet and makefile template from /boot/develop/etc/makefile;
- Adjust the local copy of makefile and force the program compile and work. In case of problems - ask your mentor for help;
- Add the localization into your sample by changing your program in the following manner:
#include <Catalog.h>
....
#undef B_TRANSLATE_CONTEXT
#define B_TRANSLATE_CONTEXT "HelloWorld"
...
// replace the string literal with B_TRANSLATE()-ed one
B_TRANSLATE("Hello, World!")
and compile it; - Now use the "make catkeys" to collect localized strings. The result goes to ./locales/en.catkeys. Use this file as template to create another (./locales/xx.catkeys) one for your local language or the language you know at least. Translate your language files and add it into the project;
- Now use the "make catalogs" to compile catalogs for your program and "make catalogsinstall" to installe them on your system. Test that your app is still working;
- Write a HOWTO for using makefile-engine helpers and provide it as result of completing your task.
Requirements to resulting HOWTO document:
- It should be provided in any textual format (like plain TXT, HTML, Haiku StyledText etc.);
- The information should be structured. For example it can be the following:
Preamble - some words about ;
Quick Start - steps to create new project;
Configuring - detailed explanation of variables defined in makefile;
Building - steps and targets used during building of the app;
Localization - how to configure the makefile to support localization;
Targets reference - a list of targets supported by makefile-engine and short description every one. Note that this is a sample - feel free to re-order information in the way you prefer;
Skills:
- Basic knowledge of makefiles and command-line building is welcomed but can be learned during the task;
Good luck!