Hello Roger,
This is my first message, and actually first contact with microkernel world.
welcome to the mailing list and thank you for the encouraging words! :-)
Specifically, OpenDDS3.6 which relies on ACE-TAO2.2a: http://download.ociweb.com/TAO-2.2a/ACE+TAO-2.2a_with_latest_patches_NO_make... http://download.ociweb.com/OpenDDS/OpenDDS- http://download.ociweb.com/OpenDDS/3.6.tar.gz
I create a specific repo inside repos, and did the port files.
The make prepare worked with no problems.
But then come the challenging part:
Adapting Makefiles /Config files to Genode specific platform. ACE-TAO need a specific config and platform files.
There are examples for linux, free and openbsd, vxworks, qnx,
vxworks, lynxos.
From which should I start from?
without having any knowledge about OpenDDS, I would always start with building and running the software-to-port on a Linux host system. When building, enable the verbose build output so that you can see all arguments passed to the compiler, linker, and the additional tools. It is useful to redirect the build output to a file, which can then be analyzed. I usually do not bother too much with inspecting the Makefiles but just look at the trace of the build output. With this information, it is often fairly easy to write library-description files for the Genode build system. You can find plenty of examples in _libports/lib/mk_.
- Creation of the patches. How to create the patches? Just with diff -crNb?
Yes. I tend to specify -u.
Building specific tools. ACE-TAO and OpenDDS rely on specific tools for IDL files.
I saw the Qt example with the host_tools.mk approach, but not
tested yet.
As you noticed, the Qt5 port is quite complex. Maybe it is easier to wrap your head around the port of mupdf, which also uses this mechanism? You can find it at repos/libports/lib/mk/mupdf.mk
If you'd like us to assist you with the port, it might be worthwhile to consider sharing your working branch on GitHub. This would enable others to easily reproduce the problem.
- Creation of the run file. What should be a first trial?
Depending on the scenario want to realize, it might be a good idea to take an existing run script as starting point. For example, for building a Qt5-based scenario, I recommend you to first try out, understand, and modify the libports/run/qt5.run script. Once you feel contend with it, it will become easy to transfer the knowledge to other scenarios. Please do not hesitate to ask any questions about the functioning of any specific run script.
Is there any specific guide, or there is no easy way. Is a try and test process?
The best way would be to make yourself acquainted with the run scripts that are available in the run/ subdirectories of the various repositories. To get a list, issue 'find -mindepth 4 -name "*.run"' from the root of the Genode source tree.
Have fun with exploring Genode!
Norman