Subversion Repositories Kolibri OS

Rev

Rev 4111 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1.  
  2. CC = gcc
  3. LD = ld
  4. AS = as
  5. FASM = fasm.exe
  6.  
  7. DEFINES  = -D__KERNEL__ -DCONFIG_X86_32
  8.  
  9. DDK_TOPDIR      = /d/kos/kolibri/drivers/ddk
  10. DRV_INCLUDES    = /d/kos/kolibri/drivers/include
  11. DRM_TOPDIR   = $(CURDIR)/..
  12.  
  13. INCLUDES =      -I$(DRV_INCLUDES) -I$(DRV_INCLUDES)/drm \
  14.                 -I$(DRV_INCLUDES)/linux -I$(DRV_INCLUDES)/linux/uapi
  15.  
  16. CFLAGS_OPT = -Os -fomit-frame-pointer -fno-builtin-printf -mno-stack-arg-probe
  17. CFLAGS_OPT+= -mpreferred-stack-boundary=2 -mincoming-stack-boundary=2 -mno-ms-bitfields -flto
  18. CFLAGS   = -c $(INCLUDES) $(DEFINES) $(CFLAGS_OPT)
  19.  
  20. LIBPATH:= ../../../ddk
  21.  
  22. LIBS:=    -lddk -lcore -lgcc
  23.  
  24. LDFLAGS = -e,_drvEntry,-nostdlib,-shared,-s,--image-base,0,--file-alignment,512,--section-alignment,4096
  25.  
  26.  
  27. NAME:=    vmwgfx
  28.  
  29. HFILES:=                $(DRV_INCLUDES)/linux/types.h           \
  30.                         $(DRV_INCLUDES)/linux/list.h            \
  31.                         $(DRV_INCLUDES)/linux/pci.h             \
  32.                         $(DRV_INCLUDES)/drm/drm.h               \
  33.                         $(DRV_INCLUDES)/drm/drmP.h              \
  34.                         $(DRV_INCLUDES)/drm/drm_edid.h          \
  35.                         $(DRV_INCLUDES)/drm/drm_crtc.h          \
  36.                         $(DRV_INCLUDES)/drm/drm_mode.h          \
  37.                         $(DRV_INCLUDES)/drm/drm_mm.h
  38.  
  39. NAME_SRC=                                                       \
  40.                         main.c                                  \
  41.                         pci.c                                   \
  42.                         vmwgfx_buffer.c                         \
  43.                         vmwgfx_context.c                        \
  44.                         vmwgfx_dmabuf.c                         \
  45.                         vmwgfx_drv.c                            \
  46.                         vmwgfx_execbuf.c                        \
  47.                         vmwgfx_fence.c                          \
  48.                         vmwgfx_fifo.c                           \
  49.                         vmwgfx_gmr.c                            \
  50.                         vmwgfx_gmrid_manager.c          \
  51.                         vmwgfx_irq.c                            \
  52.                         vmwgfx_kms.c                            \
  53.                         vmwgfx_marker.c                         \
  54.                         vmwgfx_mob.c                            \
  55.                         vmwgfx_resource.c                       \
  56.                         vmwgfx_scrn.c                           \
  57.                         vmwgfx_shader.c                         \
  58.                         vmwgfx_surface.c                        \
  59.                         vmwgfx_ttm_glue.c                       \
  60.                         ../hdmi.c                                   \
  61.                         ../i2c/i2c-core.c                       \
  62.                         ../ttm/ttm_bo.c                         \
  63.                         ../ttm/ttm_bo_manager.c         \
  64.                         ../ttm/ttm_execbuf_util.c       \
  65.                         ../ttm/ttm_lock.c                       \
  66.                         ../ttm/ttm_memory.c                     \
  67.                         ../ttm/ttm_object.c                     \
  68.                         ../ttm/ttm_page_alloc.c         \
  69.                         ../ttm/ttm_tt.c                         \
  70.                         ../drm_crtc.c                           \
  71.                         ../drm_crtc_helper.c            \
  72.                         ../drm_drv.c                            \
  73.                         ../drm_edid.c                           \
  74.                         ../drm_gem.c                            \
  75.                         ../drm_global.c                         \
  76.                         ../drm_hashtab.c                        \
  77.                         ../drm_irq.c                            \
  78.                         ../drm_mm.c                                 \
  79.                         ../drm_modes.c                          \
  80.                         ../drm_pci.c                            \
  81.                         ../drm_stub.c                           \
  82.                         ../drm_vma_manager.c
  83.  
  84.  
  85.  
  86.  
  87. NAME_OBJS =  $(patsubst %.S, %.o, $(patsubst %.asm, %.o,\
  88.             $(patsubst %.c, %.o, $(NAME_SRC))))
  89.  
  90.  
  91.  
  92. all: $(NAME).dll
  93.  
  94. $(NAME).dll: $(NAME_OBJS) $(SRC_DEP) $(HFILES) vmw.lds Makefile
  95.         $(CC) $(CFLAGS_OPT) -fwhole-program -nostdlib -Wl,-L$(LIBPATH),$(LDFLAGS),-T,vmw.lds -o $@ $(NAME_OBJS) $(LIBS)
  96.         kpack $@  
  97.  
  98.  
  99. %.o : %.c $(HFILES) Makefile.lto
  100.         $(CC) $(CFLAGS) $(DEFINES) -o $@ $<
  101.  
  102. %.o : %.S $(HFILES) Makefile.lto
  103.         as -o $@ $<
  104.  
  105.  
  106.  
  107.  
  108.