Hamlib/README.developer

115 wiersze
2.2 KiB
Plaintext
Czysty Zwykły widok Historia

hamlib - (C) Frank Singleton 2000 (vk3fcs@ix.netcom.com)
General Guidelines.
-------------------
0. The top level directory looks like thus.
[frank@kirk hamlib]$ tree -d
.
|-- CVS
|-- common
| `-- CVS
|-- ft1000
| `-- CVS
|-- ft1000d
| `-- CVS
|-- ft747
| |-- CVS
| |-- include
| | `-- CVS
| |-- lib
| | `-- CVS
| `-- test
| `-- CVS
|-- ft840
| `-- CVS
|-- ft847
| |-- CVS
| |-- include
| | `-- CVS
| |-- lib
| | `-- CVS
| `-- test
| `-- CVS
|-- ft920
| `-- CVS
|-- ts570d
| `-- CVS
|-- ts870s
| `-- CVS
`-- ts950
`-- CVS
1.Every new shared lib should be created autonomously
within its own directory. eg ft747/ for libft747.so
2. Every lib should have the following structure
[frank@kirk ft747]$ tree
.
|-- CVS
| |-- Entries
| |-- Entries.Log
| |-- Repository
| `-- Root
|-- Makefile
|-- README.ft747
|-- TODO.ft747
|-- ft747.c
|-- ft747.h
|-- include
| `-- CVS
| |-- Entries
| |-- Repository
| `-- Root
|-- lib
| `-- CVS
| |-- Entries
| |-- Repository
| `-- Root
`-- test
|-- CVS
| |-- Entries
| |-- Repository
| `-- Root
|-- Makefile
|-- testlibft747.c
`-- testlibft747.h
3. Use the ft847 tree for examples of coding style. If there
are any glaring problems,let me know..
4. The "test" directory should contain source code of the
form testlibXXXX.[ch]
5. The "test" directory should build a test suite that
excercises the API you are implementing.
6. libXXXX.so should be built to allow TX (PTT) to be disabled
if required. See ft747.[ch] for how this is done.
7. The Makefile for the test suite should have a target like
this to allow testing the API.
# run test program in local directory
.PHONY: runtest
runtest:
(LD_LIBRARY_PATH="../lib" ./testlibft747 )
8. You may wish to make an example out from your test suite
program available as follows.
make runtest > RESULT.example
9. Your header file (eg ft747.h, ft847.h etc) documents
your API, so please describe it so others can understand.
If this cannot be done, I may consider an "API.xxx" that
decsribes the API (eg: API.ft847 )
10. ...