Mercurial > sarpn
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 |
rev | line source |
---|---|
0 | 1 CROSS_COMPILE=s390x-linux- |
2 AS=$(CROSS_COMPILE)as | |
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 | 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 | 7 OBJCOPY=$(CROSS_COMPILE)objcopy |
8 | |
9 MAKEFLAGS += -rR --no-print-directory | |
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 | 12 LDFLAGS=-m elf64_s390 |
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 | 20 |
21 .PHONY: all build clean tags | |
22 | |
2
68bac03da6ff
a bit of reorganization
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
0
diff
changeset
|
23 all: $(BINS) loader.bin |
0 | 24 @echo "Image is `stat -c %s sarpn` bytes" |
25 @echo "Loader is `stat -c %s loader.bin` bytes" | |
26 | |
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 | 31 rm -f loader.bin ipl/*.o ipl/*.rto ipl/ipl_ccws.S cscope.out |
32 | |
33 tags: | |
34 cscope -R -b | |
35 | |
2
68bac03da6ff
a bit of reorganization
Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
parents:
0
diff
changeset
|
36 sarpn: $(sarpn_OBJS) |
0 | 37 $(LD) $(LDFLAGS) -T scripts/linker.script -o $@ $^ |
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 | 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 | 44 |
45 %.o: %.c | |
46 $(CC) $(CFLAGS) -include include/system.h -c -o $@ $< | |
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 | 51 # |
52 # IPL specific bits | |
53 # | |
54 | |
55 .PRECIOUS: ipl/loader.o ipl/loader_c.o ipl/loader_asm.o ipl/setmode.o \ | |
56 ipl/ipl_ccws.o ipl/ipl.o | |
57 | |
58 loader.bin: ipl/ipl.rto ipl/ipl_ccws.rto ipl/setmode.rto ipl/loader.rto | |
59 cat $^ > $@ | |
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) | |
61 | |
62 ipl/loader_asm.o: ipl/loader_asm.S | |
63 $(AS) -m64 -o $@ $< | |
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 | 67 |
68 ipl/ipl_ccws.S: ipl/setmode.rto ipl/loader.rto | |
69 bash scripts/gen_ccws.sh $@ | |
70 | |
71 ipl/loader.rto: ipl/loader.o | |
72 $(OBJCOPY) -O binary -j .text -j .data -j .rodata $< $@ | |
73 | |
74 ipl/loader.o: ipl/loader_c.o ipl/loader_asm.o | |
75 $(LD) -melf64_s390 -T ipl/linker.script -o $@ $^ | |
76 | |
77 ipl/%.rto: ipl/%.o | |
78 $(OBJCOPY) -O binary -j .text $< $@ | |
79 | |
80 ipl/%.o: ipl/%.S | |
81 $(AS) -m64 -o $@ $< |