annotate Makefile @ 23:e7b9148156c4

arch: hopefully the rest of the SVC related code
author Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
date Wed, 27 Apr 2011 14:48:56 -0400
parents ca308c8ca41e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
1 CROSS_COMPILE=s390x-linux-
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
2 AS=$(CROSS_COMPILE)as
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
3 CC=$(CROSS_COMPILE)gcc
7
d24d69066fc0 added C++ build support
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
4 CXX=$(CROSS_COMPILE)g++
0
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
5 LD=$(CROSS_COMPILE)ld
12
40af39d064fa Refactor the arch code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 7
diff changeset
6 AR=$(CROSS_COMPILE)ar
0
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
7 OBJCOPY=$(CROSS_COMPILE)objcopy
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
8
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
9 MAKEFLAGS += -rR --no-print-directory
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
10 CFLAGS=-g -fno-strict-aliasing -fno-builtin -nostdinc -nostdlib -Wall -m64 -I include/ -O2
7
d24d69066fc0 added C++ build support
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
11 CXXFLAGS=$(CFLAGS)
0
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
12 LDFLAGS=-m elf64_s390
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
13
2
68bac03da6ff a bit of reorganization
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 0
diff changeset
14 BINS=sarpn
68bac03da6ff a bit of reorganization
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 0
diff changeset
15
12
40af39d064fa Refactor the arch code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 7
diff changeset
16 sarpn_OBJS=src/init.o arch/arch.a
40af39d064fa Refactor the arch code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 7
diff changeset
17
21
ca308c8ca41e beginning of svc support code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
18 ARCH_OBJS=arch/io.o arch/cons.o arch/ebcdic.o arch/fba.o arch/ioint.o \
ca308c8ca41e beginning of svc support code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 14
diff changeset
19 arch/svc.o arch/svcint.o
0
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
20
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
21 .PHONY: all build clean tags
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
22
2
68bac03da6ff a bit of reorganization
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 0
diff changeset
23 all: $(BINS) loader.bin
0
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
24 @echo "Image is `stat -c %s sarpn` bytes"
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
25 @echo "Loader is `stat -c %s loader.bin` bytes"
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
26
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
27 clean:
2
68bac03da6ff a bit of reorganization
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 0
diff changeset
28 rm -f $(sarpn_OBJS)
13
216ad602944f Makefile: clean should remove all the arch .o files
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 12
diff changeset
29 rm -f $(ARCH_OBJS)
2
68bac03da6ff a bit of reorganization
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 0
diff changeset
30 rm -f $(BINS)
0
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
31 rm -f loader.bin ipl/*.o ipl/*.rto ipl/ipl_ccws.S cscope.out
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
32
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
33 tags:
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
34 cscope -R -b
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
35
2
68bac03da6ff a bit of reorganization
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 0
diff changeset
36 sarpn: $(sarpn_OBJS)
0
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
37 $(LD) $(LDFLAGS) -T scripts/linker.script -o $@ $^
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
38
12
40af39d064fa Refactor the arch code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 7
diff changeset
39 arch/arch.a: $(ARCH_OBJS)
40af39d064fa Refactor the arch code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 7
diff changeset
40 $(AR) rc $@ $^
40af39d064fa Refactor the arch code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 7
diff changeset
41
0
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
42 %.o: %.S
23
e7b9148156c4 arch: hopefully the rest of the SVC related code
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 21
diff changeset
43 $(CC) $(CFLAGS) -c -o $@ $<
0
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
44
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
45 %.o: %.c
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
46 $(CC) $(CFLAGS) -include include/system.h -c -o $@ $<
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
47
7
d24d69066fc0 added C++ build support
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
48 %.o: %.cpp
d24d69066fc0 added C++ build support
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
49 $(CXX) $(CXXFLAGS) -include include/system.h -c -o $@ $<
d24d69066fc0 added C++ build support
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
50
0
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
51 #
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
52 # IPL specific bits
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
53 #
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
54
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
55 .PRECIOUS: ipl/loader.o ipl/loader_c.o ipl/loader_asm.o ipl/setmode.o \
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
56 ipl/ipl_ccws.o ipl/ipl.o
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
57
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
58 loader.bin: ipl/ipl.rto ipl/ipl_ccws.rto ipl/setmode.rto ipl/loader.rto
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
59 cat $^ > $@
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
60 ( len=`stat -c %s "$@"`; dif=`expr $$len % 80`; if [ $$dif -ne 0 ]; then dif=`expr 80 - $$dif`; dd if=/dev/zero bs=1 count=$$dif 2> /dev/null >> "$@"; fi)
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
61
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
62 ipl/loader_asm.o: ipl/loader_asm.S
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
63 $(AS) -m64 -o $@ $<
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
64
3
ec991c3809db make the ipl code generic
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 2
diff changeset
65 ipl/loader_c.o: ipl/loader.c
ec991c3809db make the ipl code generic
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents: 2
diff changeset
66 $(CC) $(CFLAGS) -DBLOCK_SIZE=80 -c -o $@ $<
0
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
67
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
68 ipl/ipl_ccws.S: ipl/setmode.rto ipl/loader.rto
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
69 bash scripts/gen_ccws.sh $@
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
70
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
71 ipl/loader.rto: ipl/loader.o
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
72 $(OBJCOPY) -O binary -j .text -j .data -j .rodata $< $@
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
73
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
74 ipl/loader.o: ipl/loader_c.o ipl/loader_asm.o
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
75 $(LD) -melf64_s390 -T ipl/linker.script -o $@ $^
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
76
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
77 ipl/%.rto: ipl/%.o
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
78 $(OBJCOPY) -O binary -j .text $< $@
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
79
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
80 ipl/%.o: ipl/%.S
5d9f272f4db6 import template
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
81 $(AS) -m64 -o $@ $<