maximgusev

Untitled

Jan 31st, 2017
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.44 KB | None | 0 0
  1. ##
  2. ## This file is part of the coreboot project.
  3. ##
  4. ## Copyright (C) 2016 Google Inc.
  5. ##
  6. ## This program is free software; you can redistribute it and/or modify
  7. ## it under the terms of the GNU General Public License as published by
  8. ## the Free Software Foundation; version 2 of the License.
  9. ##
  10. ## This program is distributed in the hope that it will be useful,
  11. ## but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. ## GNU General Public License for more details.
  14. ##
  15.  
  16. TOOLCHAIN_ARCHES := i386 x64 arm aarch64 mips riscv power8 nds32le elbrus
  17.  
  18. help_toolchain help::
  19. @echo '*** Toolchain targets ***'
  20. @echo ' crossgcc - Build coreboot cross-compilers for all platforms'
  21. @echo ' crosstools - Build coreboot cross-compiler and GDB for all platforms'
  22. @echo ' crossgcc-clean - Remove all built coreboot cross-compilers'
  23. @echo ' iasl - Build coreboot IASL compiler (built by all cross targets)'
  24. @echo ' clang - Build coreboot clang compiler'
  25. @echo ' gnumake - Build coreboot make'
  26. @echo ' test-toolchain - Reports if toolchain components are out of date'
  27. @echo ' crossgcc-ARCH - Build cross-compiler for specific architecture'
  28. @echo ' crosstools-ARCH - Build cross-compiler with GDB for specific architecture'
  29. @echo ' ARCH can be "$(subst $(spc),"$(comma) ",$(TOOLCHAIN_ARCHES))"'
  30. @echo ' Use "make [target] CPUS=#" to build toolchain using multiple cores'
  31. @echo
  32.  
  33. # For the toolchain builds, use CPUS=x to use multiple processors to build
  34. # use BUILDGCC_OPTIONS= to set any crossgcc command line options
  35. # Example: BUILDGCC_OPTIONS='-t' will keep temporary files after build
  36. crossgcc: clean-for-update
  37. $(MAKE) -C util/crossgcc all_without_gdb SKIP_CLANG=1
  38.  
  39. .PHONY: crossgcc crossgcc-i386 crossgcc-x64 crossgcc-arm crossgcc-aarch64 \
  40. crossgcc-mips crossgcc-riscv crossgcc-elbrus crossgcc-power8 crossgcc-clean iasl \
  41. clang crosstools-i386 crosstools-x64 crosstools-arm \
  42. crosstools-aarch64 crosstools-mips crosstools-riscv crosstools-elbrus crosstools-power8 \
  43. jenkins-build-toolchain gnumake
  44.  
  45. $(foreach arch,$(TOOLCHAIN_ARCHES),crossgcc-$(arch)): clean-for-update
  46. $(MAKE) -C util/crossgcc $(patsubst crossgcc-%,build-%,$@) build_iasl SKIP_GDB=1
  47.  
  48. crosstools: clean-for-update
  49. $(MAKE) -C util/crossgcc all_with_gdb SKIP_CLANG=1
  50.  
  51. iasl: clean-for-update
  52. $(MAKE) -C util/crossgcc build_iasl
  53.  
  54. clang: clean-for-update
  55. $(MAKE) -C util/crossgcc build_clang
  56.  
  57. gnumake: clean-for-update
  58. $(MAKE) -C util/crossgcc build_make
  59.  
  60. $(foreach arch,$(TOOLCHAIN_ARCHES),crosstools-$(arch)): clean-for-update
  61. $(MAKE) -C util/crossgcc $(patsubst crosstools-%,build-%,$@) build_iasl
  62.  
  63. crossgcc-clean: clean-for-update
  64. $(MAKE) -C util/crossgcc clean
  65.  
  66. test-toolchain:
  67. ifeq ($(COMPILER_OUT_OF_DATE),1)
  68. echo "The coreboot toolchain is not the current version."
  69. $(error )
  70. else
  71. echo "The coreboot toolchain is the current version."
  72. endif # ifeq ($(COMPILER_OUT_OF_DATE),1)
  73.  
  74. # This target controls what the jenkins builder tests
  75. jenkins-build-toolchain: BUILDGCC_OPTIONS ?= -y --nocolor
  76. jenkins-build-toolchain:
  77. $(MAKE) crosstools clang KEEP_SOURCES=1 BUILDGCC_OPTIONS='$(BUILDGCC_OPTIONS)'
  78. rm -f .xcompile
  79. PATH=$(if $(DEST),$(DEST)/bin,$(top)/util/crossgcc/xgcc/bin):$$PATH; $(MAKE) what-jenkins-does
  80. -cat .xcompile
  81. PATH=$(if $(DEST),$(DEST)/bin,$(top)/util/crossgcc/xgcc/bin):$$PATH; $(MAKE) test-toolchain
Add Comment
Please, Sign In to add comment