statx: make include conditional, fixes non-csky arch buildroot builds
[uclibc-ng.git] / INSTALL
blob05630d25a2d771313fd9968a32e34ab6fcd4880e
1 SOFTWARE REQUIREMENTS
3    Compiling uClibc-ng requires Linux kernel header files. uClibc-ng will
4    be compiled to match the interfaces available in the provided
5    version of the Linux kernel headers. Any modern Linux kernel is
6    supported (3.x/4.x).
7    Its also helpful to have a working version of GNU binutils, and 
8    GNU gcc -- using excessively old versions of these packages can 
9    cause very strange errors that are difficult to find and fix.
11 INSTALLING Linux kernel headers:
13    Extract a Linux kernel source tree and create a populated headers
14    directory:
16      make INSTALL_HDR_PATH=/tmp/linux-headers headers_install
18 CONFIGURING uClibc-ng:
20  - Users must have a valid configuration file to compile uClibc-ng.  Do not
21    skip this step.  New configuration options are added in each
22    release, and odd configuration options are sometimes removed.
23    To configure uClibc-ng, you can run:
25            make menuconfig
26    or
27            make config
29    You need to point in "Target Architecture Features and Options"
30    the field "Linux kernel header location" to for example
31    /tmp/linux-headers/include if you installed the headers to
32    /tmp/linux-headers (Variable name KERNEL_HEADERS in .config).
34    If you have an existing .config file, you can update this file
35    using the
37            make oldconfig
39    command, which will only ask you about new configuration options.
41    Available configuration commands are:
42         "make config"       Text based configuration, no menus or colors.
43         "make menuconfig"   Text based color menus, radiolists & dialogs.
44         "make oldconfig"    Default all questions based on the contents of
45                             your existing ./.config file.
46         "make defconfig"    Use defaults for all options.
47         "make randconfig"   Use random values for all options.
48         "make allyesconfig" Set all values to "yes" for all options.
49         "make allnoconfig"  Set all values to "no" for all options.
52 COMPILING uClibc-ng:
54  - uClibc-ng does not have proper dependancy checking so if you
55    change your uClibc-ng configuration, you must current rebuild the
56    entire library, by first running 
58             make clean
60  - Once you have a valid configuration file, just run
62             make
64    to compile uClibc-ng.  or if you are cross compiling, you would
65    instead run something like:
67             make CROSS_COMPILE=arm-linux-
70 INSTALLING the uClibc-ng development environment:
72  - As root, if necessary, run something like:
74         make PREFIX=<some path> install
76    This will install the uClibc-ng runtime and development system (i.e.
77    all the header files, libraries, etc) into the directories defined
78    within your .config file.
81 USING uClibc-ng:
83  - To compile programs with uClibc-ng you will need a complete toolchain
84    (i.e. binutils, gcc and uClibc-ng) that was built expressly for use
85    with uClibc-ng.
87  - You have following choices at the moment:
88    - Use OpenADK from https://openadk.org
89    - Use Buildroot from http://www.buildroot.org
90    - Use Crosstool-NG from http://crosstool-ng.org
91    - Use your own build scripts or environment