diff --git a/.gitignore b/.gitignore index 2e8285a7e6..7e9c1bfb50 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ version.ent blfs-bootscripts* xxx *.swp +*.bak local.mk diff --git a/shareddeps/drivers/libglvnd.xml.bak b/shareddeps/drivers/libglvnd.xml.bak deleted file mode 100644 index 81b8efb40e..0000000000 --- a/shareddeps/drivers/libglvnd.xml.bak +++ /dev/null @@ -1,312 +0,0 @@ - - - %general-entities; - - - -]> - - - - - libglvnd-&libglvnd-version; - - - libglvnd - - - - Introduction to libglvnd - - - The libglvnd package dispatchs API calls to a given driver vendor at - runtime. Some of the libraries are simply wrappers to the main - dispatcher. Drivers that are built with libglvnd in mind provide their - own OpenGL implementations. For , it will install - libEGL_mesa and libGLX_mesa. For , - it will provide libEGL_nvidia, - libGLESv2_nvidia, and - libGLX_nvidia. Each - implementation is specific to the driver it comes from. - - - - The benefit of doing it that way is that a driver doesn't have to obey to - the architecture an OpenGL vendor applies nor being absorbed by the - vendor. - - - - Read to decide if you want to install OpenGL - implementations from this provider. - - - - - - Download: - - - - - libglvnd Dependencies - - Recommended - - - - If is not installed, this package will not - provide libGL or libGLX. libOpenGL will still be built. Many - build systems will expect libGL to be present, so it is heavily - recommended to install before installing - this package. - - - - - - - Installation of libglvnd - - - Install libglvnd by running the following commands: - - -mkdir build && -cd build && - -meson setup --prefix=/usr \ - --buildtype=release \ - -D gles1=false \ - -D hgl=false \ - .. && - -ninja - - - Now as the root user: - - -ninja install - - - - - lib32 Installation of libglvnd - - - Install lib32-libglvnd by running the following commands: - - -rm -rf * && -CC="gcc -m32" CXX="g++ -m32" \ -PKG_CONFIG_PATH=/usr/lib32/pkgconfig \ -meson setup --prefix=/usr \ - --libdir=/usr/lib32 \ - --buildtype=release \ - -D gles1=false \ - -D hgl=false \ - .. && - -ninja - - - Now as the root user: - - -DESTDIR=$PWD/DESTDIR ninja install && -cp -vr DESTDIR/usr/lib32/* /usr/lib32 && -rm -rf DESTDIR && -ldconfig - - - - - Command Explanations - - &options-meson; - - &meson-buildtype-release; - - - -D gles1=false: This disables an obsolete version - of OpenGL ES. - - - - -D hgl=false: This disables targetting Haiku by - default as this guide is for Linux, not Haiku. - - - - : If you don't need OpenGL ES, use - this option. Be sure to read . - - - - - - List of packages With Issues - - - While installing this package can help prevent a lot of issues down the - road, this package can come with some caveats and all of them are in - relation to BLFS. BLFS naturally expects that the only OpenGL vendor is - Mesa, so the instructions will thus assume - that this package has not been installed. The following have known - issues, and solutions: - - - - - Mesa: In BLFS, a patch is listed in - the Mesa page and will - instruct you to apply it. This will cause an issue unless you explictly - tell the build system not to link against this package's libraries, - which means having it build its own OpenGL implementations, which will - cause issues of its own. The exact error the patch causes is a linking - error in the final set of steps when building the demos as it expects - functions that are not found in the specific libraries from this - package it tries to link against. - Either don't apply that patch or follow this book's page instead. Thanks to - Mesa's build system autodetecting if - libglvnd is installed, the installation - instructions don't change that much between this book and BLFS. The - main differences are lib32 support and not listing the demos - patch. - - - GLU: In BLFS, the GLU page explictly sets the GL - vendor to be Mesa as the build system will - otherwise expect libglvnd and - libOpenGL to be installed. - While the BLFS page instructions lead to a successful compilation, the - resulting library does not function properly. You should follow the - SLFS GLU page - instead. It also does check if the vendor is - Mesa. - - - - - - - Contents - - - Installed Programs - Installed Libraries - Installed Directories - - - None - - libEGL, - libGL, - libGLESv2, - libGLX, - libGLdispatch, and - libOpenGL - - - /usr/include/{EGL,GLES{2,3},glvnd,KHR} - - - - - - Short Descriptions - - - - - libEGL - - - contains EGL window-system API functions - - - libEGL - - - - - - libGL - - - is the legacy OpenGL library; wrapper library - calling libGLdispatch - and libGLX - - - libGL - - - - - - libGLESv2 - - - exposes OpenGL ES 2.x and 3.x entrypoints; wrapper library calling - libGLdispatch - - - libGLESv2 - - - - - - libGLX - - - dispatches GLX extensions to the right vendor - - - libGLX - - - - - - libGLdispatch - - - dispatches OpenGL and TLS to the right vendor - - - libGLdispatch - - - - - - libOpenGL - - - is the new OpenGL library and exposes OpenGL - entrypoints; wrapper library calling libGLdispatch - - - libOpenGL - - - - - - - - - diff --git a/shareddeps/drivers/vulkan-sdk.xml.bak b/shareddeps/drivers/vulkan-sdk.xml.bak deleted file mode 100644 index 2deda403eb..0000000000 --- a/shareddeps/drivers/vulkan-sdk.xml.bak +++ /dev/null @@ -1,358 +0,0 @@ - - - %general-entities; - - - -]> - - - - - Vulkan-SDK-&vulkan-sdk; - - - Vulkan-SDK - - - - Introduction to Vulkan-SDK - - - This page covers the installation of the Vulkan headers and the loader, - the SPIR-V headers and tools, and the glslang compiler. - - - - Vulkan is a graphics API that allows a wealth of control over how each - step is handled in the graphics pipeline. It is used by Steam's Proton - and . OpenGL is much higher level and often leads - to worse performance. However, it is up to the developer to implement - either. This SDK doesn't provide any Vulkan driver, just what is needed - for Vulkan applications and drivers. - - - - The SPIR-V tools process SPIR-V modules, often attributed to shader - code/binaries. Khronos APIs, like OpenGL and Vulkan, make use of them. - The tooling provides a base other applications can use to convert to and - from. - - - - Glslang is a reference compiler and validator for the GLSL (OpenGL Shader - Language). It is one of the compilers that can convert SPIR-V, such as - GLSL to SPIR-V. In some cases, packages can compile shaders and turn - them into header files which get included by a C/C++ file(s). In OpenGL, - this process doesn't need glslang at all as OpenGL functions directory - can compile shaders from a string and be binded for execution on every - frame. With Vulkan, a separate shader compiler is needed to facilitate - shader compilation. - - - &long-build-time; - - Vulkan-SDK Dependencies - - Required - - and - - - Recommended - - - - - BLFS Equivalent Packages - This combined page installs what would be in BLFS: - - - Vulkan-Headers - - - Vulkan-Loader - - - SPIRV-Headers - - - SPIRV-Tools - - - Glslang - - - - - - - Downloading Vulkan-SDK - - - First, create a list of files to be downloaded: - - -cat > &vk-common;-list << "EOF" -Vulkan-Headers/archive/&vk-common;/Vulkan-Headers-&vk-common;.tar.gz -Vulkan-Loader/archive/&vk-common;/Vulkan-Loader-&vk-common;.tar.gz -SPIRV-Headers/archive/&vk-common;/SPIRV-Headers-&vk-common;.tar.gz -SPIRV-Tools/archive/&vk-common;/SPIRV-Tools-&vk-common;.tar.gz -glslang/archive/&vk-common;/glslang-&vk-common;.tar.gz -EOF - - - To download the needed files using , - use the following commands: - - -mkdir &vk-common; && -cd &vk-common; && -grep -v '^#' ../&vk-common;-list | wget -i- -c \ - -B &kg-url; - - - - - Installation of Vulkan-SDK - -&as_root; - - - First, start a subshell that will exit on error: - - -bash -e - - - Install all of the packages by running the following commands: - - -for package in {Vulkan-{Headers,Loader},SPIRV-{Headers,Tools},glslang} -do - longpackage=$package-&vk-common;.tar.?z* - packagedir=${longpackage%.tar.?z*} - tar -xf $longpackage - pushd $packagedir - mkdir build - cd build - case $package in - SPIRV-Tools ) - cmake -D CMAKE_INSTALL_PREFIX=/usr \ - -D CMAKE_BUILD_TYPE=Release \ - -D SPIRV_WERROR=OFF \ - -D BUILD_SHARED_LIBS=ON \ - -D SPIRV_TOOLS_BUILD_STATIC=OFF \ - -D SPIRV-Headers_SOURCE_DIR=/usr \ - -G Ninja .. - ;; - glslang ) - cmake -D CMAKE_INSTALL_PREFIX=/usr \ - -D CMAKE_BUILD_TYPE=Release \ - -D ALLOW_EXTERNAL_SPIRV_TOOLS=ON \ - -D BUILD_SHARED_LIBS=ON \ - -D GLSLANG_TESTS=OFF \ - -G Ninja .. - ;; - * ) - cmake -D CMAKE_INSTALL_PREFIX=/usr \ - -D CMAKE_BUILD_TYPE=Release \ - -D CMAKE_SKIP_INSTALL_RPATH=ON \ - -G Ninja .. - ;; - esac - ninja - as_root ninja install - popd - rm -rf $packagedir -done - - For multilib: - -for package in {Vulkan-Loader,SPIRV-Tools,glslang} -do - longpackage=$package-&vk-common;.tar.?z* - packagedir=${longpackage%.tar.?z*} - tar -xf $longpackage - pushd $packagedir - mkdir build - cd build - case $package in - SPIRV-Tools ) - CC="gcc -m32" CXX="g++ -m32" \ - PKG_CONFIG_PATH=/usr/lib32/pkgconfig \ - cmake -D CMAKE_INSTALL_PREFIX=/usr \ - -D CMAKE_INSTALL_LIBDIR=lib32 \ - -D CMAKE_BUILD_TYPE=Release \ - -D SPIRV_WERROR=OFF \ - -D BUILD_SHARED_LIBS=ON \ - -D SPIRV_TOOLS_BUILD_STATIC=OFF \ - -D SPIRV-Headers_SOURCE_DIR=/usr \ - -G Ninja .. - ;; - glslang ) - CC="gcc -m32" CXX="g++ -m32" \ - PKG_CONFIG_PATH=/usr/lib32/pkgconfig \ - cmake -D CMAKE_INSTALL_PREFIX=/usr \ - -D CMAKE_INSTALL_LIBDIR=lib32 \ - -D CMAKE_BUILD_TYPE=Release \ - -D ALLOW_EXTERNAL_SPIRV_TOOLS=ON \ - -D BUILD_SHARED_LIBS=ON \ - -D GLSLANG_TESTS=OFF \ - -G Ninja .. - ;; - * ) - ASFLAGS+=" --32" CFLAGS+=" -m32" \ - CXXFLAGS+=" -m32" \ - PKG_CONFIG_PATH=/usr/lib32/pkgconfig \ - cmake -D CMAKE_INSTALL_PREFIX=/usr \ - -D CMAKE_INSTALL_LIBDIR=lib32 \ - -D CMAKE_BUILD_TYPE=Release \ - -D CMAKE_SKIP_INSTALL_RPATH=ON \ - -G Ninja .. - ;; - esac - ninja - DESTDIR=$PWD/DESTDIR ninja install - as_root cp -Rv DESTDIR/usr/lib32/* /usr/lib32 - rm -rf DESTDIR - as_root /sbin/ldconfig - popd - rm -rf $packagedir -done - - - Finally, exit the shell that was started earlier: - - -exit - - - - - Contents - - - Installed Programs - Installed Libraries - Installed Directories - - - - glslang, - glslang-validator (symlink to glslang), - spirv-as, - spirv-cfg, - spirv-dis, - spirv-lesspipe.sh, - spirv-link, - spirv-lint, - spirv-objdump, - spirv-opt, - spirv-reduce, - spirv-remap, and - spirv-val - - - libglslang, - libglslang-default-resource-limits, - libSPIRV, - libSPIRV-Tools-diff, - libSPIRV-Tools-link, - libSPIRV-Tools-lint, - libSPIRV-Tools-opt, - libSPIRV-Tools-reduce, - libSPIRV-Tools-shared, - libSPIRV-Tools, - libSPVRemapper, and - libvulkan - - - /usr/include/glslang, - /usr/include/spirv, - /usr/include/spirv-tools, - /usr/include/vk_video, - /usr/include/vulkan, - /usr/lib/cmake/glslang, - /usr/lib/cmake/SPIRV-Tools, - /usr/lib/cmake/VulkanLoader, - /usr/share/cmake/VulkanHeaders, - /usr/share/cmake/SPIRV-Headers, and - /usr/share/vulkan - - - - - - Short Descriptions - - - - - glslang - - - is a reference GLSL and SPIR-V shader compiler - - - glslang - - - - - - libglslang - - - contains backend functions for the glslang - frontend - - - libglslang - - - - - - libSPIRV - - - processes and generates SPIR-V binaries - - - libSPIRV - - - - - - libSPIRV-Tools - - - contains functions for processing SPIR-V modules - - - libSPIRV-Tools - - - - - - libvulkan - - - provides the Vulkan API and core support for graphics drivers - - - libvulkan - - - - - - - - -