posaune
[projects.git] / doc / mbuild.8
1 .\" Manpage for mbuild.
2 .\" Contact mail@wagnertech.de to correct errors or typos.
3 .TH mbuild 8 "Jul 2018" GNU "WagnerTech Utilities"
4 .SH NAME
5 mbuild \- build system of WagnerTech UG
6 .SH SYNOPSIS
7 .B mbuild
8 .SH DESCRIPTION
9 .PP
10 mbuild provides a simple build system based on make, git, subversion. The build process
11 consists of 3 phases: configuration - compile - pack
12 .TP
13 configuration
14 is done by the
15 .B mconfigure
16 script. The configuration step has the following tasks:
17
18 Determination of version and build number. The version number can be set in a 
19 .B PAKET.changelog
20 file, can be set by the -v option of
21 .B mconfigure
22 or be set by the project itself in the
23 .B PAKET.prepare
24 script. The build number is always taken from the CM system: With SVN it is the global version number, with
25 GIT the build number is taken from the tag. On build a tag in the form project_version-build is expected. If not
26 present a tag in the form v_version-build is searched. Verion may be 0.0 if set elsewhere.
27
28 If a
29 .B PAKET.prepare
30 file is present in the debian directory, it is called.
31
32 If a
33 .B PAKET.build
34 file is present in the debian directory, it is called with a -prepare parameter (deprecated).
35 The current tree is rsync_ed to ~/build.
36
37 If a
38 .B PAKET.prebuild
39 file is present in the debian directory, it is called in the ~/build directory.
40
41 .TP
42 compile
43 To perform the compile step a
44 .B PAKET.build
45 script or a
46 .B PAKET.cmake
47 file is needed in the 
48 .B debian 
49 directory.
50 .TP
51 pack
52 To perform the pack step a
53 .B PAKET.cp
54 script and a
55 .B PAKET.control
56 file are needed in the debian directory. If pre/post installation scripts
57 are needed, these files must be also placed in the
58 .B debian 
59 directory.
60
61 A standard copyright file is included. An user defined file can be used by copying it to debian/copyright
62 in the PAKET.prepare script.
63
64 If files are present to be placed unter /etc a conffiles is creates to avoid changes made by the administrator.
65
66 .SH FILES
67 .TP
68 PAKET.changelog
69 Example:
70 .br
71 projects (0.2-%BUILD%) unstable; urgency=medium
72   * Build in svn-Umgebung
73  -- Michael Wagner <michael@wagnertech.de>  Fr 10. Aug 22:54:48 CEST 2018
74 .TP
75 PAKET.prepare
76 Any executable script file executed in configure step
77 .TP
78 PAKET.prebuild
79 Any executable script file executed in configure step in the ../build directory
80 .TP
81 PAKET.build
82 Any executable script file executing the build in the ../build directory
83 .TP
84 PAKET.cmake
85 cmake file (CMakeLists.txt) for building C/C++ code. If a cross compile option is set in the mconfigure
86 script, according definitions are included.
87 .TP
88 PAKET.cp
89 An executable script file copying the artefacts to target paths preposed by $1:
90 .br
91 cp ../build/my_artefact $1/usr/bin/
92 .TP
93 PAKET.preinst PAKET.postint PAKET.prerm PAKET.postrm
94 Optional pre/post installation scripts
95 .TP
96 PAKET.control
97 Debian control file
98 .PP
99 These files are expected in a
100 .B debian
101 directory, placed below the projects main directory.
102 .SH SEE ALSO
103 make(1), mconfigure(1)
104 .SH BUGS
105 No known bugs.
106 .SH AUTHOR
107 Michael Wagner (michael@wagnertech.de)
108