~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/include/nolibc/Makefile

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: GPL-2.0
  2 # Makefile for nolibc installation and tests
  3 include ../../scripts/Makefile.include
  4 
  5 # we're in ".../tools/include/nolibc"
  6 ifeq ($(srctree),)
  7 srctree := $(patsubst %/tools/include/,%,$(dir $(CURDIR)))
  8 endif
  9 
 10 # when run as make -C tools/ nolibc_<foo> the arch is not set
 11 ifeq ($(ARCH),)
 12 include $(srctree)/scripts/subarch.include
 13 ARCH = $(SUBARCH)
 14 endif
 15 
 16 # OUTPUT is only set when run from the main makefile, otherwise
 17 # it defaults to this nolibc directory.
 18 OUTPUT ?= $(CURDIR)/
 19 
 20 ifeq ($(V),1)
 21 Q=
 22 else
 23 Q=@
 24 endif
 25 
 26 nolibc_arch := $(patsubst arm64,aarch64,$(ARCH))
 27 arch_file := arch-$(nolibc_arch).h
 28 all_files := \
 29                 compiler.h \
 30                 crt.h \
 31                 ctype.h \
 32                 errno.h \
 33                 nolibc.h \
 34                 signal.h \
 35                 stackprotector.h \
 36                 std.h \
 37                 stdarg.h \
 38                 stdbool.h \
 39                 stdint.h \
 40                 stdlib.h \
 41                 string.h \
 42                 sys.h \
 43                 time.h \
 44                 types.h \
 45                 unistd.h \
 46                 stdio.h \
 47 
 48 
 49 # install all headers needed to support a bare-metal compiler
 50 all: headers
 51 
 52 install: help
 53 
 54 help:
 55         @echo "Supported targets under nolibc:"
 56         @echo "  all                 call \"headers\""
 57         @echo "  clean               clean the sysroot"
 58         @echo "  headers             prepare a sysroot in tools/include/nolibc/sysroot"
 59         @echo "  headers_standalone  like \"headers\", and also install kernel headers"
 60         @echo "  help                this help"
 61         @echo ""
 62         @echo "These targets may also be called from tools as \"make nolibc_<target>\"."
 63         @echo ""
 64         @echo "Currently using the following variables:"
 65         @echo "  ARCH    = $(ARCH)"
 66         @echo "  OUTPUT  = $(OUTPUT)"
 67         @echo ""
 68 
 69 # Note: when ARCH is "x86" we concatenate both x86_64 and i386
 70 headers:
 71         $(Q)mkdir -p $(OUTPUT)sysroot
 72         $(Q)mkdir -p $(OUTPUT)sysroot/include
 73         $(Q)cp $(all_files) $(OUTPUT)sysroot/include/
 74         $(Q)if [ "$(ARCH)" = "x86" ]; then      \
 75                 sed -e                          \
 76                   's,^#ifndef _NOLIBC_ARCH_X86_64_H,#if !defined(_NOLIBC_ARCH_X86_64_H) \&\& defined(__x86_64__),' \
 77                   arch-x86_64.h;                \
 78                 sed -e                          \
 79                   's,^#ifndef _NOLIBC_ARCH_I386_H,#if !defined(_NOLIBC_ARCH_I386_H) \&\& !defined(__x86_64__),' \
 80                   arch-i386.h;                  \
 81         elif [ -e "$(arch_file)" ]; then        \
 82                 cat $(arch_file);               \
 83         else                                    \
 84                 echo "Fatal: architecture $(ARCH) not yet supported by nolibc." >&2; \
 85                 exit 1;                         \
 86         fi > $(OUTPUT)sysroot/include/arch.h
 87 
 88 headers_standalone: headers
 89         $(Q)$(MAKE) -C $(srctree) headers
 90         $(Q)$(MAKE) -C $(srctree) headers_install INSTALL_HDR_PATH=$(OUTPUT)sysroot
 91 
 92 clean:
 93         $(call QUIET_CLEAN, nolibc) rm -rf "$(OUTPUT)sysroot"

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php