initial commit
[A2k.git] / src / Makefile
blobe8f648363b602b39a4a57155f1b6686c3fe1820d
1 ASM = nasm
2 LD = ld
3 RM = rm -f
4 GCC = gcc
5 CP = cp
6 MKDIR = mkdir -p
7 SED = sed
8 #ADA_INCLUDE = "/usr/lib/gcc/i486-slackware-linux/4.2.4/adainclude"
9 ADA_INCLUDE = `gnatls -v | grep -o "/.*/adainclude"`
12 main:
13 make clean
14 make ada_rtl
15 make gnat_lib
16 make boot.o
17 make kernel_entry.o
18 make kernel.bin
20 ADA_RTL = system.ads interfac.ads ada.ads a-unccon.ads s-stalib.ad? \
21 s-soflin.ad? unchconv.ads s-memory.ad? s-stache.ad? s-stoele.ad? \
22 a-except.ad? s-traent.ads s-parame.ad? s-crtl.ads s-secsta.ad? \
23 s-maccod.ads s-wchcon.ad? s-wchstw.ad? \
24 s-traceb.ad? a-uncdea.ads s-unstyp.ads \
25 a-elchha.ad? s-exctab.ad? unchdeal.ads s-htable.ad? \
26 s-wchcnv.ad? s-wchjis.ad? s-purexc.ads
28 ADA_RTL_SUB = a-exstat.adb a-exextr.adb a-exexpr.adb a-excpol.adb a-excach.adb \
29 a-exexda.adb s-traent.adb
31 GNAT_LIB = a-elchha
33 ada_rtl:
34 $(MKDIR) adainclude adalib
35 $(foreach f,$(ADA_RTL),cp $(ADA_INCLUDE)/$f adainclude;)
36 $(foreach f,$(ADA_RTL_SUB),cp $(ADA_INCLUDE)/$f adainclude;)
37 $(foreach f,$(ADA_RTL),gnatmake -gnatA -D adalib -a adainclude/$f;)
39 gnat_lib:
40 $(RM) ./adalib/a-elchha.o ./adalib/a-elchha.ali
41 $(foreach f,$(GNAT_LIB), \
42 gnatmake -a -f -c -nostdinc -nostdlib -aI./adainclude -aL./adalib -D gnatlib gnatlib/$f;)
44 boot.o:
45 gnatmake -c -Wall -O -nostdinc -nostdlib -aI./adainclude -aI../crtl -aO./adalib boot.adb
48 kernel_entry.o:
49 $(ASM) $(ASM_FLAGS) -f aout $*.asm
51 kernel.bin:
52 make -C ../crtl
53 make -C ../dummy
54 ifeq ($(BUILD),elf)
55 $(SED) -i -e "s|^ *\(OUTPUT_FORMAT\).*|\1(\"elf32-i386\")|" link.ld
56 $(LD) -T link.ld -o kernel.bin kernel_entry.o boot.o \
57 i386-text_console.o gnatlib/*.o ../lib/libdummy.so ../lib/libc.so
58 else
59 $(SED) -i -e "s|^ *\(OUTPUT_FORMAT\).*|\1(\"binary\")|" link.ld
60 $(LD) -T link.ld -o kernel.bin kernel_entry.o boot.o \
61 i386-text_console.o gnatlib/*.o ../lib/libdummy.a ../lib/libc.a
62 endif
64 clean:
65 $(RM) *.o *.ali *~ b~* *.s kernel.bin
66 $(RM) -r adainclude adalib
67 $(RM) gnatlib/*.ali gnatlib/*.o