Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rotty/conjure
A make(1) replacement in Scheme (R6RS version)
https://github.com/rotty/conjure
Last synced: 19 days ago
JSON representation
A make(1) replacement in Scheme (R6RS version)
- Host: GitHub
- URL: https://github.com/rotty/conjure
- Owner: rotty
- License: gpl-3.0
- Created: 2009-05-09T23:49:48.000Z (over 15 years ago)
- Default Branch: master
- Last Pushed: 2011-05-11T22:12:32.000Z (over 13 years ago)
- Last Synced: 2024-10-10T20:28:33.136Z (about 1 month ago)
- Language: Scheme
- Homepage:
- Size: 219 KB
- Stars: 19
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README
- License: COPYING
Awesome Lists containing this project
README
# -*- org -*-
* Conjure (R6RS version)
This is yet another attempt at a build tool, akin to make(1), in
Scheme.Conjure is used as a build tool for the spells[0] and sbank[1], where
it's task is mostly file generation by substition, similiar to what
autoconf-generated "configure" scripts do.It currently contains the following functionality to fulfill the above
purpose:** Dependency engine
This is currently using file modifiction times (no MD5 goodness yet)
** An internal DSL
Acts as a "build language", embedded in Scheme. An example from
spells:#+BEGIN_SRC lisp
(task cc (cc-conf))(task (configure
(produce '((("spells" "foreign") "config.sls")
<= (("libraries" "foreign") "config.sls.in")))
(fetchers (cc-fetcher 'cc)
(hostinfo-fetcher))))
#+END_SRC** Configuration module
Allows tailoring files to a specific environment by doing substitions
on template files. An example from spells:#+BEGIN_SRC lisp
(define c-type-alignof
(let ((target '("#!@(host-info os)"
"#!@(host-info cpu)")))
...))
#+END_SRCIn this code fragment, the #!@(...) "forms" are substituted at build
time with the hosts' operating system and CPU.The configuration module uses a cache, avoiding a potentially costly
re-calculation of substitution value on each source file change.