amd-catalyst.mk 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. ################################################################################
  2. #
  3. # amd-catalyst
  4. #
  5. ################################################################################
  6. AMD_CATALYST_VERSION = 15.9
  7. AMD_CATALYST_VERBOSE_VER = 15.201.1151
  8. AMD_CATALYST_SITE = http://www2.ati.com/drivers/linux
  9. AMD_CATALYST_DL_OPTS = --referer='http://support.amd.com'
  10. AMD_CATALYST_SOURCE = amd-catalyst-$(AMD_CATALYST_VERSION)-linux-installer-$(AMD_CATALYST_VERBOSE_VER)-x86.x86_64.zip
  11. AMD_CATALYST_LICENSE = AMD Software License
  12. AMD_CATALYST_LICENSE_FILES = LICENSE.TXT
  13. AMD_CATALYST_INSTALL_STAGING = YES
  14. AMD_CATALYST_SUFFIX = $(if $(BR2_x86_64),_64)
  15. AMD_CATALYST_ARCH_DIR = $(@D)/arch/x86$(AMD_CATALYST_SUFFIX)
  16. AMD_CATALYST_LIB_SUFFIX = $(if $(BR2_x86_64),64)
  17. define AMD_CATALYST_EXTRACT_CMDS
  18. unzip -q $(AMD_CATALYST_DL_DIR)/$(AMD_CATALYST_SOURCE) -d $(@D)
  19. $(SHELL) $(@D)/AMD-Catalyst-$(AMD_CATALYST_VERSION)-Linux-installer-$(AMD_CATALYST_VERBOSE_VER)-x86.x86_64.run --extract $(@D)
  20. endef
  21. ifeq ($(BR2_PACKAGE_AMD_CATALYST_MODULE),y)
  22. AMD_CATALYST_MODULE_SUBDIRS = common/lib/modules/fglrx/build_mod/2.6.x
  23. AMD_CATALYST_MODULE_MAKE_OPTS = \
  24. CFLAGS_MODULE="-DCOMPAT_ALLOC_USER_SPACE=arch_compat_alloc_user_space"
  25. define AMD_CATALYST_PREPARE_MODULE
  26. # The Makefile expects to have source in the folder 2.6.x
  27. cp $(@D)/common/lib/modules/fglrx/build_mod/*.{c,h} \
  28. $(@D)/common/lib/modules/fglrx/build_mod/2.6.x
  29. # This static lib is required during the link
  30. cp $(@D)/arch/x86$(AMD_CATALYST_SUFFIX)/lib/modules/fglrx/build_mod/libfglrx_ip.a \
  31. $(@D)/common/lib/modules/fglrx/build_mod/2.6.x
  32. endef
  33. AMD_CATALYST_POST_PATCH_HOOKS += AMD_CATALYST_PREPARE_MODULE
  34. $(eval $(kernel-module))
  35. endif
  36. ifeq ($(BR2_PACKAGE_AMD_CATALYST_OPENCL),y)
  37. AMD_CATALYST_OCL_SUFFIX = $(if $(BR2_x86_64),64,32)
  38. AMD_CATALYST_OPENCL_FILES = \
  39. libOpenCL.so.1 \
  40. libaticalcl.so \
  41. libamdocl$(AMD_CATALYST_OCL_SUFFIX).so \
  42. libamdocl12cl$(AMD_CATALYST_OCL_SUFFIX).so
  43. define AMD_CATALYST_INSTALL_OPENCL
  44. $(foreach f,$(AMD_CATALYST_OPENCL_FILES), \
  45. $(INSTALL) -D -m 0755 $(AMD_CATALYST_ARCH_DIR)/usr/lib$(AMD_CATALYST_LIB_SUFFIX)/$(f) $(TARGET_DIR)/usr/lib/$(f)
  46. )
  47. ln -sf libOpenCL.so.1 \
  48. $(TARGET_DIR)/usr/lib/libOpenCL.so
  49. $(INSTALL) -m 0755 $(AMD_CATALYST_ARCH_DIR)/usr/bin/clinfo \
  50. $(TARGET_DIR)/usr/bin/clinfo
  51. $(INSTALL) -D -m 0644 $(AMD_CATALYST_ARCH_DIR)/etc/OpenCL/vendors/amdocl$(AMD_CATALYST_OCL_SUFFIX).icd \
  52. $(TARGET_DIR)/etc/OpenCL/vendors/amdocl$(AMD_CATALYST_OCL_SUFFIX).icd
  53. endef
  54. endif
  55. ifeq ($(BR2_PACKAGE_AMD_CATALYST_XORG), y)
  56. # GL headers are needed by any package that wants to use libgl, so they need to
  57. # be installed before any user of it. The only way to do so is to have this
  58. # package depends on mesa3d-headers.
  59. AMD_CATALYST_DEPENDENCIES += mesa3d-headers
  60. AMD_CATALYST_PROVIDES = libgl
  61. AMD_CATALYST_X11R6_LIB = $(@D)/xpic$(if $(BR2_x86_64),_64a)/usr/X11R6/lib$(AMD_CATALYST_LIB_SUFFIX)
  62. define AMD_CATALYST_INSTALL_GL_LIBS
  63. $(INSTALL) -m 0644 $(AMD_CATALYST_ARCH_DIR)/usr/X11R6/lib$(AMD_CATALYST_LIB_SUFFIX)/fglrx/fglrx-libGL.so.1.2 \
  64. $(1)/usr/lib
  65. ln -sf fglrx-libGL.so.1.2 $(1)/usr/lib/libGL.so.1.2
  66. ln -sf fglrx-libGL.so.1.2 $(1)/usr/lib/libGL.so.1
  67. ln -sf fglrx-libGL.so.1.2 $(1)/usr/lib/libGL.so
  68. endef
  69. define AMD_CATALYST_INSTALL_STAGING_XORG
  70. $(call AMD_CATALYST_INSTALL_GL_LIBS,$(STAGING_DIR))
  71. $(INSTALL) -D -m 0644 package/amd-catalyst/gl.pc \
  72. $(STAGING_DIR)/usr/lib/pkgconfig/gl.pc
  73. endef
  74. AMD_CATALYST_XORG_DRIVERS_FILES = modules/amdxmm.so \
  75. modules/drivers/fglrx_drv.so \
  76. modules/linux/libfglrxdrm.so
  77. define AMD_CATALYST_INSTALL_XORG
  78. # Xorg drivers
  79. $(foreach f,$(AMD_CATALYST_XORG_DRIVERS_FILES), \
  80. $(INSTALL) -D -m 0755 $(AMD_CATALYST_X11R6_LIB)/$(f) \
  81. $(TARGET_DIR)/usr/lib/xorg/$(f)
  82. )
  83. # Xorg is not able to detect the driver automatically
  84. $(INSTALL) -D -m 0644 package/amd-catalyst/20-fglrx.conf \
  85. $(TARGET_DIR)/etc/X11/xorg.conf.d/20-fglrx.conf
  86. # Common files: containing binary profiles about GPUs,
  87. # required by the fglrx_drv xorg driver
  88. $(INSTALL) -d $(TARGET_DIR)/etc/ati
  89. $(INSTALL) -m 0644 $(@D)/common/etc/ati/* $(TARGET_DIR)/etc/ati/
  90. # DRI and GLX xorg modules: by default DRI is activated,
  91. # these modules are required by the fglrx_drv.so xorg driver
  92. $(INSTALL) -D -m 0644 $(AMD_CATALYST_ARCH_DIR)/usr/X11R6/lib$(AMD_CATALYST_LIB_SUFFIX)/modules/dri/fglrx_dri.so \
  93. $(TARGET_DIR)/usr/lib/dri/fglrx_dri.so
  94. $(INSTALL) -D -m 0644 $(AMD_CATALYST_X11R6_LIB)/modules/extensions/fglrx/fglrx-libglx.so \
  95. $(TARGET_DIR)/usr/lib/xorg/modules/extensions/libglx.so
  96. $(INSTALL) -D -m 0644 $(AMD_CATALYST_X11R6_LIB)/modules/glesx.so \
  97. $(TARGET_DIR)/usr/lib/xorg/modules/glesx.so
  98. # Userspace GL libraries, also runtime dependency of most of the cmdline
  99. # tools
  100. $(INSTALL) -m 0644 $(AMD_CATALYST_ARCH_DIR)/usr/X11R6/lib$(AMD_CATALYST_LIB_SUFFIX)/*.so \
  101. $(TARGET_DIR)/usr/lib/
  102. $(call AMD_CATALYST_INSTALL_GL_LIBS,$(TARGET_DIR))
  103. # Runtime dependency required by libfglrxdrm.so
  104. $(INSTALL) -m 0644 $(AMD_CATALYST_ARCH_DIR)/usr/lib$(AMD_CATALYST_LIB_SUFFIX)/libatiuki.so.1.0 \
  105. $(TARGET_DIR)/usr/lib/
  106. ln -sf libatiuki.so.1.0 \
  107. $(TARGET_DIR)/usr/lib/libatiuki.so.1
  108. endef
  109. endif
  110. ifeq ($(BR2_PACKAGE_AMD_CATALYST_CMDLINE_TOOLS), y)
  111. AMD_CATALYST_CMDLINE_TOOLS_FILES = \
  112. atiode \
  113. atiodcli \
  114. fgl_glxgears \
  115. aticonfig \
  116. amd-console-helper \
  117. fglrxinfo
  118. define AMD_CATALYST_INSTALL_CMDLINE_TOOLS
  119. $(INSTALL) -m 0755 $(AMD_CATALYST_ARCH_DIR)/usr/sbin/atieventsd \
  120. $(TARGET_DIR)/usr/sbin
  121. $(foreach f,$(AMD_CATALYST_CMDLINE_TOOLS_FILES), \
  122. $(INSTALL) -D -m 0755 $(AMD_CATALYST_ARCH_DIR)/usr/X11R6/bin/$(f) \
  123. $(TARGET_DIR)/usr/bin/$(f)
  124. )
  125. endef
  126. endif
  127. ifeq ($(BR2_PACKAGE_AMD_CATALYST_CCCLE), y)
  128. define AMD_CATALYST_INSTALL_CCCLE
  129. $(INSTALL) -m 0755 $(AMD_CATALYST_ARCH_DIR)/usr/X11R6/bin/amdcccle \
  130. $(TARGET_DIR)/usr/bin/amdcccle
  131. $(INSTALL) -m 0755 $(AMD_CATALYST_ARCH_DIR)/usr/sbin/amdnotifyui \
  132. $(TARGET_DIR)/usr/sbin/amdnotifyui
  133. endef
  134. endif
  135. define AMD_CATALYST_INSTALL_STAGING_CMDS
  136. $(call AMD_CATALYST_INSTALL_STAGING_XORG)
  137. endef
  138. define AMD_CATALYST_INSTALL_TARGET_CMDS
  139. $(call AMD_CATALYST_INSTALL_XORG)
  140. $(call AMD_CATALYST_INSTALL_CMDLINE_TOOLS)
  141. $(call AMD_CATALYST_INSTALL_CCCLE)
  142. $(call AMD_CATALYST_INSTALL_OPENCL)
  143. endef
  144. $(eval $(generic-package))