This is the GNU Radius package. This document describes the actions
needed to build pre-release versions of the package. See end of file
for copying conditions. 

* Introduction

This is a *pre-release* version, and not ready for production use yet.
If you are taking source from Git, you will need to have several
special tools to help contribute. See the file README-hacking for more
information, See chapter `Building' for the detailed instructions on
how to build the package.

Please, note that the accompanying documentation may be inaccurate or
incomplete.  For alpha releases, the authoritative source of information 
about recent changes is ChangeLog file.

Report bugs and send comments to <bug-gnu-radius@gnu.org>.

* Checking Out the Sources

The following instructions apply if you wish to obtain sources from
the Git repository:

To clone the source tree, issue the following command:

 git clone git://git.savannah.gnu.org/radius.git

This will give you read-only access.  If you think you need write access,
contact <gray@gnu.org.ua>

* Building

Usual procedures apply:

 ./configure
  make
  make install

See INSTALL and README for the detailed instructions.
   
* Debugging

Unless you compile Radius statically, use the following command to debug it
(from radiusd directory):

	libtool --mode execute gdb radiusd [args]

If you run the command from /radiusd subdirectory, the file .gdbinit will
authomatically be loaded that contains many useful debugging functions (see
below).

For debugging from Emacs run:

	M-x gdb RET gud-wrapper radiusd RET

(the script gud-wrapper is located in /scripts subdirectory)

* .gdbinit

The default radiusd/.gdbinit ensures that radiusd will be started
in foreground single-process mode. It sets breakpoints at several
critical locations. It also provides following macros:

Macro:         pt arg
Argument type: grad_avp_t *
Description:   Prints the type of the A/V pair in symbolic form

Macro:         print_iptostr
Argument type: long
Description:   Print argument (IPv4 address in host order) in a conventional
               (dotted-quad) form.

Macro:         pv
Argument type: grad_avp_t *
Description:   Prints the value of the given A/V pair

Macro:         po
Argument type: grad_avp_t *
Description:   Prints the operator of the given A/V pair

Macro:         pp
Argument type: grad_avp_t *
Description:   Pretty-print given A/V pair

Macro:         plist
Argument type: grad_avp_t *
Description:   Pretty-print the list of A/V pairs

Macro:         print_reqcode
Argument type: grad_request_t *
Description:   Print RFC code name of the given grad_request_t 

Macro:         preq
Argument type: grad_request_t *
Description:   Print contents of the given grad_request_t 


Local Variables:
mode: outline
paragraph-separate: "[ 	]*$"
version-control: never
End:

