diff options
Diffstat (limited to 'contrib/ntp/html/porting.htm')
-rw-r--r-- | contrib/ntp/html/porting.htm | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/contrib/ntp/html/porting.htm b/contrib/ntp/html/porting.htm new file mode 100644 index 0000000..d541d4e --- /dev/null +++ b/contrib/ntp/html/porting.htm @@ -0,0 +1,78 @@ +<html><head><title> +Porting Hints +</title></head><body><h3> +Porting Hints +</h3><hr> + +<p>NOTE: The following procedures have been replaced by GNU automake and +autoconfigure. This page is to be updated in the next release. + +<p>Porting to a new machine or operating system ordinarily requires +updating the <code>./machines</code> directory and the +<code>./compilers</code> directories in order to define the build +environment and autoconfigure means. You will probably have to modify +the <code>ntp_machines.h</code> file and <code>"l_stdlib.h"</code> files +as well. The two most famous trouble spots are the I/O code in +<code>./ntpd/ntp_io.c</code> and the clock adjustment code in +<code>./ntpd/ntp_unixclock.c</code>. + +<p>These are the rules so that older bsd systems and the POSIX standard +system can coexist together. + +<ol> + +<li>If you use <code>select</code> then include +<code>"ntp_select.h"</code>. <code>select</code> is not standard, since +it is very system dependent as to where it is defined. The logic to +include the right system dependent include file is in +<code>"ntp_select.h"</code>. + +<p><li>Always use POSIX definition of strings. Include +<code>"ntp_string.h"</code> instead of <code><string.h></code>. + +<p><li>Always include <code>"ntp_malloc.h"</code> if you use +<code>malloc</code>. + +<p><li>Always include <code>"ntp_io.h"</code> instead of +<code><sys/file.h></code> or <code><fnctl.h></code> to get +<code>O_*</code> flags. + +<p><li>Always include <code>"ntp_if.h"</code> instead of +<code><net/if.h></code>. + +<p><li>Always include <code>"ntp_stdlib.h"</code> instead of +<code><stdlib.h></code>. + +<p><li>Define any special defines needed for a system in +<code>./include/ntp_machine.h</code> based on system identifier. This +file is included by the <code>"ntp_types.h"</code> file and should +always be placed first after the <code><></code> defines. + +<p><li>Define any special library prototypes left over from the system +library and include files in the <code>"l_stdlib.h"</code> file. This +file is included by the <code>"ntp_stdlib.h"</code> file and should +ordinarily be placed last in the includes list. + +<p><li>Don't define a include file by the same name as a system include +file. + +</ol> + +<p><code>"l_stdlib.h"</code> can contain any extra definitions that are +needed so that <code>gcc</code> will shut up. They should be controlled +by a system identifier and there should be a separate section for each +system. Really this will make it easier to maintain. + +<p>See <code>include/ntp_machines.h</code> for the various compile time +options. + +<p>When you are satisfied the port works and that other ports are not +adversely affected, please send <a href="patches.htm">patches</a> for +the system files you have changed, as well as any documentation that +should be updated, including the advice herein. + +<p>Good luck. + +<hr><a href=index.htm><img align=left src=pic/home.gif></a><address><a +href=mailto:mills@udel.edu> David L. Mills <mills@udel.edu></a> +</address></a></body></html> |