post_install() {

TERMUX_PREFIX="/data/data/com.termux/files/usr"

generate_module_files() {
    local _modules=(
    "__fortran_builtins"
    "__fortran_type_info"
    "__fortran_ieee_exceptions"
    "__ppc_types"
    "__cuda_builtins"
    "ieee_arithmetic"
    "ieee_exceptions"
    "ieee_features"
    "iso_c_binding"
    "iso_fortran_env_impl"
    "iso_fortran_env"
    )

    local file
    for file in ${_modules[@]}; do
        echo "Generating ${file}.mod..."
        cd "$TERMUX_PREFIX"/include/flang
        flang-new -cpp -fsyntax-only -module-dir "$TERMUX_PREFIX"/include/flang "$TERMUX_PREFIX"/opt/flang/module/"$file".f90
        cp "$file".mod "$file".f18.mod
    done

    for file in "__ppc_intrinsics" "mma"; do
        echo "Generating ${file}.mod..."
        cd "$TERMUX_PREFIX"/include/flang
        flang-new -cpp -fsyntax-only --target=ppc64le -module-dir "$TERMUX_PREFIX"/include/flang "$TERMUX_PREFIX"/opt/flang/module/"$file".f90
        cp "$file".mod "$file".f18.mod
    done
}

generate_module_files
}
pre_remove() {

TERMUX_PREFIX="/data/data/com.termux/files/usr"

cleanup_module_files() {
    local _modules=(
    "__fortran_builtins"
    "__fortran_type_info"
    "__fortran_ieee_exceptions"
    "__ppc_types"
    "__cuda_builtins"
    "ieee_arithmetic"
    "ieee_exceptions"
    "ieee_features"
    "iso_c_binding"
    "iso_fortran_env_impl"
    "iso_fortran_env"
    "__ppc_intrinsics"
    "mma"
    )

    local file
    for file in ${_modules[@]}; do
        echo "Removing ${file}.mod..."
        rm "$TERMUX_PREFIX"/include/flang/"$file".mod
        rm "$TERMUX_PREFIX"/include/flang/"$file".f18.mod
    done
}

cleanup_module_files
}
