diff --git a/.github/workflows/check-makefiles.yml b/.github/workflows/check-makefiles.yml new file mode 100644 index 0000000000..396393f383 --- /dev/null +++ b/.github/workflows/check-makefiles.yml @@ -0,0 +1,38 @@ +name: check makefiles + +on: + push: + branches: + - development + - main + pull_request: + branches: + - development + +jobs: + check-ifdefs: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: '3.10' + + - name: Cache pip + uses: actions/cache@v3 + with: + # this path is specific to Ubuntu + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} + restore-keys: | + ${{ runner.os }}-pip- + + - name: Run check-ifdefs + run: | + python .github/workflows/check_makefiles.py + diff --git a/.github/workflows/check_makefiles.py b/.github/workflows/check_makefiles.py new file mode 100644 index 0000000000..d9e17baa47 --- /dev/null +++ b/.github/workflows/check_makefiles.py @@ -0,0 +1,46 @@ +import re +import sys +from pathlib import Path + +correct_params = { + "DEBUG": "FALSE", + "USE_MPI": "TRUE", + "USE_OMP": "FALSE", + "COMP": "gnu", + "USE_CUDA": "FALSE", + "USE_HIP": "FALSE", + "PRECISION": "DOUBLE", + "PROFILE": "FALSE"} + + +def find_source_files(): + p = Path("./Exec") + files = list(p.glob(r"**/GNUmakefile")) + return files + +def check_makefile(makefile): + + with open(makefile) as mf: + for _line in mf: + if idx := _line.find("#") >= 0: + line = _line[:idx] + else: + line = _line + + for key in correct_params: + if key in line: + try: + k, v = re.split(":=|\?=|=", line) + except ValueError: + sys.exit(f"invalid line: {line}") + + if not v.strip() == correct_params[key]: + sys.exit(f"invalid param {key} in {makefile}") + +if __name__ == "__main__": + + for f in find_source_files(): + check_makefile(f) + + + diff --git a/Exec/gravity_tests/uniform_cube/GNUmakefile b/Exec/gravity_tests/uniform_cube/GNUmakefile index 4023488bac..dd54908a9d 100644 --- a/Exec/gravity_tests/uniform_cube/GNUmakefile +++ b/Exec/gravity_tests/uniform_cube/GNUmakefile @@ -15,7 +15,7 @@ DEBUG ?= FALSE DIM ?= 3 -COMP ?= gcc +COMP ?= gnu USE_MPI ?= TRUE USE_OMP ?= FALSE diff --git a/Exec/gravity_tests/uniform_sphere/GNUmakefile b/Exec/gravity_tests/uniform_sphere/GNUmakefile index 50dc156659..ae6e618624 100644 --- a/Exec/gravity_tests/uniform_sphere/GNUmakefile +++ b/Exec/gravity_tests/uniform_sphere/GNUmakefile @@ -15,7 +15,7 @@ DEBUG ?= FALSE DIM ?= 3 -COMP ?= gcc +COMP ?= gnu USE_MPI ?= TRUE USE_OMP ?= FALSE diff --git a/Exec/mhd_tests/Alfven/GNUmakefile b/Exec/mhd_tests/Alfven/GNUmakefile index d0420ce36b..18a723c41d 100644 --- a/Exec/mhd_tests/Alfven/GNUmakefile +++ b/Exec/mhd_tests/Alfven/GNUmakefile @@ -1,7 +1,7 @@ PRECISION = DOUBLE PROFILE = FALSE -DEBUG = TRUE +DEBUG = FALSE DIM = 3 diff --git a/Exec/mhd_tests/BrioWu/GNUmakefile b/Exec/mhd_tests/BrioWu/GNUmakefile index d0420ce36b..18a723c41d 100644 --- a/Exec/mhd_tests/BrioWu/GNUmakefile +++ b/Exec/mhd_tests/BrioWu/GNUmakefile @@ -1,7 +1,7 @@ PRECISION = DOUBLE PROFILE = FALSE -DEBUG = TRUE +DEBUG = FALSE DIM = 3 diff --git a/Exec/mhd_tests/MagnetosonicWaves/GNUmakefile b/Exec/mhd_tests/MagnetosonicWaves/GNUmakefile index d0420ce36b..18a723c41d 100644 --- a/Exec/mhd_tests/MagnetosonicWaves/GNUmakefile +++ b/Exec/mhd_tests/MagnetosonicWaves/GNUmakefile @@ -1,7 +1,7 @@ PRECISION = DOUBLE PROFILE = FALSE -DEBUG = TRUE +DEBUG = FALSE DIM = 3 diff --git a/Exec/mhd_tests/species/GNUmakefile b/Exec/mhd_tests/species/GNUmakefile index d601c6bae0..69314fc30b 100644 --- a/Exec/mhd_tests/species/GNUmakefile +++ b/Exec/mhd_tests/species/GNUmakefile @@ -1,7 +1,7 @@ PRECISION = DOUBLE PROFILE = FALSE -DEBUG = TRUE +DEBUG = FALSE DIM = 3 diff --git a/Exec/scf_tests/single_star/GNUmakefile b/Exec/scf_tests/single_star/GNUmakefile index 1fb3b047d5..b8bad88989 100644 --- a/Exec/scf_tests/single_star/GNUmakefile +++ b/Exec/scf_tests/single_star/GNUmakefile @@ -15,7 +15,7 @@ DEBUG ?= FALSE DIM := 3 -COMP ?= gcc +COMP ?= gnu USE_MPI ?= TRUE USE_OMP ?= FALSE diff --git a/Exec/science/nova/GNUmakefile b/Exec/science/nova/GNUmakefile index 6772310dd6..e2a49d9aca 100644 --- a/Exec/science/nova/GNUmakefile +++ b/Exec/science/nova/GNUmakefile @@ -7,7 +7,7 @@ COMP = gnu USE_MPI = TRUE USE_OMP = FALSE -USE_CUDA = TRUE +USE_CUDA = FALSE USE_REACT = TRUE USE_DIFFUSION = TRUE