UMK - Command line builder
Table of contents
1. Definition
2. Command line interface
3. Examples
1. Definition
UMK (U++ MaKe) is a command line utility to build the U++ program, with U++ assembly/package/build method system.
2. Command line interface
Below is a command line interface of UMK:
umk assembly package [build_method] [-[a][b][u][r][s][S][v][m][d][M][M=makefile][l][x][X][Hn]].. [+FLAG[,FLAG]..] [out] [! [runarg]..]
Let's take a closer look at all available options:
assembly is a direct set of package nest directories relative to working directory that represent U++ assembly separated by ','. Alternatively it can be a predefined assembly (in .var file) which is in Win32 in directory where is located umk.exe or in POSIX systems in directories .config/u++/umk or .config/u++/theide or direct path to .var file.
package is the main package (a program to build).
build_method is build method that is to be used to build the resulting executable, specified either as name of build method (which is then searched for in .config/u++/umk or .config/u++/theide directories) or it is a direct path to the .bm file. If not specified, CLANG build method is assumed. Note that in POSIX, umk automatically creates CLANG and GCC build methods if they do not exist.
FLAGs are compilation flags. If flags are not specified, the first main configuration entry in .upp file is used.
out overrides output name, file or directory.
! means the the resulting binary should be also executed after successful build, using optional arguments after ! as its arguments.
All other options are located below:
|
Option
|
Description
|
a
|
Rebuild all.
|
b
|
Use BLITZ.
|
l
|
Silent mode.
|
u
|
Use target directory.
|
m
|
Create a map file.
|
r
|
Release mode (default is debug mode with full debug).
|
d
|
Debug mode without debug symbols.
|
s
|
Use shared libraries.
|
S
|
Use shared libraries and build as shared libraries.
|
v
|
Be verbose.
|
M
|
Create makefile (to file Makefile).
|
M=makefile
|
Create mafile with given name.
|
Hn
|
Number of threads used for building. Default is number of logical cores available.
|
h
|
If present, umk deletes its UppHub folder. Then, when there are any missing packages that can be found in UppHub, they are installed into umk's UppHub folder (by git clone). In other words this option makes sure that latest versions of UppHub packages required to build are downloaded.
|
|
3. Examples
Sample usage of UMK is located below:
umk uppsrc ide GCC -br +GUI,SSE2,SHARED ~/theide
umk uppsrc ide /usr/share/upp/GCC.bm -br +GUI,SSE2,SHARED ~/theide
umk examples Bombs GCC -ab +GUI,SHARED ~/bombs
umk upp/examples,upp/uppsrc Bombs ~/GCC.bm -rv +GUI,SHARED ~/bin
|