Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. CC = kos32-gcc
  2. LD = kos32-ld
  3. KPACK = kpack
  4.  
  5.  
  6. DDK_TOPDIR      = ../../ddk
  7. DRV_INCLUDES    = ../../include
  8.  
  9. INCLUDES =      -I$(DRV_INCLUDES)       \
  10.                         -I$(DRV_INCLUDES)/asm   \
  11.                         -I$(DRV_INCLUDES)/uapi  \
  12.                         -I$(DRV_INCLUDES)/drm
  13. NAME=c_drv
  14.  
  15. DEFINES = -DKOLIBRI -D__KERNEL__ -DCONFIG_X86_32 -DCONFIG_DMI -DCONFIG_TINY_RCU
  16. DEFINES+= -DCONFIG_X86_L1_CACHE_SHIFT=6 -DCONFIG_ARCH_HAS_CACHE_LINE_SIZE
  17. DEFINES+= -DCONFIG_PRINTK
  18.  
  19. CFLAGS= -c -O2 $(DEFINES) $(INCLUDES) -march=i686 -fno-ident -msse2 -fomit-frame-pointer -fno-builtin-printf
  20. CFLAGS+= -mno-stack-arg-probe -mpreferred-stack-boundary=2 -mincoming-stack-boundary=2 -mno-ms-bitfields
  21.  
  22. LIBPATH = -L $(DDK_TOPDIR)
  23. LIBPATH+= -L ../../../contrib/sdk/lib
  24.  
  25. LIBS:=    -lddk -lcore -lgcc
  26.  
  27. PE_FLAGS = --major-os-version 0 --minor-os-version 7 --major-subsystem-version 0 \
  28.           --minor-subsystem-version 5 --subsystem native
  29.  
  30. LDFLAGS = -nostdlib -shared -s $(PE_FLAGS) --image-base 0\
  31.           --file-alignment 512 --section-alignment 4096
  32.  
  33. all: $(NAME).dll
  34.  
  35. $(NAME).dll:
  36.         $(CC) $(CFLAGS) c_drv.c
  37.         $(LD) $(LIBPATH) $(LDFLAGS) -T drv.lds c_drv.o -o $@ $(NAME_OBJS) $(LIBS)
  38.         $(KPACK) $(NAME).dll
  39.  
  40. clean:
  41.         rm -rf *.o *.dll
  42.  
  43.