Nothing
[ZeXOS.git] / Makefile
blob18f6317d028d052f34621b69dcfd784b9bd28fee
1 .SUFFIXES: .asm
3 CFLAGS =-Wall -O -fstrength-reduce -fomit-frame-pointer -fcombine-regs
4 # defines
5 MAKEFILE=Makefile
6 MAKEDEP=$(MAKEFILE)
7 LDSCRIPT=boot/link.ld
8 INCDIR =include/
9 NASM =nasm -f elf
10 CC =gcc -m32 -g -O2 -nostdinc -fno-builtin -I$(INCDIR)
11 #-Wall -W
12 LD =ld -m elf_i386 -g -T $(LDSCRIPT) -nostdlib
13 LIBC=lib/libc.a
14 OBJS =boot/start.o kernel/main.o kernel/system_call.o kernel/init.o kernel/console.o kernel/commands.o kernel/memory.o kernel/cpu.o kernel/env.o kernel/elf.o kernel/dev.o kernel/gdt.o kernel/idt.o kernel/isrs.o kernel/irq.o kernel/timer.o kernel/vfs.o kernel/user.o kernel/sched.o kernel/tty.o drivers/char/video/video.o drivers/char/kbd/kbd.o drivers/char/rs232/rs232.o drivers/block/floppy.o drivers/block/biosdisk.o drivers/fs/fat.o apps/fs/ls.o apps/fs/cat.o apps/fs/exec.o apps/fs/cd.o apps/fs/mount.o
16 # targets
17 all: kernel.bin
19 install: kernel.bin
20 mount /dev/fd0 mnt
21 cp -f kernel.bin mnt/kernel.bin
22 umount mnt
23 qemu -fda /dev/fd0
25 clean:
26 rm -f *.o kernel.bin $(OBJS)
27 # implicit rules
28 .s.o:
29 $(CC) -c -o$@ $<
31 .asm.o:
32 $(NASM) -o$@ $<
34 .c.o:
35 $(CC) -c -o$@ $<
37 #: dependencies
38 # boot
39 boot/start.o: boot/start.asm $(MAKEDEP)
40 # kernel
41 kernel/main.o: kernel/main.c $(MAKEDEP)
42 kernel/init.o: kernel/init.c $(MAKEDEP)
43 kernel/gdt.o: kernel/gdt.c $(MAKEDEP)
44 kernel/idt.o: kernel/idt.c $(MAKEDEP)
45 kernel/isrs.o: kernel/isrs.c $(MAKEDEP)
46 kernel/irq.o: kernel/irq.c $(MAKEDEP)
47 kernel/timer.o: kernel/timer.c $(MAKEDEP)
48 kernel/sched.o: kernel/sched.c $(MAKEDEP)
49 kernel/console.o: kernel/console.c $(MAKEDEP)
50 kernel/commands.o: kernel/commands.c $(MAKEDEP)
51 kernel/memory.o: kernel/memory.c $(MAKEDEP)
52 kernel/cpu.o: kernel/cpu.c $(MAKEDEP)
53 kernel/env.o: kernel/env.c $(MAKEDEP)
54 kernel/elf.o: kernel/elf.c $(MAKEDEP)
55 kernel/dev.o: kernel/dev.c $(MAKEDEP)
56 kernel/vfs.o: kernel/vfs.c $(MAKEDEP)
57 kernel/user.o: kernel/user.c $(MAKEDEP)
58 kernel/tty.o: kernel/tty.c $(MAKEDEP)
59 kernel/system_call.o: kernel/system_call.c $(MAKEDEP)
60 # drivers
61 drivers/char/video.o: drivers/char/video/video.c $(MAKEDEP)
62 drivers/char/kbd.o: drivers/char/kbd/kbd.c $(MAKEDEP)
63 drivers/char/rs232/rs232.o: drivers/char/rs232/rs232.c $(MAKEDEP)
64 drivers/block/floppy.o: drivers/block/floppy.c $(MAKEDEP)
65 drivers/block/biosdisk.o: drivers/block/biosdisk.c $(MAKEDEP)
66 drivers/fs/fat.o: drivers/fs/fat.c $(MAKEDEP)
67 # apps
68 apps/fs/ls.o: apps/fs/ls.c $(MAKEDEP)
69 apps/fs/cat.o: apps/fs/cat.c $(MAKEDEP)
70 apps/fs/exec.o: apps/fs/exec.c $(MAKEDEP)
71 apps/fs/cd.o: apps/fs/cd.c $(MAKEDEP)
72 apps/fs/mount.o: apps/fs/mount.c $(MAKEDEP)
74 # explicit rules
75 kernel.bin: $(OBJS) $(LDSCRIPT) $(LIBC) $(MAKEDEP)
76 $(LD) -o$@ $(OBJS) $(LIBC)
78 #objdump --source $@ >krnl.lst
79 #nm $@ | sort >krnl.sym
80 #strip $@