{ "info": { "author": "Jason R. Jones", "author_email": "slightlynybbled@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# Purpose\n\nTo replace makefiles with something easier to use. Opinionated and slanted towards C/C++ workflow.\n\n# Status: Increasingly Stable\n\nI am closing in on the stable version of the interface and will likely release a v0.1 soon to commemorate that milestone.\n\n# Usage\n\nAll uses will assume that there is a file called `maekfile` within the directory being executed. This file consists of a YML dictionary containing a default configuration along with other potential configurations which are variantes on the default. You may specify a different `maekfile` on the command line using the `--file` or `-f` options.\n\n## YML files\n\nThe YML file is best presented as an example. Below is an example that will compile an generic 'hello-world' type of application that may be found in the `examples` directory.\n\nEach file must contain a `default` configuration. All other configurations will inherit from the default configuration.\n\n```yml\ndefault:\n clean: false\n compile: true\n link: true\n\n sources:\n - gcc/src/main.c\n - gcc/src/example.c\n\n includes:\n - gcc/inc\n\ndebug:\n out: exe\n flags:\n - -O0\n - -g\n\nrelease:\n clean: true\n flags:\n - -O1\n```\n\n## Information and Help\n\nThe `maek` command generally expects to find a `maekfile` in the current directory. If not found, then the file may be specified using the `-f` or `--file` options on the command line.\n\n $> maek --version\n maek, version 0.0.3\n $> maek --help\n Usage: maek [OPTIONS] CONFIGURATION\n\n Options:\n --version Show the version and exit.\n -c, --clean\n -f, --file TEXT specifies the maekfile\n -v, --verbose turn on verbose mode\n -q, --quiet quiet output, only displays warnings and errors\n -l, --list_configs shows the available configurations\n --version Show the version and exit.\n --help Show this message and exit.\n\n## Building a Project\n\nAssuming that a configuration called `release` is available within the yml file, a suitable build command would be\n\n $> maek release\n\n## Cleaning a Project\n\nNeed to clean up a project directory in order to do a re-build? Simply call up the configuration name with the `--clean` parameter.\n\n $> maek release --clean\n\nIt is also possible to use the `clean` option shown in `configuration options` in order to execute a clean on every build.\n\n# Configuration Options\n\nEvery `maekfile` file must contain a `default` configuration. Each configuration is a level 1 within the YAML-based `maekfile`. Each configuration may contain the following options:\n\n## Configuration Options\n\n### clean\n\nBoolean `true` or `false`. Will trigger a clean as part of every execution of this configuration. Default: `false`.\n\n### compile\n\nBoolean. Will trigger a compile as part of every execution of this configuration. Default: `true`.\n\n### link\n\nBoolean. Will trigger a link as part of every execution of this configuration. Default: `true`.\n\n### out\n\nList of strings. Specifies the extension of the output. Default: `out`. Other desired extensions might be `exe` or `elf`.\n\n```yml\ndefault:\n out:\n - hex\n - bin\n```\n\n### exports\n\nList of strings. Will trigger a copy operation of the output file into different formats. Valid strings are `hex` and `bin`.\n\n### scripts\n\nList of `pre` and `post` scripts, which are themselves lists of strings. These commands will be executed verbatim before and/or after the build operation. Defaults to `null`.\n\n```yml\ndefault:\n scripts:\n pre:\n - rm -rf /path/to/somefile\n post:\n - /path/to/custom/script --script_param\n```\n\n### toolchain_path\n\nString. Specifies the path to the directory containg the toolchain. Defaults to `null`.\n\n### compiler\n\nString. Defaults to `gcc`.\n\n### linker\n\nString. Defaults to `gcc`.\n\n### objcopy\n\nString. Defaults to `objcopy`.\n\n### size\n\nString. Defaults to `size`.\n\n### flags\n\nA list of strings, each containing flags that will be forwarded to, both, the `compiler` and the `linker`.\n\n```yml\ndefault:\n flags:\n - -O1\n - -fdata-sections\n - -ffunction-sections\n```\n\n### cflags\n\nA list of strings, each containing flags that will be forwarded to the compiler only. Very similar to `flags` above.\n\n### lflags\n\nA list of strings, each containing flags that will be forwarded to the linker only. Very similar to `flags` above.\n\n### sources\n\nA list of strings, each of which is a source. This is usually a list of your c files.\n\n```yml\ndefault:\n sources:\n - src/main.c\n - src/included_source.c\n```\n\n### includes\n\nA list of strings, similar in format to `sources`, each element of which is an include file that will be passed to, both, the compiler and linker.\n\n### lscripts\n\nA list of strings, similar in format to `sources`, each element of which will be passed as a linker script into the linker.\n\n## Special Strings\n\nSome special strings will be automatically replaced wherever encountered in the `maekfile`.\n\n`{{ BUILD_PATH }}` will be replaced by the configuration name. This is useful in some places, particularly in pre and post-build scripts which apply to multiple configurations or for options that require a path (such as generating a map file below).\n\n```yml\ndefault:\n lflags:\n - -Xlinker -Map={{ BUILD_PATH }}/map\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/slightlynybbled/maek", "keywords": "c build make", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "maek", "package_url": "https://pypi.org/project/maek/", "platform": "", "project_url": "https://pypi.org/project/maek/", "project_urls": { "Homepage": "https://github.com/slightlynybbled/maek" }, "release_url": "https://pypi.org/project/maek/0.1.1/", "requires_dist": [ "click (>=6.7)", "coloredlogs (>=10.0)", "tqdm (>=4.2)", "pyyaml (>=3.1)" ], "requires_python": "", "summary": "Command-line makefile replacement", "version": "0.1.1" }, "last_serial": 4098243, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "7ed31f136ea42776b94f1d03f9d08c09", "sha256": "ff43ea0cb774a37da418b81b9e6fe5d8bf53d11755b6168b6d7144e669ea525b" }, "downloads": -1, "filename": "maek-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7ed31f136ea42776b94f1d03f9d08c09", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4878, "upload_time": "2018-06-28T18:34:21", "url": "https://files.pythonhosted.org/packages/0a/93/f26c5504017d7aea78f2b4841383fb3834b0db167ad6b90e98499f930c3b/maek-0.0.1-py3-none-any.whl" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "d09d29fd2405f016a785a3d8d3b9a5f1", "sha256": "5db59b4847df65e71d4f5f325baa34046f619b9b7cb659f3bc6e5592b2f699fc" }, "downloads": -1, "filename": "maek-0.0.12-py3-none-any.whl", "has_sig": false, "md5_digest": "d09d29fd2405f016a785a3d8d3b9a5f1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8078, "upload_time": "2018-07-09T18:54:38", "url": "https://files.pythonhosted.org/packages/17/b7/81f6ac5a858b898a7ef6cf381cf425fe7297291eb0afe5ff6c9dd1b52af9/maek-0.0.12-py3-none-any.whl" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "2dbf0b5c7d795069130e88f4c0f5cc61", "sha256": "1a176c6293d2d6297f94084150256a6455d59f5de5f7908d951099a06677cf01" }, "downloads": -1, "filename": "maek-0.0.14-py3-none-any.whl", "has_sig": false, "md5_digest": "2dbf0b5c7d795069130e88f4c0f5cc61", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11085, "upload_time": "2018-07-10T00:47:42", "url": "https://files.pythonhosted.org/packages/49/55/4ec1a167bc1770367157de6a5483a2f6463efda7304f9ecd4810ec2adcab/maek-0.0.14-py3-none-any.whl" } ], "0.0.15": [ { "comment_text": "", "digests": { "md5": "c093d42fd7161cb1a03cec20b5d298a8", "sha256": "f6e3eb449fcec327ea4ef0d728adfc069139f60ffdfdd0681efb39972d491345" }, "downloads": -1, "filename": "maek-0.0.15-py3-none-any.whl", "has_sig": false, "md5_digest": "c093d42fd7161cb1a03cec20b5d298a8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11156, "upload_time": "2018-07-10T01:24:39", "url": "https://files.pythonhosted.org/packages/f6/30/e510ca207b61f0867a080b9f75b50515e5b02c9f5eef9fe7e60a52447d7a/maek-0.0.15-py3-none-any.whl" } ], "0.0.16": [ { "comment_text": "", "digests": { "md5": "c4ddebb24c6750706ea1c3d791bd1e90", "sha256": "374a880c8f63de7fe4429d84b993bc18469e5d75ac63c564fffb4683290ccc1b" }, "downloads": -1, "filename": "maek-0.0.16-py3-none-any.whl", "has_sig": false, "md5_digest": "c4ddebb24c6750706ea1c3d791bd1e90", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8633, "upload_time": "2018-07-10T11:00:45", "url": "https://files.pythonhosted.org/packages/aa/32/95d2e314bb579e40f283f45ba3e36f9b2ad726c608a0629398c09510a356/maek-0.0.16-py3-none-any.whl" } ], "0.0.17": [ { "comment_text": "", "digests": { "md5": "63c176419bb18fc6878b2baa467e8fb6", "sha256": "90f86bcac64095d30937e83d90b735d76561a0f1dfe85e585a821226a55e5862" }, "downloads": -1, "filename": "maek-0.0.17-py3.6.egg", "has_sig": false, "md5_digest": "63c176419bb18fc6878b2baa467e8fb6", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 15810, "upload_time": "2018-07-10T12:33:44", "url": "https://files.pythonhosted.org/packages/9e/c7/fe622ea646be855a91897226c598a000864ceb7ec00c30914feb8f37de17/maek-0.0.17-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "5efc49586b38ddb117499786a742ce7d", "sha256": "c9675db7006ece03eaf2807a76666f6cfb29016b8f7cb4a34b44fc8af904566b" }, "downloads": -1, "filename": "maek-0.0.17-py3-none-any.whl", "has_sig": false, "md5_digest": "5efc49586b38ddb117499786a742ce7d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8629, "upload_time": "2018-07-10T12:08:47", "url": "https://files.pythonhosted.org/packages/36/d1/9db76dd32e7241d1b94bdf4538a67d6fdbd4d65f90f3bc7ec3f64ab36d6e/maek-0.0.17-py3-none-any.whl" } ], "0.0.18": [ { "comment_text": "", "digests": { "md5": "8be54757a01319474c180482e2d37c6b", "sha256": "eb71cd63c04a2ea0d15cf0c7fb4a78b5bae76250768a876c8270ffd70e226dc1" }, "downloads": -1, "filename": "maek-0.0.18-py3-none-any.whl", "has_sig": false, "md5_digest": "8be54757a01319474c180482e2d37c6b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8987, "upload_time": "2018-07-16T14:25:44", "url": "https://files.pythonhosted.org/packages/92/b5/ecb2b5115a88e6299f9b73f51087b694ccae33d1acbf821817e758c1c1df/maek-0.0.18-py3-none-any.whl" } ], "0.0.19": [ { "comment_text": "", "digests": { "md5": "920742eeac86047b06fee27ea1486b90", "sha256": "a1ff30621b035cdfc53356fc46515ccdc7d5e1cda3592c09e363736cf1ba9df5" }, "downloads": -1, "filename": "maek-0.0.19-py3-none-any.whl", "has_sig": false, "md5_digest": "920742eeac86047b06fee27ea1486b90", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11747, "upload_time": "2018-07-19T01:45:42", "url": "https://files.pythonhosted.org/packages/aa/a4/a98c0bb3b9240ca5ad7afae4b943cce6e4202b875ec790af760774651bb5/maek-0.0.19-py3-none-any.whl" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "55ac96ba4749b4da196bf9a425f305d2", "sha256": "54eab78bc282f631ecc4c7d977db2f56c9c55ca665230b1ab5666e5133cd10b7" }, "downloads": -1, "filename": "maek-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "55ac96ba4749b4da196bf9a425f305d2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5700, "upload_time": "2018-06-28T18:50:23", "url": "https://files.pythonhosted.org/packages/d0/ff/cd60ee4e6f7581bb3e5e8724d8190effcb2eb8d277d041bcbb783577a8ab/maek-0.0.2-py3-none-any.whl" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "64e903304d2bbc0ad08ab46ee4b4dc6b", "sha256": "22945b15eb865f145553254b9fea08898b760f76a2788cfde717f8fd23c8df41" }, "downloads": -1, "filename": "maek-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "64e903304d2bbc0ad08ab46ee4b4dc6b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6201, "upload_time": "2018-06-29T14:57:37", "url": "https://files.pythonhosted.org/packages/43/12/35044f80d7974a335fa43c241adbfea4690f7ca65458462c1196fe8a1a8a/maek-0.0.3-py3-none-any.whl" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "f1fbedf3ebaae0cd5c87f3959ead336a", "sha256": "ff5875c4a3630e372c9a0d3ca10ced226c99b48f9b153713c534d147d101e231" }, "downloads": -1, "filename": "maek-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "f1fbedf3ebaae0cd5c87f3959ead336a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6525, "upload_time": "2018-06-29T19:28:17", "url": "https://files.pythonhosted.org/packages/1b/8a/68b992c71746e7face169ba382d95d19556281a1b51793e7100784e87d50/maek-0.0.6-py3-none-any.whl" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "fc7d9ed59c03d136eff78f6d7795eb60", "sha256": "d6590dd3da2427e5e6cdea152d5b17c13587992e5a2609dbdcba3853fa981d26" }, "downloads": -1, "filename": "maek-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "fc7d9ed59c03d136eff78f6d7795eb60", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7794, "upload_time": "2018-07-09T14:20:32", "url": "https://files.pythonhosted.org/packages/6b/06/5f9c4993c74f2e8a49d1a4234893eae055c7a0801cd0c5e047c0e83423eb/maek-0.0.7-py3-none-any.whl" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "06aa3401d7568f8781c04e21f3f4208c", "sha256": "56edb44cf7d95b383f167a4b471867486618dac8f5384b30190755a619927a71" }, "downloads": -1, "filename": "maek-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "06aa3401d7568f8781c04e21f3f4208c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7788, "upload_time": "2018-07-09T14:35:03", "url": "https://files.pythonhosted.org/packages/19/0c/911c4fc925781d56ad61ea7d052b6ff839ca66822612004776a7a35390e2/maek-0.0.8-py3-none-any.whl" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "299f4641f8df296a7fe4e95f2603a7f2", "sha256": "9e78d9b52400a71a4a28ae897814cb5f6a35bc59624fce6f61b82bc459e8285f" }, "downloads": -1, "filename": "maek-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "299f4641f8df296a7fe4e95f2603a7f2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7792, "upload_time": "2018-07-09T15:13:35", "url": "https://files.pythonhosted.org/packages/03/1d/cada7479a55bfb66ad7f0feed8e0b64aa0abc8edb2ca976be8a86eddeeae/maek-0.0.9-py3-none-any.whl" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "fa0491b7e6a8bb2ffc8e34727dc22ba0", "sha256": "c6ac33df0d565d94e7d573a37b6154936847dbd40053db6c9893b8c010a6a95c" }, "downloads": -1, "filename": "maek-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fa0491b7e6a8bb2ffc8e34727dc22ba0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11749, "upload_time": "2018-07-19T02:08:50", "url": "https://files.pythonhosted.org/packages/7b/17/4d18cdb17d53d3cb7a58e0bd25787afcca505e0596ac5783f667db58f413/maek-0.1.0-py3-none-any.whl" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "6b9c49302e5a8e7e67eb0e512ee8d7d9", "sha256": "92d3e28c77d8459ac385f83d841b0c597f3ba4ba4ab844b15d23d802761b22ac" }, "downloads": -1, "filename": "maek-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6b9c49302e5a8e7e67eb0e512ee8d7d9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9013, "upload_time": "2018-07-24T19:43:56", "url": "https://files.pythonhosted.org/packages/eb/df/ba9157380e0798f30a8f1001a53fc3f113a49af06b40168e0a9dfb659548/maek-0.1.1-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6b9c49302e5a8e7e67eb0e512ee8d7d9", "sha256": "92d3e28c77d8459ac385f83d841b0c597f3ba4ba4ab844b15d23d802761b22ac" }, "downloads": -1, "filename": "maek-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6b9c49302e5a8e7e67eb0e512ee8d7d9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9013, "upload_time": "2018-07-24T19:43:56", "url": "https://files.pythonhosted.org/packages/eb/df/ba9157380e0798f30a8f1001a53fc3f113a49af06b40168e0a9dfb659548/maek-0.1.1-py3-none-any.whl" } ] }