Skip to content

Does not take target-local variable assignments into account #3

@ZelphirKaltstahl

Description

@ZelphirKaltstahl

I am actually coming from the fork at https://github.com/chadsgilbert/makefile2dot, which is linked by the PyPI page at https://pypi.org/project/makefile2dot/. However, there I cannot create issues and I am assuming, that the same issue persists in this repository:

In Makefiles one can assign variables locally for only one target. For example:

target1: SOME_VAR := some_value
target1:
    printf "%s\n" "${SOME_VAR}"

When this kind of Makefile is input for makefile2dot, then makefile2dot fails:

$ makefile2dot
Traceback (most recent call last):
  File "LOCATION_OF_MYVENV/bin/makefile2dot", line 23, in <module>
    makefile2dot(direction=ARGS.direction, output=ARGS.output, view=ARGS.view)
  File "LOCATION_OF_MYVENV/lib/python3.10/site-packages/makefile2dot/__init__.py", line 71, in makefile2dot
    graph = build_graph(stream_database(), direction=direction)
  File "LOCATION_OF_MYVENV/lib/python3.10/site-packages/makefile2dot/__init__.py", line 39, in build_graph
    target, dependencies = line.split(':')
ValueError: too many values to unpack (expected 2)
make: *** [Makefile:385: makefile-graph] Error 1

makefile2dot does not take local variable assignment syntax into account and runs into an error.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions