1 2Flounder: 3 4 - Interface files are in /if/<foo>.if 5 - Header files go into /include/if/<foo>_types.h 6 - Server stub is ./<foo>_server_stub_<suffix>.c 7 - Client stub is ./<foo>_client_stub_<suffix>.c 8 9Out of tree builds: 10 11 - There are n trees... 12 13 - Current "source" tree (which may be small, just the app being 14 built). 15 16 - Current "build" tree, which is where the output files go. 17 18 - Current "install" tree, which is where we look for include files 19 and libraries. This might be a subset of a full core OS build 20 tree. 21 22 - Include paths, etc. must therefore specify if they refer to the 23 build tree or the install tree, and we must copy all include files 24 from the source tree to the build tree. 25 26 - Dependencies must now specify "tree", "arch", and "path". 27 28 - Tokens are currently: 29 30data RuleToken = In String String -- Input to the computation 31 | Out String String -- Output of the computation 32 | Dep String String -- Extra (implicit) dependency 33 | NoDep String String -- File that's not a dependency 34 | PreDep String String -- One-time dependency 35 | Target String String -- Target that's not involved 36 | Str String -- String with trailing " " 37 | NStr String -- Just a string 38 | NL -- New line 39 40This becomes: 41 42data TreeRef = SourceTree | BuildTree | InstallTree 43 44data RuleToken = In TreeRef String String -- Input to the computation 45 | Dep TreeRef String String -- Extra (implicit) dependency 46 | NoDep TreeRef String String -- File that's not a dependency 47 | PreDep TreeRef String String -- One-time dependency 48 | Out String String -- Always Build 49 | Target String String -- Always Build 50 | Str String -- String with trailing " " 51 | NStr String -- Just a string 52 | NL -- New line 53 54----------- 55Later: 56 57data Arch = ARM | Beehive | X86_32 | X86_64 58