123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- '\" t
- .\" Title: yabs
- .\" Author: [see the "Author" section]
- .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
- .\" Date: 02/02/2015
- .\" Manual: Yabs Manual
- .\" Source: Yabs
- .\" Language: English
- .\"
- .TH "YABS" "1" "02/02/2015" "Yabs" "Yabs Manual"
- .\" -----------------------------------------------------------------
- .\" * Define some portability stuff
- .\" -----------------------------------------------------------------
- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- .\" http://bugs.debian.org/507673
- .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- .ie \n(.g .ds Aq \(aq
- .el .ds Aq '
- .\" -----------------------------------------------------------------
- .\" * set default formatting
- .\" -----------------------------------------------------------------
- .\" disable hyphenation
- .nh
- .\" disable justification (adjust text to left margin only)
- .ad l
- .\" -----------------------------------------------------------------
- .\" * MAIN CONTENT STARTS HERE *
- .\" -----------------------------------------------------------------
- .SH "NAME"
- yabs \- Yet another build system
- .SH "SYNOPSIS"
- .sp
- \fByabs\fR [\fIOPTIONS\fR] [\fIFILE\fR]
- .SH "DESCRIPTION"
- .sp
- yabs is a build system that can be used to generate Makefiles
- .SH "OPTIONS"
- .PP
- \fB\-h\fR, \fB\-\-help\fR
- .RS 4
- Print help
- .RE
- .PP
- \fB\-n\fR, \fB\-\-new\fR
- .RS 4
- Create a new build file
- .RE
- .PP
- \fB\-V\fR, \fB\-\-verbose\fR[\fIFILE\fR]
- .RS 4
- Verbosely parse configuration file
- .RE
- .PP
- \fB\-p\fR, \fB\-\-parse=\fR[\fIFILE\fR]
- .RS 4
- Print configuration file
- .RE
- .PP
- \fB\-e\fR, \fB\-\-extract=\fR[\fIFILE\fR]
- .RS 4
- Extract distribution tarball
- .RE
- .PP
- \fB\-m\fR, \fB\-\-make=\fR[\fIFILE\fR]
- .RS 4
- Generate Makefile based on profile
- .RE
- .SH "CONFIGURATION"
- .sp
- Configuration files are written in yaml and can have the extensions yaml, yml, or ybf\&. The configuration must be placed in the root directory of the project\&. Valid configuration files must at least start with "\-\-\-", and multi\-doc files must start with "\-\-\-" and end with "\&..."\&. Valid keys are as follows:
- .PP
- \fBtarget\fR
- .RS 4
- Name of the binary to be produced\&. If none is set then the name of the current directory is used
- .RE
- .PP
- \fBos\fR
- .RS 4
- The operating system for the profile\&. If there is a multi\-doc configuration then the name of the operating system will be appended to the generated Makefile
- .RE
- .PP
- \fBremote\fR
- .RS 4
- Remote system the build will be sent to
- .RE
- .PP
- \fBlang\fR
- .RS 4
- The language the project is written in
- .RE
- .PP
- \fBarch\fR
- .RS 4
- The architecture of the system
- .RE
- .PP
- \fBcc\fR
- .RS 4
- The C compiler to be used
- .RE
- .PP
- \fBcxx\fR
- .RS 4
- The C++ compiler to be used
- .RE
- .PP
- \fBccflags\fR
- .RS 4
- C compiler flags
- .RE
- .PP
- \fBcxxflags\fR
- .RS 4
- C++ compiler flags
- .RE
- .PP
- \fBlflags\fR
- .RS 4
- Linker flags
- .RE
- .PP
- \fBlibs\fR
- .RS 4
- Libraries to link to\&. These must not be prepended with "\-l" as they traditionally are in a Makefile
- .RE
- .PP
- \fBincdir\fR
- .RS 4
- Directories to include\&. Directories must not be prepended with "\-I" as they traditionally are in a Makefile\&.
- .RE
- .PP
- \fBdist\fR
- .RS 4
- The distrubution tarball to be generated
- .RE
- .PP
- \fBbefore\-script\fR
- .RS 4
- List of scripts that will be executed before anything is done with the profile
- .RE
- .PP
- \fBafter\-script\fR
- .RS 4
- List of scripts that will be executed after the profile is read
- .RE
- .SH "EXAMPLE"
- .sp
- .if n \{\
- .RS 4
- .\}
- .nf
- An exmple for a single document project would be:
- \-\-\-
- os: linux
- target: yabs
- cc: gcc
- cxx: g++
- incdir: include
- \&.\&.\&.
- The resulting Makefile generated by this configuration would be a single file
- named "Makefile" as there is only one profile\&.
- An exmple for multi\-document project would be:
- \-\-\-
- os: linux
- target: yabs
- cc: gcc
- cxx: g++
- incdir: include
- \&.\&.\&.
- \-\-\-
- os: freebsd
- target: yabs
- cc: clang
- cxx: clang++
- \&.\&.\&.
- The resulting Makefile generated by this configuration would be two files named
- "Makefile\-linux" and "Makefile\-freebsd" as there are two profiles\&.
- .fi
- .if n \{\
- .RE
- .\}
- .SH "REPORTING BUGS"
- .sp
- Report bugs to the yabs mailing list \fByabs@librelist\&.org\fR\&. Pull requests may also be made at \fBhttps://github\&.com/0X1A/yabs\fR
- .SH "AUTHOR"
- .sp
- Alberto Corona <alberto@0x1a\&.us>
|