blob: cb70b7da40f12625683ce63aaf6dec98d6ee4755 [file] [log] [blame]
Andrew Sculla158e912018-07-16 11:32:13 +01001OUT ?= out
Wedson Almeida Filho987c0ff2018-06-20 16:34:38 +01002
Andrew Scull49a8e832018-08-03 13:02:09 +01003# Set path to prebuilts
4UNNAME_S := $(shell uname -s | tr '[:upper:]' '[:lower:]')
5PREBUILTS := prebuilts/$(UNNAME_S)-x64
6GN ?= $(PREBUILTS)/gn/gn
7NINJA ?= $(PREBUILTS)/ninja/ninja
Wedson Almeida Filho987c0ff2018-06-20 16:34:38 +01008
Andrew Scull114096b2018-07-31 14:42:16 +01009# Configure the build arguments
10GCC ?= false
11ARCH ?= aarch64
12PLATFORM ?= qemu
13
Andrew Sculla158e912018-07-16 11:32:13 +010014all: $(OUT)/build.ninja
15 @$(NINJA) -C $(OUT)
Andrew Scull5e96ef72018-07-18 10:46:26 +010016
Andrew Scull49a8e832018-08-03 13:02:09 +010017$(OUT)/build.ninja: $(OUT)/args.gn
Andrew Sculla158e912018-07-16 11:32:13 +010018 @$(GN) gen $(OUT)
Andrew Scull5e96ef72018-07-18 10:46:26 +010019
Andrew Scull114096b2018-07-31 14:42:16 +010020# Configure the build by loading the configuration arguments for the
21# architecture and platform
22$(OUT)/args.gn: build/arch/$(ARCH)/$(PLATFORM).args
23 @echo Copying config for $(ARCH) on $(PLATFORM)
24 @mkdir -p $(OUT)
25 @echo "arch = \"$(ARCH)\"" >> $@
26 @echo "use_gcc = $(GCC)" >> $@
27 @echo >> $@
28 @cat $< >> $@
29
Wedson Almeida Filho987c0ff2018-06-20 16:34:38 +010030clean:
Andrew Sculla158e912018-07-16 11:32:13 +010031 @$(NINJA) -C $(OUT) -t clean
Wedson Almeida Filho987c0ff2018-06-20 16:34:38 +010032
Andrew Sculla158e912018-07-16 11:32:13 +010033clobber:
34 rm -rf $(OUT)
Andrew Scull7364a8e2018-07-19 15:39:29 +010035
36# see .clang-format
Andrew Scull4f170f52018-07-19 12:58:20 +010037format:
Andrew Sculla158e912018-07-16 11:32:13 +010038 @find src/ -name *.c -o -name *.h | xargs clang-format -style file -i
39 @find inc/ -name *.c -o -name *.h | xargs clang-format -style file -i
Andrew Scullaf5e53e2018-07-23 19:19:46 +010040 @find test/ -name *.c -o -name *.h | xargs clang-format -style file -i
Andrew Sculla158e912018-07-16 11:32:13 +010041 @find . -name *.gn -o -name *.gni -exec $(GN) format {} \;
Andrew Scull4f170f52018-07-19 12:58:20 +010042
Andrew Sculla158e912018-07-16 11:32:13 +010043# TODO: get this working again. Need to extract a compile database to get the correct args.
Andrew Scull7364a8e2018-07-19 15:39:29 +010044# see .clang-tidy
Andrew Sculla158e912018-07-16 11:32:13 +010045# tidy: $(GLOBAL_OFFSETS)
46# @find $(ROOT_DIR)src/ -name *.c -exec clang-tidy {} -fix -- -target $(TARGET) $(COPTS) \;