I couldn’t hesitate to use this topic name, though this is a little bit unrelated to the content of this post…
So, during the last days, I’ve already mentioned that my interest in Haiku is rising. Furthermore there had been a lot of discussions about ProjectConceptor on #beos.de at that time. Project Conceptor is a very promising piece of software, which is at a very early stage of development. Though my interest in actively developing for it is limited, the developers put their latest effort in backporting it from ZETA to BeOS R5.
Using R5 felt completely wrong to me, so I considered making it work for Haiku directly from my linux box, especially my preferred gcc4 version.
Some of you might already know, that I am not one of the biggest fans of Jam. Addtionally I am one kind of developers, who feel extremly annoyed by trying to port something and needing to take care of the build engine in first place. So the logical decision for me was to design a makefile engine, which is capable of building applications crosscompiled for Haiku. Stressing the point of making it easier for developers who are already in the BeOS world, the design of the makefiles have been adopted from what has been there for R5 and ZETA.
So, a classical (helloworld) makefile just looks like this:
NAME = myapp
SRCS = main.cpp
$(HAIKU_DIR) describes the head directory of your checkout of haiku. That one usually will contain the generated directory for your haiku build. The only dependency is to set this variable in your environment and you should be ready to go.
In addition to compiling and linking it appends resources and sets the mimetype. Obviously, these rules have been adopted by the haiku engine and therefore should be compatible.
Oh, and before I forget, in case you want to use it for a gcc2 build, just set the COMPILER_VERSION variable in makefile-vars to 2 and you’re done.
So if you want to try it out, just click here for a download. Feedback is welcomed.
To clarify one thing in the end: This is no intention to replace the jam setup done for the haiku project. It is much superior than what is available here and I guess there has been a lot of research and discussions previously to the core team decided to go for jam. If you are considering to make your projects haiku only, use haiku_jam. If you start a new project for haiku, use haiku_jam. But, if you are just trying to port over an existing R5/ZETA project and want to prioritize the source work over the build engine, then this might be something of your interest.
It is quite some time now since my last employer opened Chapter 11. From that on it took some time, effort and self-control to get distance to this topic. A lot of things have been said from a lot of perspectives. But this post is not supposed to talk about the past, it’s just an intro of what I’ve been doing during the last days.
As most of this blog’s readers know, there is still an open source variant of the BeOS out there, namely Haiku. Sometimes (or on a regular basis), people on IRC asked me, if I took a look at it and always I’ve declined. But like it is with an ex-girlfriend, either you like it or not, at some point you’ll meet again.
In case you’re reading through all Haiku related blogs and internet pages, you can see that a few people are even brave enough to try this OS out on their daily basis. So I’d considered Haiku to be at some usable state. Still working on a 1.4 GHz Acer Notebook minimizes your fun in using today’s virtualization possibilities. I can run images, but the performance is not even discussable. Thus, I’ve tried to install it natively.
The build system has a very easy way to cross-compile and even copy the files over to a partition, which is going to be initialized with the bfs. Simply add the following two lines to your UserBuildConfig, and you’re ready to go:
Now, as I am not interested in running any of the spectacular, high-performance, super-killer apps which are still available on Bebits, I have decided to build a gcc4 build to have at least an impression that I am using something decent and updated.
Unfortunately the input_server hangs somewhere, neither mouse nor keyboard was working. I’ve also tried the USB Legacy mode, which gave me the chance to have a mouse. Unfortunately the system either KDLs or deadlocks somewhere after around 10-20 seconds. Talking to one of the developers of haiku, he asked me to give him a syslog. Luckily there is a BFS read-only implementation for Linux, so I opened the partition and was fairly surprised to not find any syslog. I did remember, that there was one in the few seconds, I could work on it. So I rebooted, instantly tried to copy the syslog (to get the data flushed on the partition), and went back to linux. Once again, no syslog. It seems like the bfs is having real fun. Discussing all these issues (there were more, but nothing worth mentioning compared to aboves) with a friend, he suggested to try out the gcc2 build and wohoo, it worked out of the box. So the solution to all these issues is to still stay in the 90’s to use an OS, which approximately will be out in 2010.
Anyway, all I can say so far is, it has been great fun watching a Be related OS again on my machine. It’s just reminiscent mood I guess, but still: it is almost tempting to just do something.
And the year just started…