BMAKE(1) General Commands Manual BMAKE(1) (NAME) bmake - (SYNOPSIS) bmake [-BeikNnqrSstWwX] [-C directory] [-D variable] [-d flags] [-f makefile] [-I directory] [-J private] [-j max_jobs] [-m directory] [-T file] [-V variable] [-v variable] [variable=value ...] [target ...] (DESCRIPTION) bmake . . -f makefile bmake makefile .MAKE.MAKEFILE_PREFERENCE ( `makefile', `Makefile') . `.depend' mkdep(1). . bmake makefile PMake - A Tutorial ( ). bmake MAKEFLAGS . : -B . -C directory directory makefile . -C : -C / -C etc -C /etc. -D variable variable . -d [-]flags bmake . `-' MAKEFLAGS make . F . . flags : A . a (caching) . C . c . d . e . F[+]filename . . F `+' (append) . `stdout' `stderr' ( `+' ). . `.%d' `%d' pid . f . g1 . g2 . g3 . h (hash table). j . L lint. . l Makefile `@' "quiet" . "loud" . M "meta" . m . n . TMPDIR /tmp TMPDIR . mkstemp(3) makeXXXXXX . : TMPDIR /tmp . p makefile. s (suffix- transformation rules). t (target list). V -V .MAKE.EXPAND_VARIABLES . v . x -x . -e makefile . -f makefile makefile .MAKE.MAKEFILE_PREFERENCE. makefile `-' . makefile `.../' bmake . makefile . -I directory makefile makefile (included). makefile ( -m ) . -i makefile. `-' makefile. -J private . -j (recursive build) make make make . -j max_jobs bmake . max_jobs `C' sysconf(3) . max_jobs .MAKE.JOBS . -B . . . . max_jobs . bmake . -k . -m directory sys.mk makefile include -style. -m . include /usr/share/mk . include include "file"-style ( -I ). include .SYSPATH . -m ( MAKESYSPATH) `.../' bmake . . `.../' -m . bmake sys.mk ( `.../mk/sys.mk' ). -n .MAKE ( ) `+' . -N makefile . -q 0 1 . -r makefile . -S . -k . -s . `@' makefile. -T tracefile -j - tracefile . -t makefile . -V variable variable. . . makefile . ( ) . variable `$' . . .MAKE.EXPAND_VARIABLES true -dV . makefile . -dv . -v variable -V - . -V -v . -W makefile . -w . -X (export) . MAKEFLAGS . . variable=value variable value. -make . -X . POSIX . makefile : (include ) for . (`\') . . (FILE DEPENDENCY SPECIFICATIONS) . " " . . . : : . . bmake . ! . :: : () . . : . : bmake . . `? ' `* ' `[] ' `{}' . `? ' `* ' `[]' . `{}' . . (SHELL COMMANDS) . (tab) . ( .) . `::' . `\' (escape) . `@ ' `+ ' `-' . @ (echo) . + -n . .MAKE . - (compatibility mode) . bmake (jobs mode) -j max_jobs . ( ) . - (meta-characters) (`#=|^(){};&<>*?[]:$`\\n') bmake . `-' ErrCtl . `-' . makefile bmake . "cd" "chdir" - . . : avoid-chdir-side-effects: @echo "Building $@ in $$(pwd)" @(cd ${.CURDIR} && ${MAKE} $@) @echo "Back in $$(pwd)" ensure-one-shell-regardless-of-mode: @echo "Building $@ in $$(pwd)"; \ (cd ${.CURDIR} && ${MAKE} $@); \ echo "Back in $$(pwd)" bmake `.OBJDIR' ..Sh " (VARIABLE ASSIGNMENTS)" make C . `NAME op value' : NAME op value . NAME, op value . (Variable assignment operators) : = . . += . ?= . := . : . . != . . (Expansion of variables) `$$' . ( ) `\$' . ${name[:modifiers]} $(name[:modifiers]) . . . . . (`$'), . . 1. . 2. . 3. . 4. .for . : .for i in 1 2 3 a+= ${i} j= ${i} b+= ${j} .endfor all: @echo ${a} @echo ${b} : 1 2 3 3 3 3 : a `${:U1} ${:U2} ${:U3}' `1 2 3' . j `${:U3}' `3' . b `${j} ${j} ${j}' `${:U3} ${:U3} ${:U3}' `3 3 3' . (Variable classes) ( ) : (Environment variables) bmake. (Global variables) makefile makefile . (Command line variables) . (Local variables) . .MAKE.TARGET_LOCAL_VARIABLES `false' . ( ) . : COMPILER_WRAPPERS= ccache distcc icecc ${OBJS}: .MAKE.META.CMP_FILTER=${COMPILER_WRAPPERS:S,^,N,} `${OBJS}' ( "meta") (compiler wrappers) (out-of-date) . : : += . := () . : .ALLSRC `>' `^'. .ARCHIVE `!'. .IMPSRC / ( " )" `<'. . .MEMBER `%'. .OODATE (out-of- date) `?'. .PREFIX ( .SUFFIXES ) `*' . .TARGET `@'. make .ARCHIVE . (`>', `^', `!', `<', `%', `?', `*', `@') makefile POSIX make . `D' `F', `$(@D)', `:H' `:T' . makefile AT&T System V UNIX POSIX . . : `.TARGET', `.PREFIX', `.ARCHIVE', `.MEMBER'. (Additional built- in variables) bmake : .ALLTARGETS makefile. makefile . .CURDIR bmake . `PWD' . .ERROR_CMD : MAKE_PRINT_VAR_ON_ERROR. .ERROR_CWD : MAKE_PRINT_VAR_ON_ERROR. .ERROR_EXIT : MAKE_PRINT_VAR_ON_ERROR. .ERROR_META_FILE "meta" : MAKE_PRINT_VAR_ON_ERROR. .ERROR_TARGET : MAKE_PRINT_VAR_ON_ERROR. .INCLUDEDFROMDIR makefile (include) . .INCLUDEDFROMFILE makefile (include) . MACHINE : uname(1). MACHINE_ARCH : uname(1). MAKE bmake (argv[0]). .MAKE MAKE . MAKE make . .MAKE.DEPENDFILE makefile ( `.depend') . .MAKE.DIE_QUIETLY `true' . .MAKE.EXPAND_VARIABLES -V . true -V false ( ) . .MAKE.EXPORTED bmake. MAKE_VERSION bmake . NetBSD . . MAKEFILE makefile . .MAKEFLAGS `MAKEFLAGS' bmake . bmake .MAKEFLAGS bmake . .MAKE.GID bmake . . .MAKE.JOB.PREFIX bmake -j --- target --- .MAKE.JOB.PREFIX . .MAKE.JOB.PREFIX . .MAKE.JOB.PREFIX `${.newline}---${.MAKE:T}[${.MAKE.PID}]' ---make[1234] target --- . .MAKE.JOBS -j. .MAKE.JOBS.C -j `C' . .MAKE.LEVEL bmake. bmake 0 make . : .if ${.MAKE.LEVEL} == 0 bmake . .MAKE.LEVEL.ENV bmake . .MAKE.MAKEFILE_PREFERENCE makefile ( `makefile', `Makefile') bmake . .MAKE.MAKEFILES makefile bmake . makefile . .MAKE.META.BAILIWICK "meta", bmake . .OBJDIR . .MAKE.META.CMP_FILTER "meta", . `:' . . .MAKE.META.FILTER "meta", meta . . .MAKE.META.CMP_FILTER cwd (syscall) filemon . .MAKE.META.CMP_FILTER . .MAKE.META.CREATED "meta", meta . .MAKE.META.FILES . .MAKE.META.FILES "meta", meta ( ) . meta . .MAKE.META.IGNORE_FILTER . . .MAKE.META.IGNORE_PATHS . : `/dev /etc /proc /tmp /var/run /var/tmp' .MAKE.META.IGNORE_PATTERNS . . .MAKE.META.PREFIX meta "meta verbose" . : Building ${.TARGET:H:tA}/${.TARGET:T} .MAKE.MODE makefile . bmake . : compat -B, bmake "compat" . meta bmake "meta" meta filemon(4), bmake . . bmake meta . . . makefile . .MAKE.META.CMP_FILTER .NOMETA_CMP, . .OODATE . : `${.OODATE:M}' . `${.OODATE:MNOMETA_CMP}' . bmake filemon(4) . .MAKE.META.IGNORE_FILTER, .MAKE.META.IGNORE_PATHS .MAKE.META.IGNORE_PATTERNS, . curdirOk=bf bmake .meta `.CURDIR' . bf (true) . missing-meta=bf bf (true) .meta . missing-filemon=bf bf (true) filemon . nofilemon filemon(4) . env .meta . verbose "meta", . () . .MAKE.META.PREFIX . ignore-cmd makefile . "meta" . : .NOMETA_CMP. silent=bf bf (true) .meta .SILENT ..It Cm randomize-targets (compat) . . MAKEOBJDIR .OBJDIR. MAKE_OBJDIR_CHECK_WRITABLE true bmake .OBJDIR . MAKE_DEBUG_OBJDIR_CHECK_WRITABLE true bmake .OBJDIR, MAKE_PRINT_VAR_ON_ERROR . MAKEOBJDIRPREFIX .OBJDIR. . .MAKE.OS uname(1). . .MAKEOVERRIDES `MAKEFLAGS'. . `.MAKEOVERRIDES' makefile . `.MAKEOVERRIDES'. makefile . `MAKEFLAGS' `.MAKEOVERRIDES' . .MAKE.PATH_FILEMON bmake filemon(4) . makefile . .MAKE.PID (PID) bmake. . .MAKE.PPID (PPID) bmake. . MAKE_PRINT_VAR_ON_ERROR bmake `.ERROR_TARGET' `.ERROR_EXIT' `.ERROR_CMD' "meta" `.ERROR_CWD' getcwd(3), `.ERROR_META_FILE' meta ( ) . `.CURDIR' `MAKE_PRINT_VAR_ON_ERROR'. . .MAKE.SAVE_DOLLARS true `$$' `:=' . false . make true . false `$$' `$' . .MAKE.TARGET_LOCAL_VARIABLES `false', . .MAKE.UID bmake. . . .newline . . :@ . bmake : ${MAKE_PRINT_VAR_ON_ERROR:@v@$v='${$v}'${.newline}@} .OBJDIR . chdir(2) : 1. ${MAKEOBJDIRPREFIX}${.CURDIR} ( `MAKEOBJDIRPREFIX' .) 2. ${MAKEOBJDIR} ( `MAKEOBJDIR' .) 3. ${.CURDIR}/obj.${MACHINE} 4. ${.CURDIR}/obj 5. /usr/obj/${.CURDIR} 6. ${.CURDIR} ${.CURDIR:S,^/usr/src,/var/obj,} . `MAKEOBJDIR'. `.OBJDIR' makefile `.OBJDIR'. . bmake `.OBJDIR' `PWD' . `.OBJDIR' bmake . `MAKE_OBJDIR_CHECK_WRITABLE' "no". . .PARSEDIR makefile . .PARSEFILE makefile . `.PARSEDIR' makefile . `:='. . .PATH bmake . `.PATH' . %POSIX POSIX `.POSIX' . . bmake `.CURDIR' getcwd(3) . `PWD' bmake `.CURDIR' `PWD' . `MAKEOBJDIRPREFIX' `MAKEOBJDIR' . `PWD' bmake `.OBJDIR' . .SHELL . . .SUFFIXES . . .SYSPATH bmake makefile (system include path) . `.SYSPATH' . .TARGETS . VPATH (":") bmake . make `.PATH' . (Variable modifiers) : ${variable[:modifier[:...]]} . (backslash) `\' . : modifier_variable = modifier[:...] ${variable:${modifier_variable}[:...]} modifier_variable . modifier_variable (`$') . . . . : :E . :H (dirname) . :Mpattern pattern . (`*', `?', `[]') . . `${.ALLSRC:M*{Makefile*,.mk}}' `*Makefile*' `*.mk' .ALLSRC . (`\') . `${VAR:M*}' . :Npattern `:M' pattern . :O . :On . `k', `M' `G' `k', `M', `G' . . :Or . :Orn . :Ox ( ). `:=' . LIST= uno due tre quattro RANDOM_LIST= ${LIST:Ox} STATIC_RANDOM_LIST:= ${LIST:Ox} all: @echo "${RANDOM_LIST}" @echo "${RANDOM_LIST}" @echo "${STATIC_RANDOM_LIST}" @echo "${STATIC_RANDOM_LIST}" : quattro due tre uno tre due quattro uno due uno quattro tre due uno quattro tre :Q . :q `$' bmake . `:S/\$/&&/g:Q'. :R . :range[=count] count . :gmtime[=timestamp] strftime(3) gmtime(3) . : `%s' `:localtime' . timestamp 0 . :hash . :localtime[=timestamp] strftime(3), localtime(3), . timestamp . :mtime[=timestamp] stat(2) `st_mtime' . stat(2) timestamp . timestamp `error' stat(2) . :tA realpath(3) . . :tl . :tsc . c . c . ( ) . :tt . :tu . :tW ( ). : `:[*]'. :tw . : `:[@]'. :S/[^]old_string[$]/new_string/[1gW] old_string new_string . old_string (caret) (`^'), old_string . old_string (`$'), . new_string, (`&') old_string . old_string new_string . (Further options): 1 . g . W . . (`\') . :C/pattern/replacement/[1gW] pattern (: regex(3)) replacement ed(1)-style . pattern replacement . (Further options): 1 . g . W . . (`\') . :T (basename) . :u ( uniq(1)). :?true_string:false_string ( ) .if, true true_string false_string . :? -- . ${NUMBERS:M42:?match:no} defined(NUMBERS) . "42" : ${"${NUMBERS:M42}" != "":?match:no}. :old_string=new_string AT&T System V UNIX . `:' old_string new_string . old_string `%' old_string new_string . `%' old_string new_string `%' new_string ( ) `%' . old_string new_string . . :@varname@string@ make (OSF Development Environment ODE) . .for . varname string . ODE varname : ${LINKS:@.LINK.@${LN} ${TARGET} ${.LINK.}@} : ${MAKE_PRINT_VAR_ON_ERROR:@v@$v='${$v}'${.newline}@} :_[=var] `$_' var . : M_cmpv.units = 1 1000 1000000 M_cmpv = S,., ,g:_:range:@i@+ $${_:[-$$i]} \ \* $${M_cmpv.units:[$$i]}@:S,^,expr 0 ,1:sh .if ${VERSION:${M_cmpv}} < ${3.1.12:L:${M_cmpv}} `$_' `:S' `:range' . :Unewval newval ( ) . . ODE make . CFLAGS : ${_${.TARGET:T}_CFLAGS:U${DEF_CFLAGS}} : ${VAR:D:Unewval} :Dnewval newval ( ) . :L . :P . . () . :!cmd! cmd . :sh . :sh1 . . ::=str str . . . `::' AT&T System V UNIX `:=' `::=' . ::?=str ::= . ::+=str str . ::!=cmd cmd . :[range] . . `:[]' ( ) ( -1 ). range : index . start..end start end . `:[2..-1]' . start end . `:[-1..1]' . `:Or' `:O:[-1..1]' . * ( ) . $* Bourne . 0 `:[*]' . @ . $@ Bourne . # . (DIRECTIVES) bmake makefile for . (`.') include if. (File inclusion) .include .include "file" . . makefile makefile . makefile -I makefile . make `include file ...' ( ) . include .-include .sinclude / . include .dinclude / .MAKE.DEPENDFILE . (Exporting variables) : .export variable ... . make export variable=value ( ) . .MAKE.EXPORTED . .export-all ( `.' ) . -X . .export-env variable ... `.export ' .MAKE.EXPORTED . bmake . .export-literal variable ... `.export-env ' . .unexport variable ... `.export'. variable .MAKE.EXPORTED . .MAKE.EXPORTED . .unexport-env . . .MAKE.LEVEL 0 . . : .if ${.MAKE.LEVEL} == 0 PATH := ${PATH} .unexport-env .export PATH .endif `PATH' . `.MAKE.LEVEL' . (Messages) : .info message makefile . .warning message `warning:' makefile . .error message makefile bmake . (Conditionals) : .if [!]expression [operator expression ...] . .ifdef [!]variable [operator variable ...] . .ifndef [!]variable [operator variable ...] . .ifmake [!]target [operator target ...] . .ifnmake [!]target [operator target ...] . .else . .elif [!]expression [operator expression ...] `.else' `.if'. .elifdef [!]variable [operator variable ...] `.else' `.ifdef'. .elifndef [!]variable [operator variable ...] `.else' `.ifndef'. .elifmake [!]target [operator target ...] `.else' `.ifmake'. .elifnmake [!]target [operator target ...] `.else' `.ifnmake'. .endif . operator : || (OR) . && (AND) `||'. bmake . . `!' . `&&' . expression : defined(varname) varname true . make(target) bmake ( .MAIN) true . empty(varname[:modifiers]) . exists(pathname) . ( .PATH) . target(target) . commands(target) . Expression . . . 0x . `==' `!=' . `<', `<=', `>' `>=' . ( ) . bmake ( ) "make" "defined" . `.ifdef', `.ifndef' `.if' "defined" . `.ifmake' `.ifnmake' "make" . makefile . `.elif', `.else' `.endif' . For (For loops) for . for : .for variable [variable ...] in expression .endfor expression . variable, variables make-lines for . . `.break' .for . (Other directives) .undef variable ... . . (COMMENTS) (`#') (unescaped) . () (SPECIAL SOURCES (ATTRIBUTES)) .EXEC . .IGNORE (`-') . .MADE () . .MAKE -n -t . bmake . .META (meta file) .PHONY, .MAKE, .SPECIAL . .MAKE . "meta" . .NOMETA . .PHONY, .MAKE, .SPECIAL . .NOMETA_CMP . . . .OODATE : skip-compare-for-some: @echo this is compared @echo this is not ${.OODATE:M.NOMETA_CMP} @echo this is also compared :M . .NOPATH .PATH . .NOTMAIN bmake . . .OPTIONAL bmake . .PHONY -t . .PHONY . .PRECIOUS bmake . . .RECURSIVE .MAKE. .SILENT (`@') . .USE bmake . ( .USE) . .USE . .USEBEFORE .USE, .USEBEFORE . .WAIT .WAIT . . : x: a .WAIT b echo x a: echo a b: b1 echo b b1: echo b1 `a', `b1', `b', `x'. .WAIT (parallel makes) . (SPECIAL TARGETS) . .BEGIN . .DEFAULT .USE ( ) bmake . . .IMPSRC .DEFAULT . .DELETE_ON_ERROR makefile make . ( . .) . .END . .ERROR . MAKE_PRINT_VAR_ON_ERROR . .IGNORE .IGNORE . -i . .INTERRUPT bmake . .MAIN bmake . .MAKEFLAGS bmake makefile . -f . .NOPATH .NOPATH . .NOTPARALLEL . .NO_PARALLEL .NOTPARALLEL pmake. .NOREADONLY . .OBJDIR `.OBJDIR' . bmake `.OBJDIR' . .ORDER . . `a' : .ORDER: b a b: a .PATH . . .DOTLAST . .PATH.suffix .PATH . .SUFFIXES . .PHONY .PHONY . .POSIX makefile %POSIX `1003.2' makefile `' POSIX (include ). bmake -r `posix.mk' . POSIX AT&T System V UNIX . .PRECIOUS .PRECIOUS . .PRECIOUS . .READONLY . .SHELL bmake . field=value . name sh ksh csh . path . hasErrCtl . check . ignore . echo (echo) . quiet . filter quiet . quiet . errFlag . echoFlag . newline . : .SHELL: name=ksh path=/bin/ksh hasErrCtl=true \ check="set -e" ignore="set +e" \ echo="set -v" quiet="set +v" filter="set +v" \ echoFlag=v errFlag=e newline="'\n'" .SILENT .SILENT . .SILENT . .STALE .ALLSRC . .SUFFIXES bmake . . . : .SUFFIXES: .c .o .c.o: cc -o ${.TARGET} -c ${.IMPSRC} .SYSPATH bmake (makefiles) . . (ENVIRONMENT) bmake : MACHINE, MACHINE_ARCH, MAKE, MAKEFLAGS, MAKEOBJDIR, MAKEOBJDIRPREFIX, MAKESYSPATH, MAKE_STACK_TRACE, PWD TMPDIR. MAKEOBJDIRPREFIX MAKEOBJDIR bmake makefile `.OBJDIR' . makefile `.OBJDIR' `.OBJDIR' . MAKE_STACK_TRACE "yes" . (FILES) .depend makefile makefile Makefile makefile sys.mk /usr/share/mk (DIAGNOSTICS) Invalid internal option "-J" in "directory" -J bmake make (sub-make) . MAKEFLAGS . sub-make .MAKE "make" "${MAKE}", "${.MAKE}", "$(MAKE)", "$(.MAKE)" . make (compat mode) . sub- make MAKE_STACK_TRACE "yes" . sub-make (dry-run) ( -n ) .MAKE . sub-make . sub-make dry-run "${:D make}" . . sub-make compat -B . sub-make -v -V . sub-make make MAKEFLAGS (unset ). (COMPATIBILITY) make make . (Older versions) bmake: .for NetBSD 5.0 . .if . make NetBSD 4.0 .ORDER .WAIT . . make (Other make dialects) make ( GNU make SVR4 make POSIX make ) bmake . : o .WAIT .ORDER . ( GNU make .) o for (include). ( GNU make .) o . o .PHONY, .PRECIOUS, .SUFFIXES. o `:old=new' (globbing) `%' . o $> make . +=, ?=, !=. .PATH VPATH GNU make SVR4 make ( ) . $@ $< $(MAKE). ( ) . (SEE ALSO) mkdep(1) (HISTORY) bmake make(1) NetBSD . autoconf . make Version 7 AT&T UNIX . make pmake Adam de Boor Sprite . make "customs". . / FRC (FoRCe rebuilding) ( / ... FRC ). (BUGS) bmake . . bmake {} () . . (jobs) bmake () . bmake . `*** Error code 6' . Linux 6.12.107+deb13-amd64 July 3, 2026 Linux 6.12.107+deb13-amd64