# makemake
`makemake` is a simple Makefile generator for C projects.
## Example
Example input file `Makefile.in`:
```makefile
PROG=prog # the program name
DIR=src/ # the source code directory
STD=c99 # the C standard
BUILD=build/ # the output directory
```
Assume we have the following project files:
```
src/config.h
src/lex.h
src/lex.c
src/main.c
```
Then the output `Makefile` is as follows:
```makefile
# Makefile generated by makemake - by Andreas Schwenk
PROG=prog
CC=gcc -std=c99
BUILD_DIR=build/
INC=
LIB=
CFLAGS=$(FLAGS)
HEADERS=src/config.h src/lex.h
OBJS=$(BUILD_DIR)lex.o $(BUILD_DIR)main.o
$(shell mkdir -p $(BUILD_DIR))
all: $(PROG)
clean:
rm -rf $(BUILD_DIR)
$(PROG): $(OBJS)
$(CC) $(OBJS) $(INC) $(CFLAGS) $(LIB) -o $(BUILD_DIR)$(PROG)
$(BUILD_DIR)lex.o: src/lex.c $(HEADERS)
$(CC) src/lex.c $(INC) $(CFLAGS) -c -o $(BUILD_DIR)lex.o
$(BUILD_DIR)main.o: src/main.c $(HEADERS)
$(CC) src/main.c $(INC) $(CFLAGS) -c -o $(BUILD_DIR)main.o
```
## Usage
### Installation
```bash
pip install makemake
```
### Command Line
```bash
makemake 'Makefile.in'
```
### API
```python
import makemake
# creates output 'Makefile' using meta data specified
# in 'Makefile.in'
makemake.makemake('Makefile.in', 'Makefile')
```
Raw data
{
"_id": null,
"home_page": "https://github.com/andreas-schwenk/makemake",
"name": "makemake",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "make makefile C build",
"author": "Andreas Schwenk",
"author_email": "contact@compiler-construction.com",
"download_url": "https://files.pythonhosted.org/packages/95/c3/725ed7d7ebe021d728c4e4474c65fa611b4d5a3f905fa759e99d0d7798fd/makemake-0.2.tar.gz",
"platform": null,
"description": "# makemake\n\n`makemake` is a simple Makefile generator for C projects.\n\n## Example\n\nExample input file `Makefile.in`:\n\n```makefile\nPROG=prog # the program name\nDIR=src/ # the source code directory\nSTD=c99 # the C standard\nBUILD=build/ # the output directory\n```\n\nAssume we have the following project files:\n\n```\nsrc/config.h\nsrc/lex.h\nsrc/lex.c\nsrc/main.c\n```\n\nThen the output `Makefile` is as follows:\n\n```makefile\n# Makefile generated by makemake - by Andreas Schwenk\nPROG=prog\nCC=gcc -std=c99\nBUILD_DIR=build/\nINC=\nLIB=\nCFLAGS=$(FLAGS)\nHEADERS=src/config.h src/lex.h\nOBJS=$(BUILD_DIR)lex.o $(BUILD_DIR)main.o\n\n$(shell mkdir -p $(BUILD_DIR))\n\nall: $(PROG)\nclean:\n\trm -rf $(BUILD_DIR)\n\n$(PROG): $(OBJS)\n\t$(CC) $(OBJS) $(INC) $(CFLAGS) $(LIB) -o $(BUILD_DIR)$(PROG)\n$(BUILD_DIR)lex.o: src/lex.c $(HEADERS)\n\t$(CC) src/lex.c $(INC) $(CFLAGS) -c -o $(BUILD_DIR)lex.o\n$(BUILD_DIR)main.o: src/main.c $(HEADERS)\n\t$(CC) src/main.c $(INC) $(CFLAGS) -c -o $(BUILD_DIR)main.o\n```\n\n## Usage\n\n### Installation\n\n```bash\npip install makemake\n```\n\n### Command Line\n\n```bash\nmakemake 'Makefile.in'\n```\n\n### API\n\n```python\nimport makemake\n\n# creates output 'Makefile' using meta data specified\n# in 'Makefile.in'\nmakemake.makemake('Makefile.in', 'Makefile')\n```\n",
"bugtrack_url": null,
"license": "GPLv3",
"summary": "A simple makefile generator for C projects",
"version": "0.2",
"split_keywords": [
"make",
"makefile",
"c",
"build"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "91391bf07ec03d85d824924cc71cfa38622d27d5eca4ebedf93ac47d5124a09a",
"md5": "f2a858141efaed6c2d49c54cc7c2cd99",
"sha256": "13faf56622159dd2955335adaa60fd2fd7c0ec8f017e5f1e1eef6413faa90f53"
},
"downloads": -1,
"filename": "makemake-0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f2a858141efaed6c2d49c54cc7c2cd99",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 16156,
"upload_time": "2023-03-19T10:34:02",
"upload_time_iso_8601": "2023-03-19T10:34:02.575238Z",
"url": "https://files.pythonhosted.org/packages/91/39/1bf07ec03d85d824924cc71cfa38622d27d5eca4ebedf93ac47d5124a09a/makemake-0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "95c3725ed7d7ebe021d728c4e4474c65fa611b4d5a3f905fa759e99d0d7798fd",
"md5": "459b9432b407e4964fe69ac781bded86",
"sha256": "0467a81bce54567f3c63cece857e60db8902ca538ff3514a7a8bfb59181bdd94"
},
"downloads": -1,
"filename": "makemake-0.2.tar.gz",
"has_sig": false,
"md5_digest": "459b9432b407e4964fe69ac781bded86",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 15621,
"upload_time": "2023-03-19T10:34:05",
"upload_time_iso_8601": "2023-03-19T10:34:05.961715Z",
"url": "https://files.pythonhosted.org/packages/95/c3/725ed7d7ebe021d728c4e4474c65fa611b4d5a3f905fa759e99d0d7798fd/makemake-0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-03-19 10:34:05",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "andreas-schwenk",
"github_project": "makemake",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "makemake"
}