Andrew Scull | a158e91 | 2018-07-16 11:32:13 +0100 | [diff] [blame] | 1 | OUT ?= out |
Wedson Almeida Filho | 987c0ff | 2018-06-20 16:34:38 +0100 | [diff] [blame] | 2 | |
Andrew Scull | 49a8e83 | 2018-08-03 13:02:09 +0100 | [diff] [blame] | 3 | # Set path to prebuilts |
| 4 | UNNAME_S := $(shell uname -s | tr '[:upper:]' '[:lower:]') |
| 5 | PREBUILTS := prebuilts/$(UNNAME_S)-x64 |
| 6 | GN ?= $(PREBUILTS)/gn/gn |
| 7 | NINJA ?= $(PREBUILTS)/ninja/ninja |
Wedson Almeida Filho | 987c0ff | 2018-06-20 16:34:38 +0100 | [diff] [blame] | 8 | |
Andrew Scull | 114096b | 2018-07-31 14:42:16 +0100 | [diff] [blame] | 9 | # Configure the build arguments |
| 10 | GCC ?= false |
| 11 | ARCH ?= aarch64 |
| 12 | PLATFORM ?= qemu |
| 13 | |
Andrew Scull | be199df | 2018-08-07 17:42:31 +0100 | [diff] [blame^] | 14 | .PHONY: all |
Andrew Scull | a158e91 | 2018-07-16 11:32:13 +0100 | [diff] [blame] | 15 | all: $(OUT)/build.ninja |
| 16 | @$(NINJA) -C $(OUT) |
Andrew Scull | 5e96ef7 | 2018-07-18 10:46:26 +0100 | [diff] [blame] | 17 | |
Andrew Scull | 49a8e83 | 2018-08-03 13:02:09 +0100 | [diff] [blame] | 18 | $(OUT)/build.ninja: $(OUT)/args.gn |
Andrew Scull | be199df | 2018-08-07 17:42:31 +0100 | [diff] [blame^] | 19 | @$(GN) --export-compile-commands gen $(OUT) |
Andrew Scull | 5e96ef7 | 2018-07-18 10:46:26 +0100 | [diff] [blame] | 20 | |
Andrew Scull | 114096b | 2018-07-31 14:42:16 +0100 | [diff] [blame] | 21 | # Configure the build by loading the configuration arguments for the |
| 22 | # architecture and platform |
| 23 | $(OUT)/args.gn: build/arch/$(ARCH)/$(PLATFORM).args |
| 24 | @echo Copying config for $(ARCH) on $(PLATFORM) |
| 25 | @mkdir -p $(OUT) |
| 26 | @echo "arch = \"$(ARCH)\"" >> $@ |
| 27 | @echo "use_gcc = $(GCC)" >> $@ |
| 28 | @echo >> $@ |
| 29 | @cat $< >> $@ |
| 30 | |
Andrew Scull | be199df | 2018-08-07 17:42:31 +0100 | [diff] [blame^] | 31 | .PHONY: clean |
Wedson Almeida Filho | 987c0ff | 2018-06-20 16:34:38 +0100 | [diff] [blame] | 32 | clean: |
Andrew Scull | a158e91 | 2018-07-16 11:32:13 +0100 | [diff] [blame] | 33 | @$(NINJA) -C $(OUT) -t clean |
Wedson Almeida Filho | 987c0ff | 2018-06-20 16:34:38 +0100 | [diff] [blame] | 34 | |
Andrew Scull | be199df | 2018-08-07 17:42:31 +0100 | [diff] [blame^] | 35 | .PHONY: clobber |
Andrew Scull | a158e91 | 2018-07-16 11:32:13 +0100 | [diff] [blame] | 36 | clobber: |
| 37 | rm -rf $(OUT) |
Andrew Scull | 7364a8e | 2018-07-19 15:39:29 +0100 | [diff] [blame] | 38 | |
| 39 | # see .clang-format |
Andrew Scull | be199df | 2018-08-07 17:42:31 +0100 | [diff] [blame^] | 40 | .PHONY: format |
Andrew Scull | 4f170f5 | 2018-07-19 12:58:20 +0100 | [diff] [blame] | 41 | format: |
Andrew Scull | a158e91 | 2018-07-16 11:32:13 +0100 | [diff] [blame] | 42 | @find src/ -name *.c -o -name *.h | xargs clang-format -style file -i |
| 43 | @find inc/ -name *.c -o -name *.h | xargs clang-format -style file -i |
Andrew Scull | af5e53e | 2018-07-23 19:19:46 +0100 | [diff] [blame] | 44 | @find test/ -name *.c -o -name *.h | xargs clang-format -style file -i |
Andrew Scull | a158e91 | 2018-07-16 11:32:13 +0100 | [diff] [blame] | 45 | @find . -name *.gn -o -name *.gni -exec $(GN) format {} \; |
Andrew Scull | 4f170f5 | 2018-07-19 12:58:20 +0100 | [diff] [blame] | 46 | |
Andrew Scull | 7364a8e | 2018-07-19 15:39:29 +0100 | [diff] [blame] | 47 | # see .clang-tidy |
Andrew Scull | be199df | 2018-08-07 17:42:31 +0100 | [diff] [blame^] | 48 | .PHONY: tidy |
| 49 | tidy: $(OUT)/build.ninja |
| 50 | @$(NINJA) -C $(OUT) |
| 51 | @echo "Tidying..." |
| 52 | @find src/ -name *.c -exec clang-tidy -p $(OUT) -fix {} \; |
| 53 | @find test/ -name *.c -exec clang-tidy -p $(OUT) -fix {} \; |