Subversion Repositories Kolibri OS

Rev

Rev 859 | Rev 862 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1.  
  2. CC = gcc
  3. FASM = fasm.exe
  4.  
  5. INCLUDE = include/
  6.  
  7. DEFS = -DUSE_SMP -DCONFIG_DEBUG
  8.  
  9. CFLAGS = -c -O2  -I $(INCLUDE) -fomit-frame-pointer -fno-builtin-printf -masm=intel
  10. LDFLAGS = -shared -s -Map kernel.map --image-base 0x100000 --file-alignment 32
  11.  
  12. KERNEL_SRC:=                            \
  13.                 kernel.asm              \
  14.                 core/memory.inc         \
  15.                 core/heap.inc           \
  16.                 core/taskman.inc        \
  17.                 core/sys32.inc          \
  18.                 core/dll.inc            \
  19.                 data32.inc
  20.  
  21. PE_SRC:=                        \
  22.                 init.c          \
  23.                 mm.c            \
  24.                 slab.c          \
  25.                 heap.c          \
  26.                 spinlock.c      \
  27.                 boot/boot.asm   \
  28.                 boot/start.asm
  29.                
  30.  
  31. PE_OBJS = $(patsubst %.s, bin/%.obj, $(patsubst %.asm, bin/%.obj,\
  32.             $(patsubst %.c, bin/%.obj, $(PE_SRC))))
  33.  
  34.  
  35. all: kernel.gz
  36.  
  37. kernel.gz :kernel.mnt
  38.         7z a -tgzip kernel.gz kernel.mnt  
  39.  
  40. kernel.mnt: kernel.obj $(PE_OBJS) Makefile ld.x
  41.         ld $(LDFLAGS) -T ld.x -o $@ kernel.obj $(PE_OBJS)
  42.  
  43. bin/%.obj : core/%.c Makefile
  44.         $(CC) $(CFLAGS) -o $@ $<
  45.        
  46. bin/%.obj: %.asm
  47.         $(FASM) $< $@
  48.  
  49. kernel.obj: $(KERNEL_SRC)
  50.         $(FASM) kernel.asm
  51.  
  52. all: $(SUBDIRS)
  53.  
  54. .PHONY: all
  55.