1
0
mirror of https://github.com/TREX-CoE/trexio.git synced 2024-07-23 03:07:45 +02:00

Merge pull request #66 from TREX-CoE/configure

Automatic maintainer mode
This commit is contained in:
Evgeny Posenitskiy 2021-11-01 11:43:09 +01:00 committed by GitHub
commit 37315d54f0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 31 additions and 34 deletions

View File

@ -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

View File

@ -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.

View File

@ -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
--------------------------------------------------" --------------------------------------------------"