{"id":40894941,"url":"https://github.com/modflowpy/pymake","last_synced_at":"2026-01-22T02:21:12.744Z","repository":{"id":32306471,"uuid":"35881523","full_name":"modflowpy/pymake","owner":"modflowpy","description":"Python package for compiling MODFLOW-based applications","archived":false,"fork":false,"pushed_at":"2025-12-26T23:37:34.000Z","size":2074,"stargazers_count":59,"open_issues_count":3,"forks_count":37,"subscribers_count":22,"default_branch":"develop","last_synced_at":"2025-12-28T14:10:02.617Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://mfpymake.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/modflowpy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2015-05-19T12:46:19.000Z","updated_at":"2025-12-26T23:37:36.000Z","dependencies_parsed_at":"2023-01-14T20:56:52.563Z","dependency_job_id":"ffe555d5-455f-412f-a3c3-617d9772d3b1","html_url":"https://github.com/modflowpy/pymake","commit_stats":{"total_commits":426,"total_committers":16,"mean_commits":26.625,"dds":"0.30281690140845074","last_synced_commit":"b112c4968f93a01eae8a272229193a545f38c6d6"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/modflowpy/pymake","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modflowpy%2Fpymake","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modflowpy%2Fpymake/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modflowpy%2Fpymake/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modflowpy%2Fpymake/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/modflowpy","download_url":"https://codeload.github.com/modflowpy/pymake/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modflowpy%2Fpymake/sbom","scorecard":{"id":656025,"data":{"date":"2025-08-11","repo":{"name":"github.com/modflowpy/pymake","commit":"784451b869e3237f09c1e3b1ff126f96c5619013"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.4,"checks":[{"name":"Code-Review","score":2,"reason":"Found 2/8 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"15 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/ci.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/ci.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/ci.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:67: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/ci.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/ci.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:81: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/ci.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:111: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/ci.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:121: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/ci.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:150: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/ci.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:161: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/ci.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:163: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/ci.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:170: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/ci.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:173: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/ci.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:184: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/ci.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:199: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/ci.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:209: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/ci.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pymake-linting-install.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/pymake-linting-install.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pymake-linting-install.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/pymake-linting-install.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pymake-linting-install.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/pymake-linting-install.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pymake-linting-install.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/pymake-linting-install.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pymake-requests.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/pymake-requests.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pymake-requests.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/pymake-requests.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pymake-requests.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/pymake-requests.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pymake-requests.yml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/pymake-requests.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pymake-rtd.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/pymake-rtd.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pymake-rtd.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/pymake-rtd.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:107: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/release.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:112: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/release.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:123: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/release.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:154: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/release.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:159: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/release.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:176: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/release.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:182: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/release.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/release.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/release.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/release.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/modflowpy/pymake/release.yml/develop?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/pymake-linting-install.yml:62","Warn: pipCommand not pinned by hash: .github/workflows/pymake-linting-install.yml:63","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:37","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:38","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:39","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:40","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:118","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:119","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:120","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:165","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:166","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:167","Info:   0 out of  18 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  19 third-party GitHubAction dependencies pinned","Info:   0 out of  12 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release.yml:16","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release.yml:102","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release.yml:145","Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Warn: no topLevel permission defined: .github/workflows/pymake-linting-install.yml:1","Warn: no topLevel permission defined: .github/workflows/pymake-requests.yml:1","Warn: no topLevel permission defined: .github/workflows/pymake-rtd.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/release.yml:139"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Vulnerabilities","score":0,"reason":"18 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-29gw-9793-fvw7","Warn: Project is vulnerable to: PYSEC-2015-24 / GHSA-4vwq-x64q-j4cj","Warn: Project is vulnerable to: PYSEC-2017-46 / GHSA-66gw-5xpf-gfp5","Warn: Project is vulnerable to: PYSEC-2015-25 / GHSA-92mr-v722-f48m","Warn: Project is vulnerable to: PYSEC-2022-12 / GHSA-pq7m-3gw7-gq5x","Warn: Project is vulnerable to: PYSEC-2017-47","Warn: Project is vulnerable to: PYSEC-2018-34 / GHSA-2fc2-6r4j-p65h","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: PYSEC-2019-108 / GHSA-9fq2-x9r6-wfmf","Warn: Project is vulnerable to: PYSEC-2018-33 / GHSA-cw6w-4rcx-xphc","Warn: Project is vulnerable to: PYSEC-2021-857 / GHSA-f7c7-j99h-c22f","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: PYSEC-2017-1 / GHSA-frgw-fgh6-9g52","Warn: Project is vulnerable to: PYSEC-2014-14 / GHSA-652x-xj99-gmcc","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-9wx4-h78v-vm56","Warn: Project is vulnerable to: PYSEC-2014-13 / GHSA-cfj3-7x9c-4p3h","Warn: Project is vulnerable to: PYSEC-2018-28 / GHSA-x84v-xcm2-53pg"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-21T14:39:03.166Z","repository_id":32306471,"created_at":"2025-08-21T14:39:03.166Z","updated_at":"2025-08-21T14:39:03.166Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28651295,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-22T02:21:12.065Z","updated_at":"2026-01-22T02:21:12.737Z","avatar_url":"https://github.com/modflowpy.png","language":"Python","readme":"# pymake\n\nPython package for building MODFLOW-based programs from source files.\n\n### Version 1.6.0.dev0\n\n[![PyPI Version](https://img.shields.io/pypi/v/mfpymake.png)](https://pypi.python.org/pypi/mfpymake)\n[![Anaconda Version](https://anaconda.org/conda-forge/mfpymake/badges/version.svg)](https://anaconda.org/conda-forge/mfpymake)  \n[![pymake continuous integration](https://github.com/modflowpy/pymake/workflows/pymake%20continuous%20integration/badge.svg)](https://github.com/modflowpy/pymake/actions/workflows/main.yml)\n[![codecov](https://codecov.io/gh/modflowpy/pymake/branch/master/graph/badge.svg)](https://codecov.io/gh/modflowpy/pymake)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/fe4275a3cfb84acf9c84aba7b4ae2086)](https://www.codacy.com/gh/modflowpy/pymake/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=modflowpy/pymake\u0026amp;utm_campaign=Badge_Grade)\n[![Documentation Status](https://readthedocs.org/projects/mfpymake/badge/?version=latest)](https://mfpymake.readthedocs.io/en/latest/?badge=latest)  \n\nThis is a python package for compiling MODFLOW-based and other Fortran, C, and\nC++ programs. The package determines the build order using a directed acyclic\ngraph and then compiles the source files using GNU compilers (`gcc`, `g++`,\n`gfortran`), Clang compilers (`clang`, `clang++`), or the Intel compilers (`ifort`,\n`icl`, `icc`, `mpiifort`).\n\npymake can be run from the command line or it can be called from within python.\nBy default, pymake sets the optimization level, Fortran flags, C/C++ flags, and\nlinker flags that are consistent with those used to compile MODFLOW-based\nprograms released by the USGS.\n\nNote that if gfortran is used to compile MODFLOW-based codes, the `openspec.f`\nand `FILESPEC.inc` (MT3DMS) files will automatically be changed to the\nfollowing so that binary files are created properly using standard Fortran:\n\n```\nc -- created by pymake.py\nCHARACTER*20 ACCESS,FORM,ACTION(2)\nDATA ACCESS/'STREAM'/\nDATA FORM/'UNFORMATTED'/\nDATA (ACTION(I),I=1,2)/'READ','READWRITE'/\nc -- end of include file\n```\n\n## Command Line Usage\n\nWhen pymake is installed, a `mfpymake` (or `mfpymake.exe` for Windows) program is installed.`mfpymake` can be used to\ncompile MODFLOW 6 from source files located on your computer directly from the command line using\nthe Intel Fortran compiler `ifort` from the root directory containing the `src` subdirectory by specifying:\n\n```\nmfpymake src/ mf6 -mc --subdirs -fc ifort\n```\n\nTo see help for running from command line, use the following statement.\n\n```\nmfpymake -h\n```\n\nThe help message identifies required positional arguments and optional arguments that can be provided to override\ndefault values.\n\n```\nusage: mfpymake [-h] [-fc {ifort,mpiifort,gfortran,none}] [-cc {gcc,clang,clang++,icc,icl,mpiicc,g++,cl,none}] [-ar {ia32,ia32_intel64,intel64}] [-mc] [-dbl] [-dbg] [-e] [-dr] [-sd] [-ff FFLAGS]\n                [-cf CFLAGS] [-sl {-lc,-lm}] [-mf] [-md] [-cs COMMONSRC] [-ef EXTRAFILES] [-exf EXCLUDEFILES] [-so] [-ad APPDIR] [-v] [--keep] [--zip ZIP] [--inplace] [--networkx] [--meson] [--mesondir]\n                srcdir target\n\nThis is the pymake program for compiling fortran, c, and c++ source\nfiles, such as the source files that come with MODFLOW. The program\nworks by building a directed acyclic graph of the module dependencies\nand then compiling the source files in the proper order.\n\npositional arguments:\n  srcdir                Path source directory.\n  target                Name of target to create. (can include path)\n\noptions:\n  -h, --help            show this help message and exit\n  -fc {ifort,mpiifort,gfortran,none}\n                        Fortran compiler to use. (default is gfortran)\n  -cc {gcc,clang,clang++,icc,icl,mpiicc,g++,cl,none}\n                        C/C++ compiler to use. (default is gcc)\n  -ar {ia32,ia32_intel64,intel64}, --arch {ia32,ia32_intel64,intel64}\n                        Architecture to use for Intel and Microsoft compilers on Windows. (default is intel64)\n  -mc, --makeclean      Clean temporary object, module, and source files when done. (default is False)\n  -dbl, --double        Force double precision. (default is False)\n  -dbg, --debug         Create debug version. (default is False)\n  -e, --expedite        Only compile out of date source files. Clean must not have been used on previous build. (default is False)\n  -dr, --dryrun         Do not actually compile. Files will be deleted, if --makeclean is used. Does not work yet for ifort. (default is False)\n  -sd, --subdirs        Include source files in srcdir subdirectories. (default is None)\n  -ff FFLAGS, --fflags FFLAGS\n                        Additional Fortran compiler flags. Fortran compiler flags should be enclosed in quotes and start with a blank space or separated from the name (-ff or --fflags) with a equal sign\n                        (-ff='-O3'). (default is None)\n  -cf CFLAGS, --cflags CFLAGS\n                        Additional C/C++ compiler flags. C/C++ compiler flags should be enclosed in quotes and start with a blank space or separated from the name (-cf or --cflags) with a equal sign\n                        (-cf='-O3'). (default is None)\n  -sl {-lc,-lm}, --syslibs {-lc,-lm}\n                        Linker system libraries. Linker libraries should be enclosed in quotes and start with a blank space or separated from the name (-sl or --syslibs) with a equal sign (-sl='-libgcc').\n                        (default is None)\n  -mf, --makefile       Create a GNU make makefile. (default is False)\n  -md, --makefiledir    GNU make makefile directory. (default is '.')\n  -cs COMMONSRC, --commonsrc COMMONSRC\n                        Additional directory with common source files. (default is None)\n  -ef EXTRAFILES, --extrafiles EXTRAFILES\n                        List of extra source files to include in the compilation. extrafiles can be either a list of files or the name of a text file that contains a list of files. (default is None)\n  -exf EXCLUDEFILES, --excludefiles EXCLUDEFILES\n                        List of extra source files to exclude from the compilation. excludefiles can be either a list of files or the name of a text file that contains a list of files. (default is None)\n  -so, --sharedobject   Create shared object or dll on Windows. (default is False)\n  -ad APPDIR, --appdir APPDIR\n                        Target path that overrides path defined target path (default is None)\n  -v, --verbose         Verbose output to terminal. (default is False)\n  --keep                Keep existing executable. (default is False)\n  --zip ZIP             Zip built executable. (default is None)\n  --inplace             Source files in srcdir are used directly. (default is False)\n  --networkx            Use networkx package to build Directed Acyclic Graph use to determine the order source files are compiled in. (default is False)\n  --meson               Use meson to build executable. (default is False)\n  --mesondir            meson directory. (default is '.')\n\nNote that the source directory should not contain any bad \nor duplicate source files as all source files in the source \ndirectory, the common source file directory (srcdir2), and \nthe extra files (extrafiles) will be built and linked. \nFiles can be excluded by using the excludefiles command \nline switch.\n\nExamples:\n\nCompile MODFLOW 6 from the root directory containing the \nsource files in subdirectories in the src/ subdirectory:\n\n$ mfpymake src/ mf6 --subdirs\n\nCompile MODFLOW 6 in the bin subdirectory using the Intel \nFortran compiler from the root directory containing the source \nfiles in subdirectories in the the src/ subdirectory:\n\n$ mfpymake src/ mf6 --subdirs -fc ifort --appdir bin\n```\n\nNote that command line arguments for Fortran flags, C/C++ flags, and syslib libraries should be enclosed in quotes and\nstart with a space prior to the first value (`-ff ' -O3'`) or use an equal sign separating the command line argument and\nthe values (`-ff='-O3'`). The command line argument to use an `-O3` optimization level when compiling MODFLOW 6 with\nthe `ifort` compiler would be:\n\n```\nmfpymake src/ mf6 -mc --subdirs -fc ifort -ff='-O3'\n```\n\n## From Python\n\n### Script to compile MODFLOW 6\n\nWhen using the pymake object (`Pymake()`) only the positional arguments\n(`srcdir`, `target`) need to be specified in the script.\n\n```python\nimport pymake\n\npm = pymake.Pymake()\npm.srcdir = '../src'\npm.target = 'mf6'\npm.include_subdirs = True\npm.build()\n```\n\nIt is suggested that optional variables required for successful compiling and linking be manually specified in the\nscript to mininimize the potential for unsuccessful builds. For MODFLOW 6, subdirectories in the `src` subdirectory need\nto be included and '`pm.include_subdirs = True`' has been specified in the script. Custom optimization levels and\ncompiler flags could be specified to get consistent builds.\n\nNon-default values for the optional arguments can specified as command line arguments. For example, MODFLOW 6 could be\ncompiled using Intel compilers instead of the default GNU compilers with the script listed above by specifying:\n\n```\npython mymf6script.py -fc ifort -cc icc\n```\n\n## Automatic Download and Build\n\nWhen pymake is installed, a `make-program` (or `make-program.exe` for Windows) program is installed. `make-program` can\nbe used to build MODFLOW 6, MODFLOW-2005, MODFLOW-NWT, MODFLOW-USG, MODFLOW-LGR, MODFLOW-2000, MODPATH 6, MODPATH 7,\nGSFLOW, VS2DT, MT3DMS, MT3D-USGS, SEAWAT, and SUTRA. Utility programs CRT, Triangle, and GRIDGEN can also\nbe built. `make-program` downloads the distribution file (requires an internet connection), unzips the file, sets the\npymake settings required to build the program, and compiles the program from the source files. Optional pymake command\nline arguments can be used to customize the build (`-fc`, `-cc`, `--fflags`, etc.). For example, MODFLOW 6 could be\nbuilt using intel compilers and an `O3` optimization level by specifying:\n\n```\nmake-program mf6 -fc=ifort --fflags='-O3'\n```\n\nSee [pymake Read the Docs](https://mfpymake.readthedocs.io/en/1.2.4/build_apps.html#building-applications) for more\ninformation.\n\n## Installation\n\nTo install pymake using pip type:\n\n```\npip install mfpymake\n```\n\nTo install pymake using conda type:\n\n```\nconda install -c conda-forge mfpymake\n```\n\nTo install the latest pymake release directly from the git repository type:\n\n```\npip install https://github.com/modflowpy/pymake/zipball/master\n```\n\nTo update your version of pymake with the latest development version from the git repository type:\n\n```\npip install https://github.com/modflowpy/pymake/zipball/develop --upgrade\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmodflowpy%2Fpymake","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmodflowpy%2Fpymake","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmodflowpy%2Fpymake/lists"}