This file is indexed.

/usr/share/GNUstep/Documentation/Developer/Gui/ProgrammingManual/AppKit/applicationmakefiles.html is in gnustep-gui-doc 0.25.0-4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- (C) 2005-2006 Christopher Armstrong.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2, as published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

This documentation is provided on an "AS IS" BASIS, WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND USEFULNESS
OF THE DOCUMENTATION IS WITH YOU (THE LICENSEE). IN NO EVENT WILL THE COPYRIGHT
HOLDERS BE LIABLE FOR DAMAGES, INCLUDING ANY DIRECT, INDIRECT,
SPECIAL, GENERAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF
THE USE OR INABILITY TO USE THIS DOCUMENTATION (INCLUDING BUT NOT
LIMITED TO LOSS OF DATA, USE, OR PROFITS; PROCUREMENT OF SUBSTITUTE
GOODS AND SERVICES; OR BUSINESS INTERUPTION) HOWEVER CAUSED, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Using the GNUstep AppKit 0.1: applicationmakefiles</title>

<meta name="description" content="Using the GNUstep AppKit 0.1: applicationmakefiles">
<meta name="keywords" content="Using the GNUstep AppKit 0.1: applicationmakefiles">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="conceptindex.html#conceptindex" rel="index" title="conceptindex">
<link href="index.html#Top" rel="up" title="Top">
<link href="interfacefiles.html#interfacefiles" rel="next" title="interfacefiles">
<link href="gnustepapplications.html#gnustepapplications" rel="prev" title="gnustepapplications">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en">
<a name="applicationmakefiles"></a>
<div class="header">
<p>
Next: <a href="interfacefiles.html#interfacefiles" accesskey="n" rel="next">interfacefiles</a>, Previous: <a href="gnustepapplications.html#gnustepapplications" accesskey="p" rel="prev">gnustepapplications</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="conceptindex.html#conceptindex" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Application-Makefiles-1"></a>
<h2 class="chapter">4 Application Makefiles</h2>
<a name="Application-Makefiles"></a><a name="index-makefiles-1"></a>

<p>Application makefiles are very similiar to those used to build Tools and Objective-C programmes, but allow extra specifications to build application wrappers and include their resource files. We assume you are already familiar with the GNUstep Makefile system.
</p>
<p>Below is a generic, but complete application makefile, followed by an explanation of the various parameters.
</p>
<div class="example">
<pre class="example">include $(GNUSTEP_MAKEFILES)/common.make

APP_NAME = ExampleApplication
PACKAGE_NAME = ExampleApplication
VERSION = 1.0

ExampleApplication_OBJC_FILES = main.m AppController.m \
  ExampleClass.m

ExampleApplication_C_FILES = regexp.c fun.c

ExampleApplication_OBJC_LIBS = -lLibNumberOne -lPDFKit -lFunKit
ExampleApplication_RESOURCE_FILES = \
  ExampleApplication.gorm \
  Info-gnustep.plist

-include GNUmakefile.preamble
include $(GNUSTEP_MAKEFILES)/application.make
-include GNUmakefile.postamble

</pre></div>

