From 66b3eaf13d7e2c0c40bbe8ae737a4ce059aefc88 Mon Sep 17 00:00:00 2001 From: George Rhoten Date: Fri, 2 May 2003 16:46:19 +0000 Subject: [PATCH] ICU-2686 Document how to port to a new platform X-SVN-Rev: 11768 --- icu4c/readme.html | 77 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 69 insertions(+), 8 deletions(-) diff --git a/icu4c/readme.html b/icu4c/readme.html index d4092af9ed..ea6b53d628 100644 --- a/icu4c/readme.html +++ b/icu4c/readme.html @@ -32,7 +32,7 @@ ICU 2.6 ReadMe -

Version: 2003-Apr-16
+

Version: 2003-May-02
Copyright © 1997-2003 International Business Machines Corporation and others. All Rights Reserved.

@@ -89,7 +89,20 @@ -
  • Platform Dependencies
  • +
  • + Platform Dependencies + + +

  • @@ -1579,6 +1592,48 @@ del common/libicuuc.o

    Platform Dependencies

    +

    Porting To A New Platform

    + +

    If you are using ICU's Makefiles to build ICU on a new platform, there + are a few places where you will need to add or modify some files. If you + need more help, you can always ask the icu4c-support mailing list. Once you + have finished porting ICU to a new platform, it is recommended that you + contribute your changes back to ICU via the icu4c-support mailing list. + This will make it easier for everyone to benefit from your work.

    + +

    Try to follow the build steps from the Unix build instructions. If the configure script + fails, then you will need to modify some files. Here are the usual steps + for porting to a new platform:
    +

    + +
      +
    1. Create an mh file in icu/source/config/. You can use mh-linux or a + similar mh file as your base configuration.
    2. + +
    3. Modify icu/source/aclocal.m4 to recognize your platform's mh + file.
    4. + +
    5. Modify icu/source/configure.in to properly set your platform C + Macro define.
    6. + +
    7. Run autoconf in + icu/source/ without any options. The autoconf tool is standard on most + Linux systems.
    8. + +
    9. If you have any optimization options that you want to normally use, + you can modify icu/source/runConfigureICU to specify those options for + your platform.
    10. + +
    11. Build and test ICU on your platform. It is very important that you + run the tests. If you don't run the tests, there is no guarentee that you + have properly ported ICU.
    12. +
    + +

    Platform Dependent Implementations

    +

    The platform dependencies have been mostly isolated into the following files in the common library. This information can be useful if you are porting ICU to a new platform.

    @@ -1653,17 +1708,17 @@ del common/libicuuc.o
    -
  • For the intltest test suite, intltest.cpp in - "icu/source/test/intltest/" contains the method pathnameInContext, which - must also be adapted to any new platform.
  • -
  • Using platform specific #ifdef macros are highly discouraged outside of the scope of these files. When the source code gets updated in the future, these #ifdef's can cause testing problems for your platform.
  • -

    It is possible to build each library individually. They must be built in - the following order:
    +

    Build Order Without Using ICU's + Makefiles

    + +

    It is possible to build each library individually without our Makefiles. + They must be built in the following order:

      @@ -1687,6 +1742,8 @@ del common/libicuuc.o
    1. gennorm
    2. +
    3. genidna
    4. +
    5. genbrk
    6. genuca
    7. @@ -1703,6 +1760,10 @@ del common/libicuuc.o
    8. makedata (a project on Windows, or source/data/Makefile on Unix)
    9. +
    10. layout (optional)
    11. + +
    12. layoutex (optional)
    13. +
    14. ctestfw, intltest and cintltst, if you want to run the test suite.