xref: /netbsd-src/external/ibm-public/postfix/dist/PORTING (revision 41fbaed053f8fbfdf9d2a4ee0a7386a3c83f8505)
1*41fbaed0StronIn order to port software to a new platform:
2*41fbaed0Stron
3*41fbaed0Stron- Choose a SYSTEMTYPE name for the new system.  You must use a name
4*41fbaed0Stronthat includes at least the major version of the operating system
5*41fbaed0Stron(such as SUNOS4 or LINUX2), so that different releases of the same
6*41fbaed0Stronsystem can be supported without confusion.
7*41fbaed0Stron
8*41fbaed0Stron- Add a case statement to the "makedefs" shell script in the source
9*41fbaed0Stroncode top-level directory that recognizes the new system reliably,
10*41fbaed0Stronand that emits the right system-specific information.  Be sure to
11*41fbaed0Stronmake the code robust against user PATH settings; if the system
12*41fbaed0Stronoffers multiple UNIX flavors (e.g. BSD and SYSV) be sure to build
13*41fbaed0Stronfor the native flavor, instead of the emulated one.
14*41fbaed0Stron
15*41fbaed0Stron- Add an "#ifdef SYSTEMTYPE" section to the central util/sys_defs.h
16*41fbaed0Stroninclude file.  You may have to invent new feature macro names.
17*41fbaed0StronPlease choose sensible feature macro names such as HAS_DBM or
18*41fbaed0StronFIONREAD_IN_SYS_FILIO_H.
19*41fbaed0Stron
20*41fbaed0StronI strongly recommend against using "#ifdef SYSTEMTYPE" in individual
21*41fbaed0Stronsource files.  While this may look like the quickest solution, it
22*41fbaed0Stronwill create a mess when newer versions of the same SYSTEMTYPE need
23*41fbaed0Stronto be supported.  You're likely to end up placing "#ifdef" sections
24*41fbaed0Stronall over the source code again.
25