summaryrefslogtreecommitdiffstats
path: root/src/INSTALLx.txt
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/INSTALLx.txt165
1 files changed, 165 insertions, 0 deletions
diff --git a/src/INSTALLx.txt b/src/INSTALLx.txt
new file mode 100644
index 0000000..e03f54d
--- /dev/null
+++ b/src/INSTALLx.txt
@@ -0,0 +1,165 @@
+INSTALLx.txt - cross-compiling Vim on Unix
+
+Content:
+ 1. Introduction
+ 2. Necessary arguments for "configure"
+ 3. Necessary environment variables for "configure"
+ 4. Example
+
+
+1. INTRODUCTION
+===============
+
+This document discusses cross-compiling VIM on Unix-like systems. We assume
+you are already familiar with cross-compiling and have a working cross-compile
+environment with at least the following components:
+
+ * a cross-compiler
+ * a libc to link against
+ * ncurses library to link against
+
+Discussing how to set up a cross-compile environment would go beyond the scope
+of this document. See http://www.kegel.com/crosstool/ for more information and
+a script that aids in setting up such an environment.
+
+
+The problem is that "configure" needs to compile and run small test programs
+to check for certain features. Running these test programs can't be done when
+cross-compiling so we need to pass the results these checks would produce via
+environment variables. See the list of variables and the examples at the end of
+this document.
+
+
+2. NECESSARY ARGUMENTS FOR "configure"
+======================================
+
+You need to set the following "configure" command line switches:
+
+--build=... :
+ The build system (i.e. the platform name of the system you compile on
+ right now).
+ For example, "i586-linux".
+
+--host=... :
+ The system on which VIM will be run. Quite often this the name of your
+ cross-compiler without the "-gcc".
+ For example, "powerpc-603-linux-gnu".
+
+--target=... :
+ Only relevant for compiling compilers. Set this to the same value as
+ --host.
+
+--with-tlib=... :
+ Which terminal library to use.
+ For example, "ncurses".
+
+
+3. NECESSARY ENVIRONMENT VARIABLES FOR "configure"
+==================================================
+
+Additionally to the variables listed here you might want to set the CPPFLAGS
+environment variable to enable optimization for your target system (e.g.
+"CPPFLAGS=-march=arm5te").
+
+The following variables need to be set:
+
+ac_cv_sizeof_int:
+ The size of an "int" C type in bytes. Should be "4" on all 32bit
+ machines.
+
+vi_cv_path_python_conf:
+ If Python support is enabled, set this variable to the path for
+ Python's library implementation. This is a path like
+ "/usr/lib/pythonX.Y/config" (the directory contains a file
+ "config.c").
+
+vi_cv_var_python_epfx:
+ If Python support is enabled, set this variable to the execution
+ prefix of your Python interpreter (that is, where it thinks it is
+ running).
+ This is the output of the following Python script:
+ import sys; print sys.exec_prefix
+
+vi_cv_var_python_pfx:
+ If Python support is enabled, set this variable to the prefix of your
+ Python interpreter (that is, where it was installed).
+ This is the output of the following Python script:
+ import sys; print sys.prefix
+
+vi_cv_var_python_version:
+ If Python support is enabled, set this variable to the version of the
+ Python interpreter that will be used.
+ This is the output of the following Python script:
+ import sys; print sys.version[:3]
+
+vim_cv_bcopy_handles_overlap:
+ Whether the "memmove" C library call is able to copy overlapping
+ memory regions. Set to "yes" if it does or "no" if it does not.
+ You only need to set this if vim_cv_memmove_handles_overlap is set
+ to "no".
+
+vim_cv_getcwd_broken:
+ Whether the "getcwd" C library call is broken. Set to "yes" if you
+ know that "getcwd" is implemented as 'system("sh -c pwd")', set to
+ "no" otherwise.
+
+vim_cv_memcpy_handles_overlap:
+ Whether the "memcpy" C library call is able to copy overlapping
+ memory regions. Set to "yes" if it does or "no" if it does not.
+ You only need to set this if both vim_cv_memmove_handles_overlap
+ and vim_cv_bcopy_handles_overlap are set to "no".
+
+vim_cv_memmove_handles_overlap:
+ Whether the "memmove" C library call is able to copy overlapping
+ memory regions. Set to "yes" if it does or "no" if it does not.
+
+vim_cv_stat_ignores_slash:
+ Whether the "stat" C library call ignores trailing slashes in the path
+ name. Set to "yes" if it ignores them or "no" if it does not ignore
+ them.
+
+vim_cv_tgetent:
+ Whether the "tgetent" terminal library call returns a zero or non-zero
+ value when it encounters an unknown terminal. Set to either the string
+ "zero" or "non-zero", corresponding.
+
+vim_cv_terminfo:
+ Whether the environment has terminfo support. Set to "yes" if so,
+ otherwise set to "no".
+
+vim_cv_toupper_broken:
+ Whether the "toupper" C library function works correctly. Set to "yes"
+ if you know it's broken, otherwise set to "no".
+
+vim_cv_tty_group:
+ The default group of pseudo terminals. Either set to the numeric value
+ of your tty group or to "world" if they are world accessible.
+
+vim_cv_tty_mode:
+ The default mode of pseudo terminals if they are not world accessible.
+ Most probably the value "0620".
+
+
+4. EXAMPLE:
+===========
+
+Assuming the target system string is "armeb-xscale-linux-gnu" (a Intel XScale
+system) with glibc and ncurses, the call to configure would look like this:
+
+ac_cv_sizeof_int=4 \
+vim_cv_getcwd_broken=no \
+vim_cv_memmove_handles_overlap=yes \
+vim_cv_stat_ignores_slash=yes \
+vim_cv_tgetent=zero \
+vim_cv_terminfo=yes \
+vim_cv_toupper_broken=no \
+vim_cv_tty_group=world \
+./configure \
+ --build=i586-linux \
+ --host=armeb-xscale-linux-gnu \
+ --target=armeb-xscale-linux-gnu \
+ --with-tlib=ncurses
+
+
+
+Written 2007 by Marc Haisenko <marc@darkdust.net> for the VIM project.