Hi Norman,
I just read the tutorial again and you are right, in the tutorial there stands that the repository and build dir are separate. It was this what was unclear to me:
In the remaining document when referring to non-absolute directories, these are local to hello_tutorial. Now we tell the Genode build system, that there is a new repository. Therefore we add the path to our new repository to 'build/etc/build.conf': I thought the build directory was relative to hello_tutorial, but you are stating it is not.
The rest of the tutorial was very clear to me.
Thanks,
Edgar
On Sun, Dec 8, 2013 at 11:06 AM, Norman Feske <norman.feske@...1...>wrote:
Hello Edgar,
thanks for giving Genode a try and welcome to the list!
I thought no problem, thus I did a make clean. This wasn't helpful. Then I did a make cleanall, but now it wiped out the whole build/include directory.
Is this intended behaviour or should I not put things there? At this stage it is just annoying, but I think this is a bug, because the tutorial puts the headers, which define the RPC interfaces. Can I prevent this behaviour?
it looks like you somehow got the meaning of source and build directories mixed up. Genode's build system builds out of tree, that is, it keeps source codes separated from build output. From what you write, it seems that you placed your source code right into the build directory. That is not supposed to work. Instead, I recommend to place your code into one of the existing souce-code repositories or create a new source-code repository for your project. (outside the build directory) For more details of how a source-code repository is structured, let me refer you to the build-system documentation:
http://genode.org/documentation/developer-resources/build_system
Your build directly obtains the list of the source-code repositories to use from the '<build-dir>/etc/build.conf' file. This is the place where you can add additional repositories such as your project's one.
Your post hints at a problem with the current version of the tutorial. Is does not seem to make perfectly clear where to place the source code. So you have a suggestion where and how to include this information in a good way?
And I want to use c++ features like Strings instead of char *. How can I enable this? I recognize I need a library for this, but I can't find it in base.
You can use most of the standard C++ library by taking the following steps:
Download the standard C++ library into the Genode source tree by issuing the following command from within the 'libports/' repository:
make prepare PKG=stdcxx
For stdcxx to work, you will also need the C runtime, which you can obtain via the following command:
make prepare PKG=libc
Add the 'libports/' repository to the list of 'REPOSITORIES' in your '<build-dir>/etc/build.conf' file. (just uncomment the corresponding line)
Specify the 'stdcxx' library in your 'target.mk' file by adding the following declaration:
LIBS += stdcxx
Now you should be able to include the usual C++ headers for strings and containers.
Good luck!
Norman
-- Dr.-Ing. Norman Feske Genode Labs
http://www.genode-labs.com · http://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Sponsored by Intel(R) XDK Develop, test and display web and hybrid apps with a single code base. Download it for free now!
http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.cl... _______________________________________________ Genode-main mailing list Genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main