Commit 0a908cdd authored by Jeff Huang's avatar Jeff Huang 🤔

[skip-ci] nvidia-390xx-settings: import

parent 79a185e8
Pipeline #583 skipped
pkgbase=nvidia-390xx-settings
pkgname=('nvidia-390xx-settings' 'libxnvctrl-390xx')
pkgver=390.59
pkgrel=1
pkgdesc='Tool for configuring the NVIDIA graphics driver, 390xx legacy branch'
url='https://github.com/NVIDIA/nvidia-settings'
arch=('x86_64')
license=('GPL2')
makedepends=('git' 'inetutils' 'gtk2' 'jansson' 'gtk3' 'libxv' 'libvdpau' 'nvidia-390xx-utils' 'libxext')
options=('staticlibs')
source=(nvidia-settings-${pkgver}.tar.gz::https://github.com/NVIDIA/nvidia-settings/archive/${pkgver}.tar.gz
libxnvctrl_so.patch)
sha512sums=('6d1e0a076e3bb69887fb62c9038d300258a98dd7931a747aa76d4f5ca1f1345621984b60a4883e7d5030a136b3e5db463fd68dcc25106fb9d9dbeb7e6879824d'
'f69f5dc84fe624579a3c9ce877f4ae4e34c2184877576afbea07b8abdd7ff01e470517f2b77cd11a904518cbcb83fb388ca1d08888006f0ef2854723920c9cf8')
prepare() {
export PREFIX=/usr
export NV_USE_BUNDLED_LIBJANSSON=0
cd nvidia-settings-${pkgver}
patch -p1 < "${srcdir}/libxnvctrl_so.patch"
}
build() {
cd nvidia-settings-${pkgver}
make
make -C src/libXNVCtrl
}
package_nvidia-390xx-settings() {
depends=('jansson' 'gtk3' 'libxv' 'libvdpau' 'nvidia-390xx-utils' 'libxnvctrl-390xx')
conflicts=('nvidia-settings')
provides=('nvidia-settings')
cd nvidia-settings-${pkgver}
make DESTDIR="${pkgdir}" install
install -D -m644 doc/nvidia-settings.desktop "${pkgdir}/usr/share/applications/nvidia-settings.desktop"
install -D -m644 doc/nvidia-settings.png "${pkgdir}/usr/share/pixmaps/nvidia-settings.png"
sed -e 's:__UTILS_PATH__:/usr/bin:' -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' -i "${pkgdir}/usr/share/applications/nvidia-settings.desktop"
rm "$pkgdir/usr/lib/libnvidia-gtk2.so.$pkgver"
}
package_libxnvctrl-390xx() {
depends=('libxext')
conflicts=('libxnvctrl')
provides=('libxnvctrl')
pkgdesc='NVIDIA NV-CONTROL X extension, 390xx legacy branch'
cd nvidia-settings-${pkgver}
install -Dm 644 doc/{NV-CONTROL-API.txt,FRAMELOCK.txt} -t "${pkgdir}/usr/share/doc/${pkgname}"
install -Dm 644 samples/{Makefile,README,*.c,*.h,*.mk} -t "${pkgdir}/usr/share/doc/${pkgname}/samples"
cd src/libXNVCtrl
install -Dm 644 *.h -t "${pkgdir}/usr/include/NVCtrl"
install -Dm 644 libXNVCtrl.a -t "${pkgdir}/usr/lib"
install -Dm 755 libXNVCtrl.so.0.0.0 -t "${pkgdir}/usr/lib"
ln -s libXNVCtrl.so.0.0.0 "${pkgdir}/usr/lib/libXNVCtrl.so.0"
ln -s libXNVCtrl.so.0 "${pkgdir}/usr/lib/libXNVCtrl.so"
}
# vim: ts=2 sw=2 et:
--- a/src/Makefile
+++ b/src/Makefile
@@ -106,6 +106,8 @@
XNVCTRL_DIR ?= libXNVCtrl
XNVCTRL_MAKEFILE ?= Makefile
XNVCTRL_ARCHIVE ?= $(XNVCTRL_DIR)/libXNVCtrl.a
+XNVCTRL_SHARED ?= $(XNVCTRL_DIR)/libXNVCtrl.so.0
+XNVCTRL_LIB ?= $(XNVCTRL_SHARED)
XCONFIG_PARSER_DIR ?= XF86Config-parser
COMMON_UTILS_DIR ?= common-utils
COMMON_UNIX_DIR ?= common-unix
@@ -280,15 +282,18 @@
$(MKDIR) $(BINDIR)
$(INSTALL) $(INSTALL_BIN_ARGS) $< $(BINDIR)/$(notdir $<)
+$(XNVCTRL_ARCHIVE) $(XNVCTRL_SHARED):
+ $(MAKE) -C $(XNVCTRL_DIR)
+
$(eval $(call DEBUG_INFO_RULES, $(NVIDIA_SETTINGS)))
-$(NVIDIA_SETTINGS).unstripped: $(OBJS) $(XNVCTRL_ARCHIVE)
+$(NVIDIA_SETTINGS).unstripped: $(OBJS) $(XNVCTRL_LIB)
$(call quiet_cmd,LINK) $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \
- -rdynamic -o $@ $(OBJS) $(XNVCTRL_ARCHIVE) $(LIBS)
+ -rdynamic -o $@ $(OBJS) $(XNVCTRL_LIB) $(LIBS)
$(eval $(call DEBUG_INFO_RULES, $(GTK2LIB)))
$(GTK2LIB).unstripped: $(GTK2_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) $(VERSION_MK)
$(call quiet_cmd,LINK) -shared $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \
- $(XNVCTRL_ARCHIVE) $(LIBS) $(GTK2_LIBS) \
+ $(XNVCTRL_LIB) $(LIBS) $(GTK2_LIBS) \
-Wl,--unresolved-symbols=ignore-all -o $@ \
-Wl,-soname -Wl,$(GTK2LIB_SONAME) \
$(GTK2_OBJS) $(XCP_OBJS)
@@ -297,7 +302,7 @@
$(eval $(call DEBUG_INFO_RULES, $(GTK3LIB)))
$(GTK3LIB).unstripped: $(GTK3_OBJS) $(XCP_OBJS) $(VERSION_MK)
$(call quiet_cmd,LINK) -shared $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \
- $(XNVCTRL_ARCHIVE) $(LIBS) $(GTK3_LIBS) \
+ $(XNVCTRL_LIB) $(LIBS) $(GTK3_LIBS) \
-Wl,--unresolved-symbols=ignore-all -o $@ \
-Wl,-soname -Wl,$(GTK3LIB_SONAME) \
$(GTK3_OBJS) $(XCP_OBJS)
--- a/src/libXNVCtrl/Makefile
+++ b/src/libXNVCtrl/Makefile
@@ -55,10 +55,17 @@
.PHONY: clean
all: $(LIBXNVCTRL)
+all: libXNVCtrl.so
$(LIBXNVCTRL) : $(OBJS)
$(AR) ru $@ $(OBJS)
+libXNVCtrl.so: $(OBJS)
+ $(RM) $@ $@.*
+ $(CC) -shared -Wl,-soname=$@.0 -o $@.0.0.0 $(LDFLAGS) $^ -lXext -lX11
+ ln -s $@.0.0.0 $@.0
+ ln -s $@.0 $@
+
# define the rule to build each object file
$(foreach src,$(SRC),$(eval $(call DEFINE_OBJECT_RULE,TARGET,$(src))))
@@ -68,3 +75,4 @@
clean:
rm -rf $(LIBXNVCTRL) *~ $(STAMP_C) \
$(OUTPUTDIR)/*.o $(OUTPUTDIR)/*.d
+ rm -f libXNVCtrl.so libXNVCtrl.so.*
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment