Hello Christian,
Thanks for your reply. A better example is the curl library. I've put together an example to reproduce the behavior.
Attached a patch which includes the curl library into the hello tutorial. It doesn't call any methods of the library, but it does include <curl/curl.h> and shows the necessity of the extra INC_DIR directive.
To run it I take the following steps: $ git clone https://github.com/genodelabs/genode.git hello_curl $ cd hello_curl
Patch the sources with the attached hello_curl.patch $ patch -p1 < ~/tmp/hello_curl.patch $ ./tool/create_builddir linux_x86 $ cd build/linux_x86 $ echo 'REPOSITORIES += $(GENODE_DIR)/repos/hello_tutorial' >> \ etc/build.conf $ echo 'REPOSITORIES += $(GENODE_DIR)/repos/libports' >> etc/build.conf $ ../../tool/ports/prepare_port curl libc libssh openssl zlib $ make run/hello
This compiles and runs fine (not doing anything functional).
Now remove the following line from repos/hello_tutorial/src/hello/client/target.mk:
INC_DIR += $(REP_DIR)/../libports/src/lib/curl/spec/64bit/curl/
Running it again will give you an error about a missing "curlbuild.h". Hence our question what are we doing wrong? Is this behavior by design, or should we take different steps to include and use the library port?
Thanks, Menno
PS. I've tested lwip in a similar way, and you're right: the error is not there.