X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=bin%2Finstall_megadrivers.py;h=0a28dd7c0c57c94c5475e8c8e4a2879a96ca502c;hb=cf929823bf8253388a863fa495844380060f68fb;hp=7931a544bd27678db2bccaca3f8f696d728e48e7;hpb=6ac87c17695ebf300a81ecc61e5703c6492b6e5c;p=mesa.git diff --git a/bin/install_megadrivers.py b/bin/install_megadrivers.py old mode 100755 new mode 100644 index 7931a544bd2..0a28dd7c0c5 --- a/bin/install_megadrivers.py +++ b/bin/install_megadrivers.py @@ -1,6 +1,6 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # encoding=utf-8 -# Copyright © 2017 Intel Corporation +# Copyright 2017-2018 Intel Corporation # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -25,7 +25,6 @@ from __future__ import print_function import argparse import os -import shutil def main(): @@ -35,34 +34,50 @@ def main(): parser.add_argument('drivers', nargs='+') args = parser.parse_args() - to = os.path.join(os.environ.get('MESON_INSTALL_DESTDIR_PREFIX'), args.libdir) + if os.path.isabs(args.libdir): + destdir = os.environ.get('DESTDIR') + if destdir: + to = os.path.join(destdir, args.libdir[1:]) + else: + to = args.libdir + else: + to = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], args.libdir) + master = os.path.join(to, os.path.basename(args.megadriver)) if not os.path.exists(to): + if os.path.lexists(to): + os.unlink(to) os.makedirs(to) - shutil.copy(args.megadriver, master) - for each in args.drivers: - driver = os.path.join(to, each) + for driver in args.drivers: + abs_driver = os.path.join(to, driver) - if os.path.exists(driver): - os.unlink(driver) - print('installing {} to {}'.format(args.megadriver, driver)) - os.link(master, driver) + if os.path.lexists(abs_driver): + os.unlink(abs_driver) + print('installing {} to {}'.format(args.megadriver, abs_driver)) + os.link(master, abs_driver) try: ret = os.getcwd() os.chdir(to) - name, ext = os.path.splitext(each) + name, ext = os.path.splitext(driver) while ext != '.so': - if os.path.exists(name): + if os.path.lexists(name): os.unlink(name) - os.symlink(each, name) + os.symlink(driver, name) name, ext = os.path.splitext(name) finally: os.chdir(ret) + + # Remove meson-created master .so and symlinks os.unlink(master) + name, ext = os.path.splitext(master) + while ext != '.so': + if os.path.lexists(name): + os.unlink(name) + name, ext = os.path.splitext(name) if __name__ == '__main__':