aos/hake/notes.txt
Daniel Schwyn 6d444bf552 Main handout
Signed-off-by: Daniel Schwyn <daniel.schwyn@inf.ethz.ch>
2022-03-03 14:57:51 +01:00

58 lines
2.1 KiB
Plaintext

Flounder:
- Interface files are in /if/<foo>.if
- Header files go into /include/if/<foo>_types.h
- Server stub is ./<foo>_server_stub_<suffix>.c
- Client stub is ./<foo>_client_stub_<suffix>.c
Out of tree builds:
- There are n trees...
- Current "source" tree (which may be small, just the app being
built).
- Current "build" tree, which is where the output files go.
- Current "install" tree, which is where we look for include files
and libraries. This might be a subset of a full core OS build
tree.
- Include paths, etc. must therefore specify if they refer to the
build tree or the install tree, and we must copy all include files
from the source tree to the build tree.
- Dependencies must now specify "tree", "arch", and "path".
- Tokens are currently:
data RuleToken = In String String -- Input to the computation
| Out String String -- Output of the computation
| Dep String String -- Extra (implicit) dependency
| NoDep String String -- File that's not a dependency
| PreDep String String -- One-time dependency
| Target String String -- Target that's not involved
| Str String -- String with trailing " "
| NStr String -- Just a string
| NL -- New line
This becomes:
data TreeRef = SourceTree | BuildTree | InstallTree
data RuleToken = In TreeRef String String -- Input to the computation
| Dep TreeRef String String -- Extra (implicit) dependency
| NoDep TreeRef String String -- File that's not a dependency
| PreDep TreeRef String String -- One-time dependency
| Out String String -- Always Build
| Target String String -- Always Build
| Str String -- String with trailing " "
| NStr String -- Just a string
| NL -- New line
-----------
Later:
data Arch = ARM | Beehive | X86_32 | X86_64