Building linux headers in an non-linux environment

Richard H Lee ricardohenrylee at gmail.com
Fri Nov 2 20:37:12 EDT 2012


I'm trying to install linux headers for cygwin using crostool-ng.

ct-ng basically invokes the line:

make -C /home/richard/scratch/x86linux/.build/src/linux-3.5 
O=/home/richard/scratch/x86linux/.build/i386-unknown-linux-gnu/build/build-kernel-headers 
ARCH=x86 
INSTALL_HDR_PATH=/home/richard/x-tools/i386-unknown-linux-gnu/i386-unknown-linux-gnu/sysroot/usr 
V=1 headers_install

and it seems to have checked out v3.5 of the linux kernel.

The problem is that making the headers seems to require an existing set 
of headers already installed. The required headers seem to be in the 
include/ and arch/[target]/ directories.

What is the "correct" way to get the Makefile to use the source tree as 
the source for the linux headers?


In the top-level Makefile, I can see the following variable

LINUXINCLUDE    := -I$(srctree)/arch/$(hdr-arch)/include \
                    -Iarch/$(hdr-arch)/include/generated -Iinclude \
                    $(if $(KBUILD_SRC), -I$(srctree)/include) \
                    -include $(srctree)/include/linux/kconfig.h

but I'm not sure how to get this variable picked up. And I don't exactly 
know what to do with KBUILD_SRC.



More information about the Kernelnewbies mailing list