[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Optimize/enhance the customized function called by make.
From: |
Hongyi Zhao |
Subject: |
Optimize/enhance the customized function called by make. |
Date: |
Sun, 26 Dec 2021 16:10:09 +0800 |
Quantum ESPRESSO is a suite for first-principles electronic-structure
calculations and materials modeling, whose source code is located on
GitLab. I noticed the following script used by make in this project:
<https://gitlab.com/QEF/q-e/-/blob/develop/install/install_utils>.
I'm not familiar with the customized function called by make, but
based on the following gzip option to test compressed file integrity:
$ gzip --help | grep integrity
-t, --test test compressed file integrity
I tried to modify the script to the following:
```
# Copyright (C) 2001-2016 Quantum ESPRESSO group
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License. See the file `License' in the root directory
# of the present distribution.
#
# Utilities
###########################################################
# Template function
# $(1) = package name
# $(2) = package URL
# $(3) = directory name
# $(4) = plugin/code name
###########################################################
define download_and_unpack
@(if ! gzip -t ../archive/`echo "$(2)" | sed 's/.*\///;s/.*=//'` >
/dev/null 2>&1 ; then \
rm -fr ../$(3); \
wget -O ../archive/`echo "$(2)" | sed 's/.*\///;s/.*=//'` $(2) >
/dev/null 2>&1; \
if test "`echo $$?`" -ne "0" ; then \
curl -o ../archive/`echo "$(2)" | sed 's/.*\///;s/.*=//'` $(2) >
/dev/null 2>&1; \
if test "`echo $$?`" -ne "0" ; then \
echo "*** Unable to download $(4). Test whether curl or wget is
installed and working," ; \
echo "*** if you have direct access to internet. If not, copy into
archive/ the file" ; \
echo "*** located here $(2)" ; \
exit 1 ; fi ; fi ; fi)
(gzip -dc ../archive/`echo "$(2)" | sed 's/.*\///;s/.*=//'` | \
(cd ../ ; tar -xvf - ) ) ; \
if test "`echo $$?`" -ne "0" ; then \
echo "*** Unable to download $(2)." ; \
echo "*** Verify that the url is correct." ; \
exit 1 ; \
else \
(cd ../ ; ln -sf $(1) $(3)) ; fi
endef
```
Any hints/corrections/suggestions on my above revision will be highly
appreciated.
See here [1] for the related discussion.
[1] https://gitlab.com/QEF/q-e/-/issues/435
Regards
--
Assoc. Prof. Hongyi Zhao <hongyi.zhao@gmail.com>
Theory and Simulation of Materials
Hebei Vocational University of Technology and Engineering
No. 473, Quannan West Street, Xindu District, Xingtai, Hebei province
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Optimize/enhance the customized function called by make.,
Hongyi Zhao <=