|
|
@ -0,0 +1,40 @@ |
|
|
|
public var NAME: 'out' |
|
|
|
|
|
|
|
-- programs |
|
|
|
var CC: 'gcc' |
|
|
|
var LD: 'gcc' |
|
|
|
var RM: 'rm', '-f', '--' |
|
|
|
|
|
|
|
-- libs |
|
|
|
var LIBS: {} |
|
|
|
|
|
|
|
-- flags |
|
|
|
var CFLAGS: '-Wall', '-Wextra', '-Werror', (LIBS[1] and (_.pkgconfig.cflags LIBS) or {}) |
|
|
|
var LDFLAGS: LIBS[1] and (_.pkgconfig.libs LIBS) or {} |
|
|
|
|
|
|
|
-- files |
|
|
|
var C_SOURCES: _.wildcard 'src/**.c' |
|
|
|
var C_OBJECTS: _.patsubst C_SOURCES, 'src/%.c', 'build/%.o' |
|
|
|
var BINARY: NAME |
|
|
|
|
|
|
|
with public default target 'all' |
|
|
|
\depends BINARY |
|
|
|
|
|
|
|
with public target 'clean' |
|
|
|
\fn => _.cmd RM, C_OBJECTS |
|
|
|
|
|
|
|
with public target 'deepclean' |
|
|
|
\after 'clean' |
|
|
|
\fn => _.cmd RM, BINARY |
|
|
|
|
|
|
|
with target BINARY |
|
|
|
\depends C_OBJECTS |
|
|
|
\produces BINARY |
|
|
|
\fn => _.cmd LD, '-o', @outfile, @infiles, LDFLAGS |
|
|
|
|
|
|
|
with target C_OBJECTS, pattern: 'build/%.o' |
|
|
|
\mkdirs! |
|
|
|
\depends 'src/%.c' |
|
|
|
\depends => _.cdeps[CC] @infile, CFLAGS |
|
|
|
\produces 'build/%.o' |
|
|
|
\fn => _.cmd CC, CFLAGS, '-c', @infile, '-o', @outfile |