[Bacnet-developers] Source Code Layout - Building 'generic' library with everything (using bacnet-s
Brought to you by:
skarg
|
From: Christoph Z. <cz...@rs...> - 2013-10-16 10:42:59
|
Hi Everybody, We are currently planing on building a BACNet client, using the open source BACNet stack. This client will be available on multiple platforms. E.g. Linux x86, x64, PPC, ARM and maybe Windows (there might be some guys using this OS ;-)). To provide a uniform compilation environment, allowing to cross-compile all systems at once We had to extract the corresponding files from the tarball into our compilation structure. While We did this We copied all referenced files from the following directories: - ./src - ./ports/linux, - ./ports/windows, - ./demos/object - ./demos/handler into a single ./src folder. All header files were copied into a single ./include folder. The full layout is attached in the includeTree.txt and srcTree.txt files. We compiled the epics and bacserv tool and tested the final lib on the aforementioned systems, by simply browsing a running bacserv application via the epics tools. Now there are the following questions I would like to ask: 1) Could Our reorganization of the source files cause any latent issues resp. what was Your intention of organizing the source code as it is now? 2) As We have interpreted the source code, it looks like that the actual library is directly focused on the stack, without any higher-level functionalities. To use such a user must include the source, provided by ./demos/object resp. ./demos/handlers. Is Our interpretation correct and if so: Why was this functionality put into the demos and not into another higher-level utility library? 3) The folder ./ports/linux/ does not only contain library-only code but also the test 'rx_fsm.c'. What was your intention on directly putting the test into this folder and not providing another folder structure to better express the context of the containing files? E.g. an alternative would be: ./ports/linux/lib/ - Holds all the library relevant code ./ports/linux/include - Holds all the internal header files ./ports/linux/pub_include - Holds all public 'library user'-specific header files. ./ports/linux/tests/... - All test-relevant code with source, test scripts, etc. 4) Concerning Licensing: When only the folder structure has been changed, but not a single source file, is it then still required to publish the library? Thank You in advance for Your help. Best Regards, Christoph Zach ----------------------------------------------------------------------------- RST Industrie Automation GmbH * Carl-Zeiss-Str. 51, D-85521 Ottobrunn Tel. +49-89-9616018-00 * Fax +49-89-9616018-10 * http://www.rst-automation.de Geschäftsführer: Dipl.-Ing.(FH) Robert Schachner Amtsgericht München: HRB 103 626 * ID-Nr. DE 811 466 035 ----------------------------------------------------------------------------- |