<p><samp>common.make</samp> and <samp>application.make</samp> are necessary to build an application, and need to be at the beginning and end respectively to the Makefile to operate properly. The <samp>GNUmakefile.preamble</samp> and <samp>GNUmakefile.postamble</samp> are optional, and permit you to define extra rules for building your application. You can include those lines without those files containing anything. Templates for those files also exist with the source code for gnustep-gui, which can simply be copied into your project and modified accordingly.
</p>
<p>The table below describes the makefile variables that you can set to control the output of the make process. Note that <var>appname</var> refers to the application name that you set with <code>APP_NAME</code>. It is case sensistive and so are file names. Also, most of the variables listed below are optional if you wish to get a program to compile, but it is recommend you make use of them where appropriate. Where variables ask for flags and compiler options, they should be in the format that <code>gcc</code> expects, as it is the only compiler currently used with GNUstep. Many variables also take more than one parameter. They are usually separated by a space, and line breaks with a backslash. Please refer to the <cite>GNUstep Makefile Manual</cite> for more details.
</p>
<a name="index-makefiles_002c-components"></a>
<dl compact="compact">
<dt><code>APP_NAME</code></dt>
<dd><p>[Required] This is the name of your application, and will be used to generate the name of your application wrapper. 
</p>
</dd>
<dt><code>PACKAGE_NAME</code></dt>
<dd><p>This is used to generate a rpm or deb package for distribution of your application. See the <cite>GNUstep Makefile Manual</cite> for more details.
</p>
</dd>
<dt><code>VERSION</code></dt>
<dd><p>A version number for your application.
</p>
</dd>
<dt><code><var>appname</var>_OBJC_FILES</code></dt>
<dd><p>[Required] Replacing <var>appname</var> with the name of your application, you list the Objective-C files (.m), separated by a space. As shown above, you can split it across one or more lines by placing a slash at the end of the line to indicate a split.
</p>
</dd>
<dt><code><var>appname</var>_APPLICATION_ICON</code></dt>
<dd><p>[Optional] You can place the name of the image file that will be used as your application icon here. 
</p>
</dd>
<dt><code><var>appname</var>_MAIN_MODEL_FILE</code></dt>
<dd><p>[Recommended] Put the name of your interface file (<samp>.gorm</samp>) here. It will then be placed in the property list of your application.
</p>
</dd>
<dt><code><var>appname</var>_PRINCIPAL_CLASS</code></dt>
<dd><p>[Optional] If you subclass <code>NSApplication</code> with your own application class, you should place it&rsquo;s name here. By default, GNUstep uses <code>NSApplication</code> as the application class.
</p>
</dd>
<dt><code><var>appname</var>_C_FILES</code></dt>
<dd><p>[Optional] This is where you list the C source code files (.c) to be compiled into your programme. It takes the same form as <code><var>appname</var>_OBJC_FILES</code>.
</p>
</dd>
<dt><code><var>appname</var>_CC_FILES</code></dt>
<dd><p>[Optional] This is where you list your C++ files (*.cpp, *.cc) to be compiled into your programme. It takes the same form as <code><var>appname</var>_OBJC_FILES</code>.
</p>
</dd>
<dt><code><var>appname</var>_OBJCC_FILES</code></dt>
<dd><p>[Optional] This is where you list your Objective-C++ files (*.mm) to be compiled into your programme. It takes the same form as the <code><var>appname</var>_OBJC_FILES</code>.<a name="DOCF3" href="#FOOT3"><sup>3</sup></a>
</p>
</dd>
<dt><code><var>appname</var>_RESOURCE_FILES</code></dt>
<dd><p>[Recommended] Here you list the <em>resource files</em> that are to be included with your application, including your application property list, interface file(s) and other images, data, etc. You can also list directories here, which should be added recursively (e.g. <samp>.gorm</samp> files are actually a directory containing three files, used to describe your interface).
</p>
</dd>
<dt><code><var>appname</var>_RESOURCE_DIRS</code></dt>
<dd><p>[Optional] Here you can list directories that will be copied into your application wrapper as resources.
</p>
</dd>
<dt><code><var>appname</var>_OBJC_LIBS</code></dt>
<dd><p>Here you list the names of the libraries you need your application to link against. Each one is prefixed by &rsquo;-l&rsquo; e.g. <code>-lMyLib</code>, separated by a space. You do not need to list the gnustep-gui, gnustep-base and Objective-C runtime, as these are included for you.
</p>
</dd>
<dt><code><var>appname</var>_C_FLAGS</code></dt>
<dt><code><var>appname</var>_CC_FLAGS</code></dt>
<dt><code><var>appname</var>_OBJC_FLAGS</code></dt>
<dt><code><var>appname</var>_OBJCC_FLAGS</code></dt>
<dd><p>Here you specify the flags to be passed to the compiler when processing this file type. These included warning flags and macro overrides.
</p>
</dd>
</dl>


<a name="Interface-Files"></a><div class="footnote">
<hr>
<h4 class="footnotes-heading">Footnotes</h4>

<h3><a name="FOOT3" href="#DOCF3">(3)</a></h3>
<p>You will need gcc 4.1 or higher to compile Objective-C++ programmes. This feature of the gcc compiler is quite new and has not been well tested.</p>
</div>
<hr>
<div class="header">
<p>
Next: <a href="interfacefiles.html#interfacefiles" accesskey="n" rel="next">interfacefiles</a>, Previous: <a href="gnustepapplications.html#gnustepapplications" accesskey="p" rel="prev">gnustepapplications</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="conceptindex.html#conceptindex" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>