All user-space apps ware moved to 8MB virtual address address (link.ld changes);...
[ZeXOS.git] / kernel / kernel.mak
blob22d716e60f8e740d9da735e2f3e0c4b75f18b9fd
1 .SUFFIXES: .asm
3 # defines
4 MAKEFILE=Makefile
5 MAKEDEP=$(MAKEFILE)
6 LDSCRIPT=arch/main/link.ld
7 INCDIR =include/
8 NASM =nasm -f elf
9 CC =gcc -m32
10 CFLAGS =-g -O2 -nostdinc -fno-builtin -fno-stack-protector -I$(INCDIR) -Ibuild/main/
11 LD =ld -m elf_i386
12 LDFLAGS =-g -T $(LDSCRIPT) -nostdlib
14 LIBC =lib/libc.a
15 LARCH =arch/arch.a
17 ifeq ($(ARCH),x86_64)
18 CC=gcc -m64
19 LD=ld -m elf_x86_64
20 endif
22 ifeq ($(ARCH),arm)
23 CC=arm-linux-gcc
24 CFLAGS=-g -Os -fno-builtin -ffreestanding -nostdinc -pipe -mcpu=arm926ej-s -mabi=apcs-gnu -nostdlib -nostartfiles -nodefaultlibs -ffixed-r8 -msoft-float -I$(INCDIR) -Ibuild/main/
25 LD=arm-linux-ld
26 endif
28 OBJS =arch/main/boot/start.o core/main.o core/init.o core/console.o core/commands.o core/mm/kmem.o core/mm/kzmem.o core/mm/dlmem.o core/mm/swmem.o core/mm/pmem.o core/mm/usermem.o core/env.o core/elf.o core/dev.o core/vfs.o core/fs.o core/user.o core/sched.o core/proc.o core/tty.o core/partition.o core/module.o core/spinlock.o core/mutex.o core/smp.o core/ioctl.o core/fd.o core/errno.o core/net/socket.o core/net/ips.o core/net/eth.o core/net/if.o core/net/arp.o core/net/packet.o core/net/tcp.o core/net/tcp6.o core/net/ip.o core/net/ipv6.o core/net/icmp.o core/net/icmp6.o core/net/ndp.o core/net/checksum.o core/net/udp.o core/net/udp6.o core/net/dns.o core/net/tun6.o core/net/unix.o drivers/char/video/video.o drivers/char/video/vesa.o drivers/char/video/gtext.o drivers/char/video/bga.o drivers/char/kbd/kbd.o drivers/char/rs232/rs232.o drivers/char/sound/speaker.o drivers/char/sound/sb16.o drivers/char/sound/es1370.o drivers/char/sound/ac97.o drivers/block/floppy.o drivers/block/drive.o drivers/fs/fat.o drivers/fs/fat16.o drivers/fs/zexfs.o drivers/fs/ext2.o drivers/fs/isofs.o drivers/fs/znfs.o drivers/bus/pci/pci.o drivers/bus/usb/usb.o drivers/net/pcnet32/pcnet32.o drivers/net/rtl8029/rtl8029.o drivers/net/rtl8139/rtl8139.o drivers/net/rtl8169/rtl8169.o drivers/char/mouse/com.o drivers/char/mouse/ps2.o utils/fs/ls.o utils/fs/cat.o utils/fs/cp.o utils/fs/rm.o utils/fs/cd.o utils/fs/mount.o utils/fs/mkdir.o utils/fs/fdisk.o utils/fs/touch.o utils/net/tftp.o utils/adm/adm.o
30 ifneq ($(strip $(wildcard .config)),)
32 # targets
33 all: $(OBJS) kernel.bin
35 endif
37 install: kernel.bin
38 mount /dev/fd0 mnt
39 cp -f kernel.bin mnt/kernel.bin
40 umount mnt
41 qemu -fda /dev/fd0
43 clean:
44 $(Q)make clean -C lib
45 $(Q)make clean -C arch/main
46 $(Q)rm include/arch
47 $(Q)rm -f *.o kernel.bin .directory .kconfig.d .tmpconfig.h .config .config.old arch/main $(OBJS)
48 $(Q)rm -rf build/main/utils build/main/config.h build/main/build.h build/main build/utils
49 @printf " CLEAN\n";
51 # implicit rules
52 .S.o:
53 @printf " ASM $(subst $(shell pwd)/,,$(@))\n";
54 $(Q)$(CC) -c -o$@ $<
56 .s.o:
57 @printf " ASM $(subst $(shell pwd)/,,$(@))\n";
58 $(Q)$(NASM) -o$@ $<
60 .c.o:
61 @printf " CC $(subst $(shell pwd)/,,$(@))\n";
62 $(Q)$(CC) $(CFLAGS) -c -o$@ $<
64 # explicit rules
65 kernel.bin: $(OBJS) $(LARCH) $(LDSCRIPT) $(LIBC) $(MAKEDEP)
66 @printf " LD $(subst $(shell pwd)/,,$(@))\n";
67 $(Q)$(LD) $(LDFLAGS) -o$@ $(OBJS) $(LARCH) $(LIBC)