ada-examples-19990820
Line | |
---|
1 | # |
---|
2 | # Makefile for hello world example |
---|
3 | # |
---|
4 | |
---|
5 | MAIN=hello |
---|
6 | |
---|
7 | # Tool paths |
---|
8 | target=i386-rtems |
---|
9 | tooldir=/home/joel/gnat-3.10p/${target}/ |
---|
10 | rtemsdir=${tooldir}/rtems/pc386 |
---|
11 | |
---|
12 | # Tool names |
---|
13 | GCC=${tooldir}/bin/${target}-gcc |
---|
14 | GNATMAKE=${tooldir}/bin/${target}-gnatmake |
---|
15 | SIZE=${tooldir}/bin/${target}-size |
---|
16 | OBJCOPY=${tooldir}/bin/${target}-objcopy |
---|
17 | NM=${tooldir}/bin/${target}-nm |
---|
18 | |
---|
19 | HEADERADDR=0x00097E00 |
---|
20 | START16FILE=$(rtemsdir)/lib/start16.bin |
---|
21 | START16ADDR=0x00097C00 |
---|
22 | RELOCADDR=0x00100000 |
---|
23 | |
---|
24 | CARGS=-B${rtemsdir}/lib/ -specs bsp_specs -qrtems \ |
---|
25 | -Wl,-Ttext,$(RELOCADDR) -Wl,--oformat,elf32-i386 |
---|
26 | |
---|
27 | all: init.o $(MAIN) |
---|
28 | |
---|
29 | $(MAIN): $(MAIN).exe |
---|
30 | ln $(MAIN).exe $(MAIN) |
---|
31 | |
---|
32 | $(MAIN).exe: init.o |
---|
33 | $(GNATMAKE) -v -O -gnata -gnatE -gnato $(MAIN) -g -o $(MAIN).obj \ |
---|
34 | -bargs -r \ |
---|
35 | -cargs $(CARGS) \ |
---|
36 | -largs $(CARGS) init.o |
---|
37 | $(SIZE) $(MAIN).obj |
---|
38 | $(NM) -g -n $(MAIN).obj >$(MAIN).num |
---|
39 | $(OBJCOPY) -O a.out-i386 \ |
---|
40 | --remove-section=.rodata \ |
---|
41 | --remove-section=.comment \ |
---|
42 | --remove-section=.note \ |
---|
43 | --strip-unneeded $(MAIN).obj $@ |
---|
44 | $(OBJCOPY) -O binary $(MAIN).obj $(MAIN).bin |
---|
45 | $(rtemsdir)/build-tools/bin2boot -v $(MAIN).bt $(HEADERADDR) \ |
---|
46 | $(START16FILE) $(START16ADDR) 0 $(MAIN).bin $(RELOCADDR) 0 |
---|
47 | |
---|
48 | |
---|
49 | init.o: init.c |
---|
50 | $(GCC) -O4 -g -Wall -ansi -fasm $(CARGS) \ |
---|
51 | -DGNAT_MAIN_STACKSPACE=16 -c init.c |
---|
52 | |
---|
53 | clean: |
---|
54 | rm -f b_$(MAIN).c b_$(MAIN).o *.o *.ali $(MAIN) |
---|
Note: See
TracBrowser
for help on using the repository browser.