1
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Build system</title><link rel="stylesheet" href="geany.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.71.0"><link rel="start" href="index.html" title="Geany 0.10"><link rel="up" href="ch03.html" title="Chapter 3. Usage"><link rel="prev" href="ch03s06.html" title="Preferences"><link rel="next" href="ch03s08.html" title="Printing support"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Build system</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s06.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Usage</th><td width="20%" align="right"> <a accesskey="n" href="ch03s08.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="build_system"></a>Build system</h2></div></div></div><p>
1
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Build system</title><link rel="stylesheet" href="geany.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.71.0"><link rel="start" href="index.html" title="Geany 0.10.2"><link rel="up" href="ch03.html" title="Chapter 3. Usage"><link rel="prev" href="ch03s06.html" title="Preferences"><link rel="next" href="ch03s08.html" title="Printing support"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Build system</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s06.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Usage</th><td width="20%" align="right"> <a accesskey="n" href="ch03s08.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="build_system"></a>Build system</h2></div></div></div><p>
2
2
<span class="application">Geany</span> has an integrated build system.
3
3
Firstly this means that the current source file will be saved before
4
4
it is processed. This is for convenience so that you don't need to keep saving
15
15
Depending on the current file's filetype, the Build menu will contain the following
17
17
</p><div class="itemizedlist"><ul type="disc"><li><p>Compile</p></li><li><p>Build</p></li><li><p>Make all</p></li><li><p>Make custom target</p></li><li><p>Make object</p></li><li><p>Execute</p></li><li><p>Set Includes and Arguments</p></li></ul></div><p>
18
</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2795368"></a>Compile</h3></div></div></div><p>
18
</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2795984"></a>Compile</h3></div></div></div><p>
19
19
The Compile command has different uses for different kinds of files.
21
21
For compilable languages such as C and C++, the Compile command is setup
25
25
Interpreted languages such as Perl, Python, Ruby will
26
26
compile to bytecode if the language supports it, or will run a syntax check,
27
27
or failing that will run the file in its language interpreter.
28
</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2795393"></a>Build</h3></div></div></div><p>
28
</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2796009"></a>Build</h3></div></div></div><p>
29
29
For compilable languages such as C and C++, the Build command will link the
30
30
current source file's equivalent object file into an executable. If the object
31
31
file does not exist, the source will be compiled and linked in one step,
32
32
producing just the executable binary.
34
34
Interpreted languages do not use the Build command.
35
</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2795412"></a>Make all</h3></div></div></div><p>
35
</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2796028"></a>Make all</h3></div></div></div><p>
36
36
This effectively runs "make all" in the same directory as the current file.
37
37
</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
38
38
For each of the Make commands, The Make tool path must be correctly set
39
39
in the Tools tab of the Preferences dialog.
41
</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2795431"></a>Make custom target</h3></div></div></div><p>
41
</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2796047"></a>Make custom target</h3></div></div></div><p>
42
42
This is similar to running 'Make all' but you will be prompted
43
43
for the make target name to be passed to the Make tool. For example,
44
44
typing 'clean' in the dialog prompt will run "make clean".
45
</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2795444"></a>Make object</h3></div></div></div><p>
45
</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2796060"></a>Make object</h3></div></div></div><p>
46
46
Make object will run "make current_file.o" in the same directory as the current
47
47
file, using its prefix for 'current_file'. It is useful for compiling just the
48
48
current file without building the whole project.
49
</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2795458"></a>Execute</h3></div></div></div><p>
49
</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2796074"></a>Execute</h3></div></div></div><p>
50
50
Execute will run the corresponding executable file, shell script or interpreted
51
51
script in a terminal window. Note that the Terminal tool path must be correctly
52
52
set in the Tools tab of the Preferences dialog - you can use any terminal
56
56
After your program or script has finished executing, you will be prompted to
57
57
press the return key. This allows you to review any text output from the program
58
58
before the terminal window is closed.
59
</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2795481"></a>Stopping running processes</h3></div></div></div><p>
59
</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2796097"></a>Stopping running processes</h3></div></div></div><p>
60
60
If you started a build action (Compile, Build or Run) the Run button in the
61
61
toolbar becomes a stop button and you can stop the curent action. This works
62
62
by sending a signal to the process (and its child process(es)) to stop the
68
68
processes and these child processes creates again child process. There might be
69
69
some other programs which cannot be stopped correctly, e.g. "Terminal" (the
70
70
terminal program of Xfce). Xterm is known to work properly.
71
</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2745299"></a>Set Includes and Arguments</h3></div></div></div><p>
71
</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2745909"></a>Set Includes and Arguments</h3></div></div></div><p>
72
72
By default the Compile and Build commands invoke the compiler and linker with
73
73
only the basic arguments needed by all programs.
74
74
Using Set Includes and Arguments you can add any include
85
85
If you need complex settings for your build system, or several different
86
86
settings, then writing a Makefile and using the Make commands is recommended.
87
</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2745340"></a>Indicators</h3></div></div></div><p>
87
</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2745950"></a>Indicators</h3></div></div></div><p>
88
88
Indicators are red squiggly underlines which are used to highlight errors which
89
89
occured while compiling the current file. So you can easily see where your code
90
90
failed to compile. To remove the indicators, just click on
91
91
"Remove all indicators" in the document file menu.
93
93
If you do not like this feature, you can disable it in the preferences dialog.
94
</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2745360"></a>File type configuration settings</h3></div></div></div><p>
94
</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2745969"></a>File type configuration settings</h3></div></div></div><p>
95
95
You can set the commands to run for compiling, building or executing
96
96
by opening the relevant <code class="filename">filetypes.*</code> configuration file,
97
97
and checking the [build_settings] section. See <a href="ch04.html#filetypes" title="Filetype definition files">the section called “Filetype definition files”</a> for more