USNavalResearchLaboratory / protolib

Protean Protocol Prototyping Library

Home Page:https://www.nrl.navy.mil/itd/ncs/products/protolib

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

headers files not installed

leoplo opened this issue · comments

I probably missed something but headers were not installed.

I ran :

user@machine:~/protolib$ ./waf configure                                                                                                                                                                     
Setting top to                           : /home/user/protolib                                                                                                                                                     
Setting out to                           : /home/user/protolib/build 
Checking for 'g++' (C++ compiler)        : /usr/bin/g++ 
Checking for library pthread             : yes 
Checking for library dl rt               : yes 
Checking for library netfilter_queue     : yes 
Added '/usr/include/libxml2' to INCLUDES
'configure' finished successfully (2.607s)
user@machine:~/protolib$ ./waf                                                                                                                                                                     
Waf: Entering directory `/home/olimex/protolib/build'
...
[45/45] Symlinking build/libprotokit.so   
Waf: Leaving directory `/home/olimex/protolib/build'
'build' finished successfully (1m41.607s)
user@machine:~/protolib$ sudo ./waf install                                                        
Waf: Entering directory `/home/user/protolib/build' 
+ install /usr/local/lib/libprotokit.a (from build/libprotokit.a)
+ symlink /usr/local/lib/libprotokit.so.3 (to libprotokit.so.3.0.3)
+ install /usr/local/lib/libprotokit.so.3.0.3 (from build/libprotokit.so)
+ symlink /usr/local/lib/libprotokit.so (to libprotokit.so.3.0.3)
Waf: Leaving directory `/home/user/protolib/build'
'install' finished successfully (1.008s)

Here only libraries seem to be copied :

user@machine:~/protolib$ ls /usr/local/lib/
libprotokit.a  libprotokit.so  libprotokit.so.3  libprotokit.so.3.0.3  python2.7  python3.9
user@machine:~/protolib$ ls /usr/local/include/
user@machine:~/protolib$
user@machine:~/protolib$ sudo find / -name "protoPktIP.h"                                                                 
/home/user/protolib/include/protoPktIP.h

But BUILD.TXT declares that ./waf install will install the compiled library and headers to wherever your prefix was specified.

For info if it could have any influence, I built protolib on armv7l with a Debian distribution.

Hi - for our usage of Protolib, we usually just include the Protolib source tree (or a link to it) within the source tree of the project using Protolib. So it's likely the case, we haven't verified that the protolib header files are installed. Since there is an "install" option in the build tools,, we definitely should allow for that for those that want that. Part of the reason for this is that we haven't established good version checking within the Protolib code that is important for making sure different projects build properly. Additionally, Protolib has a number of compiler macros (#ifdefs) that need to be set consistently for the build of the library and the project that include Protolib header files. There are some options in the protolib code (like using select() versus pselect(), versus epoll() and some other variances. In that regards, Protolib is not as "clean" as a proper library should be. I think the code is now mature enough (I've been developing it for about 25 years ;-) ) that we could nail down those things for key platforms (Window, OSX, Linux, Android, etc) ...