Merge branch 'vim-with-runtime' into fix/fast-join
[vim_extended.git] / src / INSTALLx.txt
blobb3e9122b1f0ae2307726136cb2c4a5998939abc8
1 INSTALLx.txt - cross-compiling Vim on Unix
3 Content:
4  1. Introduction
5  2. Necessary arguments for "configure"
6  3. Necessary environment variables for "configure"
7  4. Example
10 1. INTRODUCTION
11 ===============
13 This document discusses cross-compiling VIM on Unix-like systems. We assume
14 you are already familiar with cross-compiling and have a working cross-compile
15 environment with at least the following components:
17  * a cross-compiler
18  * a libc to link against
19  * ncurses library to link against
21 Discussing how to set up a cross-compile environment would go beyond the scope
22 of this document. See http://www.kegel.com/crosstool/ for more information and
23 a script that aids in setting up such an environment.
26 The problem is that "configure" needs to compile and run small test programs
27 to check for certain features. Running these test programs can't be done when
28 cross-compiling so we need to pass the results these checks would produce via
29 environment variables. See the list of variables and the examples at the end of
30 this document.
33 2. NECESSARY ARGUMENTS FOR "configure"
34 ======================================
36 You need to set the following "configure" command line switches:
38 --build=... :
39         The build system (i.e. the platform name of the system you compile on
40         right now).
41         For example, "i586-linux".
43 --host=... :
44         The system on which VIM will be run. Quite often this the name of your
45         cross-compiler without the "-gcc".
46         For example, "powerpc-603-linux-gnu".
48 --target=... :
49         Only relevant for compiling compilers. Set this to the same value as
50         --host.
52 --with-tlib=... :
53         Which terminal library to.
54         For example, "ncurses".
57 3. NECESSARY ENVIRONMENT VARIABLES FOR "configure"
58 ==================================================
60 Additionally to the variables listed here you might want to set the CPPFLAGS
61 environment variable to enable optimization for your target system (e.g.
62 "CPPFLAGS=-march=arm5te").
64 The following variables need to be set:
66 ac_cv_sizeof_int:
67         The size of an "int" C type in bytes. Should be "4" on all 32bit
68         machines.
70 vi_cv_path_python_conf:
71         If Python support is enabled, set this variables to the path for
72         Python's library implementation. This is a path like
73         "/usr/lib/pythonX.Y/config" (the directory contains a file
74         "config.c").
76 vi_cv_var_python_epfx:
77         If Python support is enabled, set this variables to the execution
78         prefix of your Python interpreter (that is, where it thinks it is
79         running).
80         This is the output of the following Python script:
81                 import sys; print sys.exec_prefix
83 vi_cv_var_python_pfx:
84         If Python support is enabled, set this variables to the prefix of your
85         Python interpreter (that is, where was installed).
86         This is the output of the following Python script:
87                 import sys; print sys.prefix
89 vi_cv_var_python_version:
90         If Python support is enabled, set this variables to the version of the
91         Python interpreter that will be used.
92         This is the output of the following Python script:
93                 import sys; print sys.version[:3]
95 vim_cv_bcopy_handles_overlap:
96         Whether the "memmove" C library call is able to copy overlapping
97         memory regions. Set to "yes" if it does or "no" if it does not.
98         You only need to set this if vim_cv_memmove_handles_overlap is set
99         to "no".
101 vim_cv_getcwd_broken:
102         Whether the "getcwd" C library call is broken. Set to "yes" if you
103         know that "getcwd" is implemented as 'system("sh -c pwd")', set to
104         "no" otherwise.
106 vim_cv_memcpy_handles_overlap:
107         Whether the "memcpy" C library call is able to copy overlapping
108         memory regions. Set to "yes" if it does or "no" if it does not.
109         You only need to set this if both vim_cv_memmove_handles_overlap
110         and vim_cv_bcopy_handles_overlap are set to "no".
112 vim_cv_memmove_handles_overlap:
113         Whether the "memmove" C library call is able to copy overlapping
114         memory regions. Set to "yes" if it does or "no" if it does not.
116 vim_cv_stat_ignores_slash:
117         Whether the "stat" C library call ignores trailing slashes in the path
118         name. Set to "yes" if it ignores them or "no" if it does not ignore
119         them.
121 vim_cv_tgetent:
122         Whether the "tgetent" terminal library call returns a zero or non-zero
123         value when it encounters an unknown terminal. Set to either the string
124         "zero" or "non-zero", corresponding.
126 vim_cv_terminfo:
127         Whether the environment has terminfo support. Set to "yes" if so,
128         otherwise set to "no".
130 vim_cv_toupper_broken:
131         Whether the "toupper" C library function works correctly. Set to "yes"
132         if you know it's broken, otherwise set to "no".
134 vim_cv_tty_group:
135         The default group of pseudo terminals. Either set to the numeric value
136         of the your tty group or to "world" if they are world accessable.
138 vim_cv_tty_mode:
139         The default mode of pseudo terminals if they are not world accessable.
140         Most propably the value "0620".
143 4. EXAMPLE:
144 ===========
146 Assuming the target system string is "armeb-xscale-linux-gnu" (a Intel XScale
147 system) with glibc and ncurses, the call to configure would look like this:
149 ac_cv_sizeof_int=4 \
150 vim_cv_getcwd_broken=no \
151 vim_cv_memmove_handles_overlap=yes \
152 vim_cv_stat_ignores_slash=yes \
153 vim_cv_tgetent=zero \
154 vim_cv_terminfo=yes \
155 vim_cv_toupper_broken=no \
156 vim_cv_tty_group=world \
157 ./configure \
158         --build=i586-linux \
159         --host=armeb-xscale-linux-gnu \
160         --target=armeb-xscale-linux-gnu \
161         --with-tlib=ncurses
165 Written 2007 by Marc Haisenko <marc@darkdust.net> for the VIM project.