annotate src/usr/makfile-armgccbc @ 17:c0f6f3eb25ae

argccbc
author kono
date Sun, 25 Feb 2018 18:48:39 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
1 include ../makefile.inc
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
2
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
3 CC = /usr/local/arm-cbc/bin/arm-none-eabi-gcc -B/usr/local/arm-cbc/bin/arm-none-eabi-
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
4 AS = arm-linux-gnu-gcc
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
5 LD = arm-linux-gnu-ld
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
6 OBJCOPY = arm-linux-gnu-objcopy
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
7 OBJDUMP = arm-linux-gnu-objdump
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
8 CFLAGS = -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -I. -g -O0
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
9
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
10 ASFLAGS =
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
11
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
12 LIBGCC = $(shell $(CC) -print-libgcc-file-name)
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
13
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
14 LINK_BIN = $(call quiet-command,$(LD) $(LDFLAGS) \
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
15 -T $(1) -o $(2) $(3) $(LIBS) -b binary $(4), " LINK $(TARGET_DIR)$@")
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
16
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
17 LINK_INIT = $(call quiet-command,$(LD) $(LDFLAGS) \
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
18 $(1) -o $@.out $<, " LINK $(TARGET_DIR)$@")
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
19 OBJCOPY_INIT = $(call quiet-command,$(OBJCOPY) \
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
20 -S -O binary --prefix-symbols="_binary_$@" $@.out $@, " OBJCOPY $(TARGET_DIR)$@")
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
21 AS_WITH = $(call quiet-command,$(AS) $(ASFLAGS) \
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
22 $(1) -c -o $@ $<," AS $(TARGET_DIR)$@")
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
23
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
24 CFLAGS += -iquote ../
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
25 ASFLAGS += -I ../
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
26 ULIB = ulib.o usys.o printf.o umalloc.o
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
27
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
28 MKFS = ../tools/mkfs
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
29 FS_IMAGE = ../build/fs.img
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
30
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
31 UPROGS=\
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
32 _cat\
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
33 _echo\
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
34 _grep\
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
35 _init\
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
36 _kill\
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
37 _ln\
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
38 _ls\
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
39 _mkdir\
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
40 _rm\
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
41 _sh\
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
42 _stressfs\
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
43 _usertests\
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
44 _wc\
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
45 _zombie\
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
46 _hello\
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
47 _forktest\
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
48
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
49
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
50 all: $(FS_IMAGE)
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
51
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
52 _%: %.o $(ULIB)
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
53 $(LD) $(LDFLAGS) -N -e main -Ttext 0 -o $@ $^ -L ../ $(LIBGCC)
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
54 $(OBJDUMP) -S $@ > $*.asm
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
55 $(OBJDUMP) -t $@ | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$$/d' > $*.sym
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
56
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
57 _forktest: forktest.o $(ULIB)
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
58 # forktest has less library code linked in - needs to be small
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
59 # in order to be able to max out the proc table.
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
60 $(LD) $(LDFLAGS) -N -e main -Ttext 0 -o _forktest forktest.o ulib.o usys.o
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
61 $(OBJDUMP) -S _forktest > forktest.asm
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
62
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
63 $(FS_IMAGE): $(MKFS) $(UPROGS)
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
64 $(MKFS) $@ $(UPROGS) UNIX
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
65 $(OBJDUMP) -S usys.o > usys.asm
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
66
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
67 clean:
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
68 rm -f *.o *.d *.asm *.sym $(FS_IMAGE) \
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
69 .gdbinit \
c0f6f3eb25ae argccbc
kono
parents:
diff changeset
70 $(UPROGS)