Skip to content

Building libctlgeom from a git clone requires Guile #77

@oskooi

Description

@oskooi

When building libctl from git checkout without Guile (either via --without-guile or when Guile is not found), make fails with:

No rule to make target 'geom-ctl-io.c', needed by 'all'

Root case in utils/Makefile.am:

  • Line 9: ctlgeom-types.h in nodist_include_HEADERS – unconditional
  • Line 15: geom-ctl-io.c and ctlgeom-types.h in libctlgeom_la_SOURCES – unconditional
  • Line 33: geom-ctl-io.c and ctlgeom-types.h in BUILT_SOURCES – unconditional
  • Line 41–60: Generation rules – conditional on WITH_GUILE

When WITH_GUILE is false and the files don't exist (git checkout), there's no rule and no file.

The generated files geom-ctl-io.c and ctlgeom-types.h end up in the tarball because Automake automatically includes BUILT_SOURCES and source files from *_SOURCES in the dist. That's why the tarball has them but the git repo does not.

The real question is: should libctlgeom be buildable without Guile from a git checkout? Given that the entire library's type system is generated from geom.scm by Guile, it seems like Guile is a build-time dependency for building from git, and only tarball users can skip it (since the generated files are pre-included).

It would be good to be able to build libctlgeom using git checkout without having to install Guile as a dependency.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions