File: z68.html

package info (click to toggle)
ebook-dev-ggad 199908-2
  • links: PTS
  • area: main
  • in suites: woody
  • size: 2,264 kB
  • ctags: 1,163
  • sloc: sh: 44; makefile: 35
file content (225 lines) | stat: -rw-r--r-- 9,273 bytes parent folder | download | duplicates (2)
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
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
  <head>
    <title>
      Source Tree Checklist
    </title>
    <meta name="GENERATOR" content=
    "Modular DocBook HTML Stylesheet Version 1.45">
    <link rel="HOME" title="GTK+ / Gnome Application Development"
    href="ggad.html">
    <link rel="UP" title="Creating Your Source Tree" href= 
    "cha-source.html">
    <link rel="PREVIOUS" title="Creating Your Source Tree" href= 
    "cha-source.html">
    <link rel="NEXT" title="configure.in" href="z69.html">
  </head>
  <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink= 
  "#840084" alink="#0000FF">
    <div class="NAVHEADER">
      <table width="100%" border="0" bgcolor="#ffffff" cellpadding= 
      "1" cellspacing="0">
        <tr>
          <th colspan="4" align="center">
            <font color="#000000" size="2">GTK+ / Gnome Application
            Development</font>
          </th>
        </tr>
        <tr>
          <td width="25%" bgcolor="#ffffff" align="left">
            <a href="cha-source.html"><font color="#0000ff" size=
            "2"><b>&lt;&lt;&lt; Previous</b></font></a>
          </td>
          <td width="25%" colspan="2" bgcolor="#ffffff" align= 
          "center">
            <font color="#0000ff" size="2"><b><a href="ggad.html">
            <font color="#0000ff" size="2"><b>
            Home</b></font></a></b></font>
          </td>
          <td width="25%" bgcolor="#ffffff" align="right">
            <a href="z69.html"><font color="#0000ff" size="2"><b>
            Next &gt;&gt;&gt;</b></font></a>
          </td>
        </tr>
      </table>
    </div>
    <div class="SECT1">
      <h1 class="SECT1">
        <a name="Z68">Source Tree Checklist</a>
      </h1>
      <p>
        As an initial overview, here are the important steps in
        creating a skeletal Gnome source tree. If you are starting
        a new program, you can simply follow this list and you
        won't forget anything. The rest of this chapter explains
        the checklist in more detail. It might also be helpful to
        download a Gnome package or two to look at as you follow
        the discussion (in particular, the "GnomeHello" source tree
        is intended to illustrate a proper build setup).
      </p>
      <ol type="1">
        <li>
          <p>
            Create a toplevel directory to hold all the components
            of your application, including build files,
            documentation, and translations.&#13;
          </p>
        </li>
        <li>
          <p>
            It's often nice to create a <tt class="FILENAME">
            src</tt> subdirectory of this toplevel directory to
            keep source code separate from everything else.&#13;
          </p>
        </li>
        <li>
          <p>
            In the toplevel directory, create <tt class="FILENAME">
            AUTHORS</tt>, <tt class="FILENAME">NEWS</tt>, <tt
            class="FILENAME">COPYING</tt>, and <tt class=
            "FILENAME">README</tt> files. If desired, also create
            an empty <tt class="FILENAME">ChangeLog</tt>.&#13;
          </p>
        </li>
        <li>
          <p>
            Write a <tt class="FILENAME">configure.in</tt>; the
            main purpose of <tt class="FILENAME">configure.in</tt>
            is to determine which compiler, compiler flags, and
            linker flags to use. <tt class="FILENAME">
            configure.in</tt> can also <span class="STRUCTNAME">
            #define</span> symbols to reflect features of the
            current platform, placing these definitions in the
            automatically-generated file <tt class="FILENAME">
            config.h</tt>.&#13;
          </p>
        </li>
        <li>
          <p>
            Write <tt class="FILENAME">acconfig.h</tt>, which is a
            template for <tt class="FILENAME">config.h.in</tt>.
            This file should <span class="STRUCTNAME">#undef</span>
            each symbol you will potentially <span class=
            "STRUCTNAME">#define</span> in <tt class="FILENAME">
            config.h</tt>. The <tt class="APPLICATION">
            autoheader</tt> program creates <tt class="FILENAME">
            config.h.in</tt> based on <tt class="FILENAME">
            acconfig.h</tt>, and <tt class="APPLICATION">
            autoconf</tt> creates <tt class="FILENAME">
            config.h</tt>. <tt class="APPLICATION">autoheader</tt>
            comes with <tt class="APPLICATION">autoconf</tt>.&#13;
          </p>
        </li>
        <li>
          <p>
            Create an empty file, <tt class="FILENAME">
            stamp.h.in</tt>; this is used by the <span class=
            "SYMBOL">AM_CONFIG_HEADER</span> macro in <tt class= 
            "FILENAME">configure.in</tt>.&#13;
          </p>
        </li>
        <li>
          <p>
            Write a <tt class="FILENAME">Makefile.am</tt> in the
            toplevel directory listing each subdirectory which
            contains source code; in each subdirectory, also write
            a <tt class="FILENAME">Makefile.am</tt>.&#13;
          </p>
        </li>
        <li>
          <p>
            Run the <tt class="APPLICATION">gettextize</tt> program
            that comes with the <tt class="APPLICATION">
            gettext</tt> package. This creates the <tt class= 
            "APPLICATION">intl</tt> and <tt class="APPLICATION">
            po</tt> directories, needed for internationalization
            (<tt class="APPLICATION">gettextize</tt> is documented
            in the <tt class="APPLICATION">gettext</tt> manual).
            The <tt class="FILENAME">intl</tt> contains the GNU <tt
            class="APPLICATION">gettext</tt> source code; if users
            compiling the program do not have <tt class=
            "APPLICATION">gettext</tt>, they can pass the <tt
            class="APPLICATION">--with-included-gettext</tt> option
            to <tt class="FILENAME">configure</tt> to automatically
            compile a static version in the <tt class="FILENAME">
            intl</tt> directory. The <tt class="FILENAME">po</tt>
            directory holds the translation files; <tt class= 
            "APPLICATION">gettextize</tt> will also create a file
            called <tt class="FILENAME">po/Makefile.in.in</tt>,
            used to build the translations.&#13;
          </p>
        </li>
        <li>
          <p>
            Create a file called <tt class="FILENAME">
            po/POTFILES.in</tt> listing source files which should
            be scanned for strings to translate. <tt class=
            "FILENAME">POTFILES.in</tt> can be empty at first.&#13;
          </p>
        </li>
        <li>
          <p>
            Copy <tt class="FILENAME">autogen.sh</tt> and the <tt
            class="FILENAME">macros</tt> directory from another
            Gnome module. You must modify <tt class="FILENAME">
            autogen.sh</tt> to reflect the name of your package.
            Running <tt class="FILENAME">autogen.sh</tt> will
            invoke <tt class="APPLICATION">libtoolize</tt>, <tt
            class="APPLICATION">aclocal</tt>, <tt class=
            "APPLICATION">autoheader</tt>, <tt class="APPLICATION">
            automake</tt>, and <tt class="APPLICATION">
            autoconf</tt>.&#13;
          </p>
        </li>
        <li>
          <p>
            <tt class="FILENAME">autogen.sh</tt> invokes <tt class= 
            "APPLICATION">automake</tt> with the <tt class= 
            "APPLICATION">--add-missing</tt> argument. This will
            add some files, such as <tt class="FILENAME">
            INSTALL</tt> with generic installation instructions.
            You can (and should) edit <tt class="FILENAME">
            INSTALL</tt> to include any specific instructions for
            your application. <tt class="FILENAME">autogen.sh</tt>
            will also create a <tt class="FILENAME">Makefile</tt>
            in each directory.&#13;
          </p>
        </li>
      </ol>
    </div>
    <div class="NAVFOOTER">
      <br>
      <br>
      <table width="100%" border="0" bgcolor="#ffffff" cellpadding= 
      "1" cellspacing="0">
        <tr>
          <td width="25%" bgcolor="#ffffff" align="left">
            <a href="cha-source.html"><font color="#0000ff" size=
            "2"><b>&lt;&lt;&lt; Previous</b></font></a>
          </td>
          <td width="25%" colspan="2" bgcolor="#ffffff" align= 
          "center">
            <font color="#0000ff" size="2"><b><a href="ggad.html">
            <font color="#0000ff" size="2"><b>
            Home</b></font></a></b></font>
          </td>
          <td width="25%" bgcolor="#ffffff" align="right">
            <a href="z69.html"><font color="#0000ff" size="2"><b>
            Next &gt;&gt;&gt;</b></font></a>
          </td>
        </tr>
        <tr>
          <td colspan="2" align="left">
            <font color="#000000" size="2"><b>Creating Your Source
            Tree</b></font>
          </td>
          <td colspan="2" align="right">
            <font color="#000000" size="2"><b><tt class="FILENAME">
            configure.in</tt></b></font>
          </td>
        </tr>
      </table>
    </div>
  </body>
</html>