rom.html 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <title>Serving from ROM</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  6. <meta charset="utf-8">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  8. <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1">
  9. <meta name="description" content="GoAhead web server">
  10. <link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,700|Open+Sans:300italic,400,300,700' rel='stylesheet' type='text/css'>
  11. <link href='https://fonts.googleapis.com/css?family=Julius+Sans+One' rel='stylesheet' type='text/css'>
  12. <link href="../images/favicon.ico" rel="shortcut icon">
  13. <link href="../lib/semantic-ui/semantic.min.css" rel="stylesheet" type="text/css">
  14. <link href="../css/all.min.css" rel="stylesheet" type="text/css">
  15. <link href="../css/api.min.css" rel="stylesheet" type="text/css">
  16. </head>
  17. <body class="show-sidebar">
  18. <div class="sidebar">
  19. <div class="ui large left vertical inverted labeled menu">
  20. <div class="item">
  21. <a href="../" class="logo">GoAhead Docs</a>
  22. </div>
  23. <div class="item">
  24. <a href="../">
  25. <b>General</b>
  26. </a>
  27. <div class="menu">
  28. <a class="item" href="../">GoAhead Overview</a>
  29. <a class="item" href="../users/features.html">GoAhead Features</a>
  30. <a class="item" href="https://embedthis.com/goahead/download.html">Download</a>
  31. <a class="item" href="../licensing/">Licensing</a>
  32. </div>
  33. </div>
  34. <div class="item">
  35. <a href="../start/">
  36. <b>Getting Started</b>
  37. </a>
  38. <div class="menu">
  39. <a class="item" href="../start/quick.html">Quick Start</a>
  40. <a class="item" href="../start/installing.html">Installing GoAhead</a>
  41. <a class="item" href="../start/running.html">Running GoAhead</a>
  42. <a class="item" href="../start/releaseNotes.html">Release Notes</a>
  43. <a class="item" href="../start/faq.html">GoAhead FAQ</a>
  44. <a class="item" href="../start/source.html">Building from Source</a>
  45. </div>
  46. </div>
  47. <div class="item">
  48. <a href="../users/"><b>User's Guide</b></a>
  49. <div class="menu">
  50. <a class="item" href="../users/ports.html">Ports and Binding</a>
  51. <a class="item" href="../users/routing.html">Routing Requests</a>
  52. <a class="item" href="../users/handlers.html">Request Handlers</a>
  53. <a class="item" href="../users/js.html">Embedded Javascript</a>
  54. <a class="item" href="../users/jst.html">Javascript Templates</a>
  55. <a class="item" href="../users/goactions.html">GoActions</a>
  56. <a class="item" href="../users/cgi.html">CGI Programs</a>
  57. <a class="item" href="../users/authentication.html">User Authentication</a>
  58. <a class="item" href="../users/logFiles.html">Log Files</a>
  59. <a class="item" href="../users/ssl.html">Secure Sockets (SSL)</a>
  60. <a class="item" href="../users/security.html">Security Considerations</a>
  61. <a class="item" href="../users/man.html">Man Pages</a>
  62. </div>
  63. </div>
  64. <div class="item">
  65. <a href="../developers/">Developer's Guide</a>
  66. <div class="menu">
  67. <a class="item" href="../developers/embedding.html">Embedding GoAhead</a>
  68. <a class="item" href="../developers/handlers.html">Creating GoAhead Handlers</a>
  69. <a class="item" href="../developers/authstore.html">Creating Password Verifiers</a>
  70. <a class="item" href="../developers/migrating.html">Migrating to GoAhead 3/4</a>
  71. <a class="item" href="../developers/rom.html">Serving Pages from ROM</a>
  72. </div>
  73. </div>
  74. <div class="item">
  75. <a href="../ref/">Reference Guide</a>
  76. <div class="menu">
  77. <a class="item" href="../ref/compatibility.html">Compatibility</a>
  78. <a class="item" href="../ref/native.html">API Library</a>
  79. <a class="item" href="../ref/architecture.html">GoAhead Architecture</a>
  80. <a class="item" href="../standards/http.html">HTTP References</a>
  81. </div>
  82. </div>
  83. <div class="item">
  84. <a href="../developers/project.html">Project Resources</a>
  85. <div class="menu">
  86. <a class="item" href="https://embedthis.com/blog/categories/GoAhead/">GoAhead News</a>
  87. <a class="item" href="https://embedthis.com/goahead/">GoAhead Web Site</a>
  88. <a class="item" href="https://github.com/embedthis/goahead">Source Code Repository</a>
  89. <a class="item" href="https://github.com/embedthis/goahead/issues/99">GoAhead Security Alerts</a>
  90. <a class="item" href="https://github.com/embedthis/goahead/issues">Project Issue Database</a>
  91. <a class="item" href="https://github.com/embedthis/goahead/releases">Change Log</a>
  92. <a class="item" href="https://github.com/embedthis/goahead/milestones">Roadmap</a>
  93. <a class="item" href="https://embedthis.com/developers/contributors.html">Contributors Agreement</a>
  94. </div>
  95. </div>
  96. <div class="item">
  97. <b>Links</b>
  98. <div class="menu">
  99. <a class="item" href="https://embedthis.com/">Embedthis Web Site</a>
  100. <a class="item" href="https://embedthis.com/blog/">Embedthis Blog</a>
  101. <a class="item" href="http://twitter.com/embedthat">Twitter</a>
  102. </div>
  103. </div>
  104. </div>
  105. </div>
  106. <div class="ui inverted masthead">
  107. <div class="ui fixed inverted menu">
  108. <div class="ui sidebar-launch button">
  109. <i class="icon list layout"></i>
  110. </div>
  111. <div class="right menu">
  112. <a class="item" href="https://embedthis.com/">Embedthis</a>
  113. <a class="item" href="https://embedthis.com/goahead/">GoAhead Site</a>
  114. <span class="desktop-only">
  115. <a class="item" href="https://embedthis.com/blog/categories/GoAhead/">GoAhead News</a>
  116. <a class="item" href="https://github.com/embedthis/goahead">Repository</a>
  117. <a class="item" href="https://embedthis.com/blog/">Blog</a>
  118. <a class="item" href="https://twitter.com/embedthat">Twitter</a>
  119. </span>
  120. </div>
  121. </div>
  122. <div class="ui breadcrumb">
  123. <a class="section" href="../">Home</a>
  124. <div class="divider">/</div>
  125. <a class="section" href="../developers/">
  126. Developer's Guide
  127. </a>
  128. <div class="divider">/</div>
  129. <a class="active section" href="rom.html">Serving from ROM</a>
  130. </div>
  131. <iframe class="version desktop-only" src="../version.html"></iframe>
  132. </div>
  133. <div class="content">
  134. <h1>Serving Pages from ROM</h1>
  135. <p>To enable GoAhead to be used on embedded systems without file systems, GoAhead supports the compilation of
  136. web pages and configuration files into C code that can be stored in Read-Only-Memory (ROM) and fetched by
  137. GoAhead to respond to relevant requests.</p>
  138. <p>GoAhead has a virtual file system interface that allows the run-time switching between serving web pages
  139. on a disk-based file system and a compiled ROM based store of web pages.
  140. This ROM facility may also be used to enhance security by preventing the modification of web documents,
  141. or in performance critical situations were the serving of web pages from memory may be an effective
  142. optimization.</p>
  143. <h2>Configuring GoAhead</h2>
  144. <p>To build GoAhead with support for ROM based file systems, you need to run configure with the <em>--rom</em>
  145. option. For example:</p>
  146. <pre class="ui code segment">./configure --rom</pre>
  147. <p>With the --rom option, configure will set the ME_ROM compiler definition to <em>1</em> and will enable
  148. the ROM file system.</p>
  149. <h2>Compiling Web Pages</h2>
  150. <p>The GoAhead <b>webcomp</b> program is used to compile web documents, configuration files, and any other
  151. files that you would like to be compiled into C code. The webcomp program will parse the files and convert
  152. them into C data structures which can then be compiled by your C/C++ compiler and linked into your
  153. application. For example:</p>
  154. <pre class="ui code segment">find *.txt web -print &gt;fileList webcomp filelist &gt;rom.c</pre>
  155. <p>This will create a list of all the web files and then convert these files into C structures in the file
  156. rom.c.</p>
  157. <p>The <b>webcomp</b> program takes one options:</p>
  158. <table title="Switches" class="ui table width">
  159. <thead>
  160. <tr>
  161. <th>Switch</th>
  162. <th>Description</th>
  163. </tr>
  164. </thead>
  165. <tbody>
  166. <tr>
  167. <td>--strip</td>
  168. <td>Specifies a prefix to strip from each of the compiled file names.</td>
  169. </tr>
  170. </tbody>
  171. </table>
  172. </div>
  173. <div class="terms ui basic center aligned segment">
  174. <p>&copy; Embedthis Software. All rights reserved.</p>
  175. </div>
  176. <script src="../lib/jquery/jquery.min.js"></script>
  177. <script src="../lib/semantic-ui/semantic.min.js"></script>
  178. <script src="../scripts/sidebar.min.js"></script>