summaryrefslogtreecommitdiff
path: root/docs/porting/newbinary.html
blob: bfdd90a0159bae91b7a7f0e8294b0ba5b3dbca37 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Chapter 2. Creating a New Berkeley DB Binary</title>
    <link rel="stylesheet" href="gettingStarted.css" type="text/css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
    <link rel="start" href="index.html" title="Porting Berkeley DB" />
    <link rel="up" href="index.html" title="Porting Berkeley DB" />
    <link rel="prev" href="portprocess.html" title="Berkeley DB Porting Process" />
    <link rel="next" href="modscope.html" title="Determining the Scope of the Modifications" />
  </head>
  <body>
    <div xmlns="" class="navheader">
      <div class="libver">
        <p>Library Version 12.1.6.1</p>
      </div>
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">Chapter 2. Creating a New Berkeley DB Binary</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="portprocess.html">Prev</a> </td>
          <th width="60%" align="center"> </th>
          <td width="20%" align="right"> <a accesskey="n" href="modscope.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="chapter" lang="en" xml:lang="en">
      <div class="titlepage">
        <div>
          <div>
            <h2 class="title"><a id="newbinary"></a>Chapter 2. Creating a New Berkeley DB Binary</h2>
          </div>
        </div>
      </div>
      <div class="toc">
        <p>
          <b>Table of Contents</b>
        </p>
        <dl>
          <dt>
            <span class="sect1">
              <a href="newbinary.html#basebuild">
Creating a Base Build of Berkeley DB
</a>
            </span>
          </dt>
          <dt>
            <span class="sect1">
              <a href="modscope.html">
Determining the Scope of the Modifications
</a>
            </span>
          </dt>
          <dd>
            <dl>
              <dt>
                <span class="sect2">
                  <a href="modscope.html#osfunc">
Do Changes Need to be Made to the Operating System Functionality?
</a>
                </span>
              </dt>
              <dt>
                <span class="sect2">
                  <a href="modscope.html#standardfunc">Are Some Standard Functions Missing on the Target Platform?</a>
                </span>
              </dt>
              <dt>
                <span class="sect2">
                  <a href="modscope.html#sharedmem">How Will the Port Handle Shared Memory?</a>
                </span>
              </dt>
              <dt>
                <span class="sect2">
                  <a href="modscope.html#typemutex">What Type of Mutexes Will the Port Use?</a>
                </span>
              </dt>
              <dt>
                <span class="sect2">
                  <a href="modscope.html#otherchanges">Do Any Other Changes Need to be Made?</a>
                </span>
              </dt>
            </dl>
          </dd>
          <dt>
            <span class="sect1">
              <a href="buildtarget.html"> Building on the Target Platform</a>
            </span>
          </dt>
          <dt>
            <span class="sect1">
              <a href="layout.html">Source Code Layout</a>
            </span>
          </dt>
        </dl>
      </div>
      <p>
Creating a new Berkeley DB executable on the target platform, involves:
</p>
      <div class="orderedlist">
        <ol type="1">
          <li>
            <p>
<a class="xref" href="newbinary.html#basebuild" title="Creating a Base Build of Berkeley DB">
Creating a Base Build of Berkeley DB
</a>
</p>
          </li>
          <li>
            <p>
<a class="xref" href="modscope.html" title="Determining the Scope of the Modifications">
Determining the Scope of the Modifications
</a>
</p>
          </li>
          <li>
            <p>
        <a class="xref" href="buildtarget.html" title="Building on the Target Platform"> Building on the Target Platform</a>
</p>
          </li>
        </ol>
      </div>
      <div class="sect1" lang="en" xml:lang="en">
        <div class="titlepage">
          <div>
            <div>
              <h2 class="title" style="clear: both"><a id="basebuild"></a>
Creating a Base Build of Berkeley DB
</h2>
            </div>
          </div>
        </div>
        <p>
The simplest way to begin a port is to attempt to configure and build Berkeley DB on a UNIX or UNIX-like system. This gives you a list of the files that you needed to build Berkeley DB as well as the configuration files you can use as a starting point for building on your target port.
</p>
        <p>
To create a base build of Berkeley DB, following the instructions in the
<em class="citetitle">Berkeley DB Programmer's Reference Guide</em>:
</p>
        <div class="orderedlist">
          <ol type="1">
            <li>
              <p>
Download a Berkeley DB distribution from <a class="ulink" href="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html" target="_top">http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html</a>.
</p>
            </li>
            <li>
              <p>
Build Berkeley DB.
</p>
            </li>
          </ol>
        </div>
        <p>Berkeley DB uses the GNU autoconf tools for configuration on almost all of
the platforms it supports.  Specifically, the include file
<code class="filename">db_config.h</code> configures the Berkeley DB build.  The simplest way to
begin a port is to configure and build Berkeley DB on a UNIX or UNIX-like
system, and then take the <code class="filename">Makefile</code> and <code class="filename">db_config.h</code>
file created by that configuration, and modify it by hand to reflect
the needs of the new architecture.  Unless you are already familiar with
the GNU autoconf toolset, we do not recommend you take the time to
integrate your changes back into the Berkeley DB autoconfiguration framework.
Instead, send us context diffs of your changes and any new source files
you created, and we can integrate the changes into our source tree.</p>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="portprocess.html">Prev</a> </td>
          <td width="20%" align="center"> </td>
          <td width="40%" align="right"> <a accesskey="n" href="modscope.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">Berkeley DB Porting Process </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> 
Determining the Scope of the Modifications
</td>
        </tr>
      </table>
    </div>
  </body>
</html>