mesa: build gbm_gallium_drm.dll

git-svn-id: svn://kolibrios.org@5081 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Sergey Semyonov (Serge) 2014-09-01 20:27:45 +00:00
parent ebd6772509
commit d08e7bcd0c
3 changed files with 42 additions and 30 deletions

View File

@ -17,7 +17,7 @@ INC_I965:= -I$(SRC_DIR)/libdrm/intel -I$(SRC_DIR)/libdrm/include/drm
LIBPATH:= -L$(SDK_DIR)/lib -L/home/autobuild/tools/win32/mingw32/lib
LIBS:= -ldll -lglsl -lGL.dll -lsupc++ -lgcc_eh -ldrm.dll -lexpat -lc.dll -lgcc
LIBS:= -ldll -lgallium -lc.dll -lgcc
MESA_DEFS= -DMESA_DLL -DBUILD_GL32 -DMAPI_MODE_UTIL -DMAPI_TABLE_NUM_STATIC=87 -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_SSE_ASM -DMAPI_TABLE_NUM_DYNAMIC=256
MESA_DEFS+= -DPACKAGE_NAME=\"Mesa\" -DPACKAGE_VERSION=\"9.2.5\" -DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi\?product=Mesa\"
@ -156,27 +156,34 @@ GALLIUM_SRC:= \
auxiliary/vl/vl_video_buffer.c
GBM_SRC = \
auxiliary/pipe-loader/pipe_loader.c \
auxiliary/pipe-loader/pipe_loader_drm.c \
auxiliary/pipe-loader/pipe_loader_sw.c \
state_trackers/gbm/gbm_drm.c \
targets/gbm/gbm.c
WINSYS_SRC = \
targets/gbm/gbm.c \
winsys/sw/null/null_sw_winsys.c
I965_SRC = \
$(NULL)
GALLIUM_OBJS = $(patsubst %.c, %.o, $(patsubst %.S, %.o, $(patsubst %.cpp, %.o, $(GALLIUM_SRC))))
GBM_OBJS = $(patsubst %.c, %.o, $(GBM_SRC))
OSMESA_OBJS = $(patsubst %.c, %.o, $(patsubst %.cpp, %.o, $(OSMESA_SRC)))
I965_OBJS = $(patsubst %.c, %.o, $(patsubst %.cpp, %.o, $(I965_SRC)))
# targets
all: libgallium.a
all: libgallium.a gbm_gallium_drm.dll
libgallium.a: $(GALLIUM_OBJS) Makefile
$(AR) crs $@ $(GALLIUM_OBJS)
mv -f $@ $(SDK_DIR)/lib
gbm_gallium_drm.dll: libgallium.a $(GBM_OBJS) Makefile
$(LD) $(LDFLAGS) $(LIBPATH) -o $@ $(GBM_OBJS) gbm.def $(LIBS)
mv -f $@ $(SDK_DIR)/bin
i965_dri.drv: $(I965_OBJS) $(MESA_OBJS) dri.def Makefile
$(LD) $(LDFLAGS) $(LIBPATH) -o $@ $(I965_OBJS) $(MESA_OBJS) dri.def $(LIBS)
mv -f $@ $(SDK_DIR)/bin

View File

@ -0,0 +1,4 @@
VERSION 6.5
EXPORTS
DllStartup
gbm_backend DATA

View File

@ -212,25 +212,27 @@ uint32_t get_os_button()
static inline uint32_t get_service(char *name)
{
uint32_t retval = 0;
asm volatile ("int $0x40"
:"=a"(retval)
:"a"(68),"b"(16),"c"(name)
:"memory");
uint32_t retval = 0;
__asm__ __volatile__(
"int $0x40"
:"=a"(retval)
:"a"(68),"b"(16),"c"(name)
:"memory");
return retval;
return retval;
};
static inline int call_service(ioctl_t *io)
{
int retval;
int retval;
asm volatile("int $0x40"
:"=a"(retval)
:"a"(68),"b"(17),"c"(io)
:"memory","cc");
__asm__ __volatile__(
"int $0x40"
:"=a"(retval)
:"a"(68),"b"(17),"c"(io)
:"memory","cc");
return retval;
return retval;
};
@ -340,26 +342,26 @@ typedef union
static inline ufile_t load_file(const char *path)
{
ufile_t uf;
ufile_t uf;
__asm__ __volatile__ (
"int $0x40"
:"=A"(uf.raw)
:"a" (68), "b"(27),"c"(path));
__asm__ __volatile__ (
"int $0x40"
:"=A"(uf.raw)
:"a" (68), "b"(27),"c"(path));
return uf;
return uf;
};
static inline ufile_t LoadFile(const char *path) __attribute__ ((alias ("load_file")));
static inline int GetScreenSize()
{
int retval;
int retval;
__asm__ __volatile__(
"int $0x40"
:"=a"(retval)
:"a"(61), "b"(1));
return retval;
__asm__ __volatile__(
"int $0x40"
:"=a"(retval)
:"a"(61), "b"(1));
return retval;
}
static inline
@ -461,7 +463,6 @@ static inline void Blit(void *bitmap, int dst_x, int dst_y,
__asm__ __volatile__(
"int $0x40"
::"a"(73),"b"(0),"c"(&bc.dstx));
};
#endif