Hi all,

I'm porting the egg libyaml from chicken-5 to chicken-6,
The egg uses lots of C sources from another repository,
and statically links the C sources into the egg.

I found that `chicken-install` will install c-object when
the c-object name contains "/" character.
For convenient, here is a minimal example.
- File `./c-source/foo.c`:
  ```
  void foo() {}
  ```
- File `./link-c.scm`:
  ```
  (module link-c (foo)
  (import scheme (chicken foreign))
  (foreign-declare "void foo();")
  (define foo (foreign-lambda void "foo")))
  ```
- File `./link-c.egg`
  ```
  ((components
      (c-object c-source/foo.c (source c-source/foo.c))
      (extension link-c
            (source link-c.scm)
            (objects c-source/foo.c))))
  ```

When run `chicken-install -s -l .`, it will report:
```
install: cannot create regular file '/usr/lib/chicken/12/c-source/foo.c.o': No 
such file or directory
```

And the file `link-c.install.sh` did contain the line:
```
install -m 644 '/tmp/chicken-install-bug/c-source/foo.c.o' 
"${DESTDIR}"'/usr/lib/chicken/12/c-source/foo.c.o'
```

Since the egg had been built by chicken-5 on versions,
I think it might be a bug of `chicken-install` in chicken-6.

Reply via email to