Add release code
[thunix.git] / Makefile
blobfad4de6cfc4f17daadcf2dd7c3f81271219331ff
1 AS = as -Iinclude
2 CC = gcc -nostdinc -Iinclude -Wall -Wno-unused-function
3 LD = ld
4 LDFLAGS = --oformat binary -N
6 KERNEL_OBJS = boot/head.o init/init.o kernel/kernel.o fs/ext2_fs.o mm/mm.o
8 .PHONY :clean backup
12 .c.s:
13 ${CC} -S -o $*.s $<
14 .s.o:
15 ${AS} -o $*.o $<
16 .c.o:
17 ${CC} -c -o $*.o $<
20 all: thunix.img doc
22 thunix.img: boot.img kernel.img
23 cat boot.img kernel.img > thunix.img
24 @wc -c thunix.img
28 boot/boot.o:
29 (cd boot; make)
30 init/init.o:
31 (cd init; make)
32 kernel/kernel.o:
33 (cd kernel; make)
34 fs/ext2_fs.o:
35 (cd fs; make)
36 mm/mm.o:
37 (cd mm; make)
39 boot.img: boot/bootsect.o
40 ${LD} ${LDFLAGS} -e start -Ttext 0x7c00 -o $@ $<
41 kernel.img: ${KERNEL_OBJS}
42 ${LD} ${LDFLAGS} -e pm_mode -Ttext 0x0000 -o $@ ${KERNEL_OBJS}
44 doc:
45 (cd doc; make)
47 release: clean
48 ./release
50 bochs:
51 bochs -qf bochsrc
52 clean:
53 rm -f bochsout.txt boot.img kernel.img *~ include/*~
54 (cd boot; make clean)
55 (cd init; make clean)
56 (cd kernel; make clean)
57 (cd fs; make clean)
58 (cd mm; make clean)
59 (cd doc; make clean)
61 dep:
62 (cd kernel; make dep)
63 (cd fs; make dep)