mirror of
https://github.com/TREX-CoE/trexio.git
synced 2025-01-09 12:44:11 +01:00
Merge pull request #66 from TREX-CoE/configure
Automatic maintainer mode
This commit is contained in:
commit
37315d54f0
4
.github/workflows/actions.yml
vendored
4
.github/workflows/actions.yml
vendored
@ -23,7 +23,7 @@ jobs:
|
|||||||
- name: configure with autotools
|
- name: configure with autotools
|
||||||
run: |
|
run: |
|
||||||
./autogen.sh
|
./autogen.sh
|
||||||
TREXIO_DEVEL=1 ./configure --enable-silent-rules
|
./configure --enable-silent-rules
|
||||||
|
|
||||||
- name: compile TREXIO
|
- name: compile TREXIO
|
||||||
run: make -j 2
|
run: make -j 2
|
||||||
@ -63,7 +63,7 @@ jobs:
|
|||||||
- name: configure with autotools
|
- name: configure with autotools
|
||||||
run: |
|
run: |
|
||||||
./autogen.sh
|
./autogen.sh
|
||||||
TREXIO_DEVEL=1 ./configure FC=gfortran-10 --enable-silent-rules
|
./configure FC=gfortran-10 --enable-silent-rules
|
||||||
|
|
||||||
- name: compile TREXIO
|
- name: compile TREXIO
|
||||||
run: make -j 2
|
run: make -j 2
|
||||||
|
22
README.md
22
README.md
@ -20,7 +20,7 @@ TREX library for efficient I/O.
|
|||||||
1. Download the `trexio-<version>.tar.gz` file
|
1. Download the `trexio-<version>.tar.gz` file
|
||||||
2. `gzip -cd trexio-<version>.tar.gz | tar xvf -`
|
2. `gzip -cd trexio-<version>.tar.gz | tar xvf -`
|
||||||
3. `cd trexio-<version>`
|
3. `cd trexio-<version>`
|
||||||
4. `./configure --enable-silent-rules`
|
4. `./configure`
|
||||||
5. `make`
|
5. `make`
|
||||||
6. `make check`
|
6. `make check`
|
||||||
7. `sudo make install`
|
7. `sudo make install`
|
||||||
@ -40,7 +40,7 @@ TREX library for efficient I/O.
|
|||||||
1. `git clone https://github.com/TREX-CoE/trexio.git`
|
1. `git clone https://github.com/TREX-CoE/trexio.git`
|
||||||
2. `cd trexio`
|
2. `cd trexio`
|
||||||
3. `./autogen.sh`
|
3. `./autogen.sh`
|
||||||
4. `TREXIO_DEVEL=1 ./configure --enable-maintainer-mode`
|
4. `./configure`
|
||||||
5. `make`
|
5. `make`
|
||||||
6. `make check`
|
6. `make check`
|
||||||
7. `sudo make install`
|
7. `sudo make install`
|
||||||
@ -54,7 +54,7 @@ Once installed, add `-ltrexio` to the list of compiler options.
|
|||||||
In some cases (e.g. when using custom `prefix` during configuration), the TREXIO library might end up installed in a directory, which is absent in the default `$LIBRARY_PATH`.
|
In some cases (e.g. when using custom `prefix` during configuration), the TREXIO library might end up installed in a directory, which is absent in the default `$LIBRARY_PATH`.
|
||||||
In order to link the program against TREXIO, the search paths can be modified as follows:
|
In order to link the program against TREXIO, the search paths can be modified as follows:
|
||||||
|
|
||||||
`export LIBRARY_PATH=$LIBRARY_PATH:<path_to_trexio>/lib`
|
`export LIBRARY_PATH=$LIBRARY_PATH:<path_to_trexio>/lib`
|
||||||
|
|
||||||
(same holds for `$LD_LIBRARY_PATH`). The `<path_to_trexio>` has to be replaced by the prefix used during the installation.
|
(same holds for `$LD_LIBRARY_PATH`). The `<path_to_trexio>` has to be replaced by the prefix used during the installation.
|
||||||
|
|
||||||
@ -78,28 +78,28 @@ The primary TREXIO API is composed of the following functions:
|
|||||||
- `trexio_has_[group]_[variable]`
|
- `trexio_has_[group]_[variable]`
|
||||||
- `trexio_close`
|
- `trexio_close`
|
||||||
|
|
||||||
where `[group]` and `[variable]` substitutions correspond to the contents of the `trex.json` configuration file
|
where `[group]` and `[variable]` substitutions correspond to the contents of the `trex.json` configuration file
|
||||||
(for more details, see the corresponding [documentation](https://trex-coe.github.io/trexio/trex.html) page).
|
(for more details, see the corresponding [documentation](https://trex-coe.github.io/trexio/trex.html) page).
|
||||||
For example, consider the `coord` variable (array), which belongs to the `nucleus` group. The TREXIO user can write or read it using `trexio_write_nucleus_coord` or `trexio_read_nucleus_coord` functions, respectively.
|
For example, consider the `coord` variable (array), which belongs to the `nucleus` group. The TREXIO user can write or read it using `trexio_write_nucleus_coord` or `trexio_read_nucleus_coord` functions, respectively.
|
||||||
|
|
||||||
Note: the `[variable]` names have to be unique only within the corresponding parent `[group]`.
|
Note: the `[variable]` names have to be unique only within the corresponding parent `[group]`.
|
||||||
There is no naming conflict when, for example, `num` variable exists both in the `nucleus` group (i.e. the number of nuclei) and in the `mo` group (i.e. the number of molecular orbitals).
|
There is no naming conflict when, for example, `num` variable exists both in the `nucleus` group (i.e. the number of nuclei) and in the `mo` group (i.e. the number of molecular orbitals).
|
||||||
These quantities can be accessed using the corresponding `trexio_[has|read|write]_nucleus_num` and `trexio_[has|read|write]_mo_num`, respectively.
|
These quantities can be accessed using the corresponding `trexio_[has|read|write]_nucleus_num` and `trexio_[has|read|write]_mo_num`, respectively.
|
||||||
|
|
||||||
|
|
||||||
## Python API
|
## Python API
|
||||||
|
|
||||||
For more details regarding the installation and usage of the TREXIO Python API,
|
For more details regarding the installation and usage of the TREXIO Python API,
|
||||||
see [this page](python/README.md).
|
see [this page](python/README.md).
|
||||||
|
|
||||||
|
|
||||||
## Tutorial
|
## Tutorial
|
||||||
|
|
||||||
TREXIO tutorials in Jupyter notebook format can be found in the
|
TREXIO tutorials in Jupyter notebook format can be found in the
|
||||||
[corresponding GitHub repository](https://github.com/TREX-CoE/trexio-tutorials)
|
[corresponding GitHub repository](https://github.com/TREX-CoE/trexio-tutorials)
|
||||||
or on [Binder](https://mybinder.org/v2/gh/TREX-CoE/trexio-tutorials/HEAD).
|
or on [Binder](https://mybinder.org/v2/gh/TREX-CoE/trexio-tutorials/HEAD).
|
||||||
|
|
||||||
For example, the tutorial covering TREXIO basics using benzene molecule as an example can be viewed and executed online by clicking on this badge:
|
For example, the tutorial covering TREXIO basics using benzene molecule as an example can be viewed and executed online by clicking on this badge:
|
||||||
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/TREX-CoE/trexio-tutorials/HEAD?filepath=notebooks%2Ftutorial_benzene.ipynb)
|
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/TREX-CoE/trexio-tutorials/HEAD?filepath=notebooks%2Ftutorial_benzene.ipynb)
|
||||||
|
|
||||||
|
|
||||||
@ -110,8 +110,8 @@ For example, the tutorial covering TREXIO basics using benzene molecule as an ex
|
|||||||
|
|
||||||
### Miscellaneous
|
### Miscellaneous
|
||||||
|
|
||||||
Note: The code should be compliant with the C99
|
Note: The code should be compliant with the C99
|
||||||
[CERT C coding standard](https://resources.sei.cmu.edu/downloads/secure-coding/assets/sei-cert-c-coding-standard-2016-v01.pdf).
|
[CERT C coding standard](https://resources.sei.cmu.edu/downloads/secure-coding/assets/sei-cert-c-coding-standard-2016-v01.pdf).
|
||||||
This can be checked with the `cppcheck` tool.
|
This can be checked with the `cppcheck` tool.
|
||||||
|
|
||||||
|
|
||||||
|
39
configure.ac
39
configure.ac
@ -4,6 +4,15 @@
|
|||||||
AC_PREREQ([2.69])
|
AC_PREREQ([2.69])
|
||||||
AC_INIT([trexio], [2.0.0], [https://github.com/TREX-CoE/trexio/issues])
|
AC_INIT([trexio], [2.0.0], [https://github.com/TREX-CoE/trexio/issues])
|
||||||
AM_INIT_AUTOMAKE([subdir-objects color-tests parallel-tests silent-rules 1.11])
|
AM_INIT_AUTOMAKE([subdir-objects color-tests parallel-tests silent-rules 1.11])
|
||||||
|
AM_MAINTAINER_MODE()
|
||||||
|
|
||||||
|
# Activate developer mode when the source is the git repository.
|
||||||
|
# Otherwise, it is the source distribution and the developer mode should not be activated.
|
||||||
|
TEST_IFEXISTS=".git"
|
||||||
|
AC_CHECK_FILE([$TEST_IFEXISTS],
|
||||||
|
[enable_maintainer_mode="yes"],
|
||||||
|
)
|
||||||
|
|
||||||
AM_MAINTAINER_MODE()
|
AM_MAINTAINER_MODE()
|
||||||
LT_PREREQ([2.2])
|
LT_PREREQ([2.2])
|
||||||
LT_INIT
|
LT_INIT
|
||||||
@ -29,7 +38,7 @@ AC_DEFINE_UNQUOTED(TREXIO_USER_NAME, ["${UNAME}"], [user name])
|
|||||||
AC_SUBST([UNAME])
|
AC_SUBST([UNAME])
|
||||||
|
|
||||||
## -------------------
|
## -------------------
|
||||||
## Checks for programs
|
## Checks for programs
|
||||||
## -------------------
|
## -------------------
|
||||||
|
|
||||||
AC_LANG(C)
|
AC_LANG(C)
|
||||||
@ -131,11 +140,16 @@ AC_TYPE_UINT64_T
|
|||||||
AC_FUNC_MALLOC
|
AC_FUNC_MALLOC
|
||||||
AC_CHECK_FUNCS([memset mkdir strerror])
|
AC_CHECK_FUNCS([memset mkdir strerror])
|
||||||
|
|
||||||
|
if test "x$enable_maintainer_mode" == "xyes"; then
|
||||||
|
TREXIO_DEVEL=" -- Developer mode"
|
||||||
|
else
|
||||||
|
TREXIO_DEVEL=""
|
||||||
|
fi
|
||||||
|
|
||||||
AM_CONDITIONAL([TREXIO_DEVEL],[test "x$TREXIO_DEVEL" != x])
|
AM_CONDITIONAL([TREXIO_DEVEL],[test "x$TREXIO_DEVEL" != x])
|
||||||
|
|
||||||
if test "x${TREXIO_DEVEL}" != "x"; then
|
if test "x${TREXIO_DEVEL}" != "x"; then
|
||||||
|
|
||||||
TREXIO_DEVEL=" -- Developer mode"
|
|
||||||
AC_PROG_AWK
|
AC_PROG_AWK
|
||||||
AM_PATH_PYTHON([3.0])
|
AM_PATH_PYTHON([3.0])
|
||||||
|
|
||||||
@ -157,23 +171,6 @@ if test "x${TREXIO_DEVEL}" != "x"; then
|
|||||||
HAS_CPPCHECK=1
|
HAS_CPPCHECK=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
# Throw an error message if the user attempts to configure the GitHub repo clone not in the developer mode.
|
|
||||||
# Developer mode is required to generate the TREXIO source files from the org-mode templates.
|
|
||||||
TEST_IFEXISTS=".gitmodules"
|
|
||||||
AC_CHECK_FILE([$TEST_IFEXISTS],
|
|
||||||
[AC_MSG_ERROR([
|
|
||||||
----------------------------------------------------------------
|
|
||||||
Installation with the current configuration is not possible.
|
|
||||||
Activate developer mode: TREXIO_DEVEL=1 ./configure
|
|
||||||
| OR |
|
|
||||||
Download the tarball with the source code distribution.
|
|
||||||
----------------------------------------------------------------
|
|
||||||
])],
|
|
||||||
[]
|
|
||||||
)
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## Libm
|
## Libm
|
||||||
@ -214,7 +211,7 @@ Package features:
|
|||||||
Now type 'make @<:@<target>@:>@'
|
Now type 'make @<:@<target>@:>@'
|
||||||
where the optional <target> is:
|
where the optional <target> is:
|
||||||
all - build C library and Fortran binding
|
all - build C library and Fortran binding
|
||||||
check - run unit tests
|
check - run unit tests
|
||||||
install - install the library
|
install - install the library
|
||||||
--------------------------------------------------"
|
--------------------------------------------------"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user