annotate src/makefile.inc @ 16:7eb81a3c4b29

kernel.elf
author tobaru
date Tue, 20 Feb 2018 18:12:18 +0900
parents 1d371d93ab4f
children 33c9000056b5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 # Cross-compiling (e.g., on Mac OS X, install arm-none-eabi-gcc with MacPorts)
11
mir3636
parents: 6
diff changeset
2
6
2617849843ec fedore virsh edit file
tobaru
parents: 0
diff changeset
3 CROSSCOMPILE := arm-linux-gnu-
0
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
16
7eb81a3c4b29 kernel.elf
tobaru
parents: 11
diff changeset
5 CC = /usr/local/cbclang/bin/clang
0
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 AS = $(CROSSCOMPILE)as
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 LD = $(CROSSCOMPILE)ld
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 OBJCOPY = $(CROSSCOMPILE)objcopy
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 OBJDUMP = $(CROSSCOMPILE)objdump
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10
11
mir3636
parents: 6
diff changeset
11 # CFLAGS = -march=armv6 -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -Werror -I. -g -O0
mir3636
parents: 6
diff changeset
12 CFLAGS = -target armv6-arm-none-eabi -I /net/open/Linux/arm/gcc-arm-none-eabi-7-2017-q4-major/arm-none-eabi/include/ /net/open/Linux/arm/gcc-arm-none-eabi-7-2017-q4-major/lib/gcc/arm-none-eabi/7.2.1/include-fixed/ -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -I. -g -O0
0
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 LDFLAGS = -L.
11
mir3636
parents: 6
diff changeset
14 # ASFLAGS = -march=armv6
mir3636
parents: 6
diff changeset
15 ASFLAGS = -target armv6-arm-none-eabi
0
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16
11
mir3636
parents: 6
diff changeset
17 #LIBGCC = $(shell $(gcc) -print-libgcc-file-name)
mir3636
parents: 6
diff changeset
18 LIBGCC = /net/open/Linux/arm/gcc-arm-none-eabi-7-2017-q4-major/lib/gcc/arm-none-eabi/7.2.1/libgcc.a
0
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 # host compiler
11
mir3636
parents: 6
diff changeset
21 # HOSTCC_preferred = gcc
16
7eb81a3c4b29 kernel.elf
tobaru
parents: 11
diff changeset
22 HOSTCC_preferred = /usr/local/cbclang/bin/clang
0
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 define get_hostcc
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 $(if $(shell which $(HOSTCC_preferred)),$(HOSTCC_preferred),"cc")
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 endef
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 HOSTCC := $(call get_hostcc)
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 # general rules
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 quiet-command = $(if $(V),$1,$(if $(2),@echo $2 && $1, @$1))
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 LINK_BIN = $(call quiet-command,$(LD) $(LDFLAGS) \
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 -T $(1) -o $(2) $(3) $(LIBS) -b binary $(4), " LINK $(TARGET_DIR)$@")
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 LINK_INIT = $(call quiet-command,$(LD) $(LDFLAGS) \
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 $(1) -o $@.out $<, " LINK $(TARGET_DIR)$@")
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 OBJCOPY_INIT = $(call quiet-command,$(OBJCOPY) \
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 -S -O binary --prefix-symbols="_binary_$@" $@.out $@, " OBJCOPY $(TARGET_DIR)$@")
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 build-directory = $(shell mkdir -p build build/device build/lib)
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 build/%.o: %.c
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 $(call build-directory)
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 $(call quiet-command,$(CC) $(CFLAGS) \
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 -c -o $@ $<," CC $(TARGET_DIR)$@")
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 AS_WITH = $(call quiet-command,$(CC) $(ASFLAGS) \
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 $(1) -c -o $@ $<," AS $(TARGET_DIR)$@")
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 build/%.o: %.S
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 $(call build-directory)
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 $(call AS_WITH, )