mirror of
https://github.com/justinian/jsix.git
synced 2025-12-09 16:04:32 -08:00
Bonnibel will now build dynamic libraries when they're dependencies for non-statically linked modules. It will also copy those shared libraries into the initrd image for programs being copied into the image.
92 lines
2.4 KiB
Plaintext
92 lines
2.4 KiB
Plaintext
rule compile.c
|
|
command = $cc -MMD -MF $out.d $cflags $ccflags -o $out -c $in
|
|
description = Compiling [$target]:$name
|
|
depfile = $out.d
|
|
deps = gcc
|
|
|
|
rule dump_c_defs
|
|
command = echo | $cc $ccflags $cflags -dM -E - > $out
|
|
description = Dumping C defines for $target
|
|
|
|
rule dump_c_run
|
|
command = echo '#!/bin/bash' > $out; echo '$cc $ccflags $cflags $$*' >> $
|
|
$out; chmod a+x $out
|
|
description = Dumping C arguments for $target
|
|
|
|
rule compile.cpp
|
|
command = $cxx -MMD -MF $out.d $cxxflags $ccflags -o $out -c $in
|
|
description = Compiling [$target]:$name
|
|
depfile = $out.d
|
|
deps = gcc
|
|
|
|
rule dump_cpp_defs
|
|
command = echo | $cxx -x c++ $ccflags $cxxflags -dM -E - > $out
|
|
description = Dumping C++ defines for $target
|
|
|
|
rule dump_cpp_run
|
|
command = echo '#!/bin/bash' > $out; echo '$cxx $ccflags $cxxflags $$*' $
|
|
>> $out; chmod a+x $out
|
|
description = Dumping C++ arguments for $target
|
|
|
|
rule compile.s
|
|
command = $nasm -o $out -felf64 -MD $out.d $asflags $in
|
|
description = Assembling [$target]:$name
|
|
depfile = $out.d
|
|
deps = gcc
|
|
|
|
rule parse.cog
|
|
command = cog -o $out -d -D target=$target $cogflags $in
|
|
description = Parsing [$target]:$name
|
|
|
|
rule exe
|
|
command = $ld $ldflags -o $out $in $libs
|
|
description = Linking exe [$target]:$name
|
|
|
|
rule driver
|
|
command = $ld $ldflags -o $out $in $libs
|
|
description = Linking driver [$target]:$name
|
|
|
|
rule lib
|
|
command = $ld -shared $ldflags -o $out $in $libs
|
|
description = Linking [$target]:$name
|
|
|
|
rule lib_static
|
|
command = $ar qcs $out $in
|
|
description = Archiving [$target]:$name
|
|
|
|
rule cp
|
|
command = cp $in $out
|
|
description = Copying [$target]:$name
|
|
|
|
rule dump
|
|
command = objdump -DSC -M intel $in > $out
|
|
description = Dumping decompiled $name
|
|
|
|
rule makest
|
|
description = Making symbol table
|
|
command = nm -n -S --demangle $in | ${source_root}/scripts/build_symbol_table.py $out
|
|
|
|
rule makeinitrd
|
|
description = Creating $name
|
|
command = ${source_root}/scripts/mkj6romfs.py -c $format $in $out
|
|
|
|
rule makefat
|
|
description = Creating $name
|
|
command = $
|
|
cp $in $out; $
|
|
mcopy -s -D o -i $out@@1M ${build_root}/fatroot/* ::/
|
|
|
|
rule strip
|
|
description = Stripping $name
|
|
command = $
|
|
cp $in $out; $
|
|
objcopy --only-keep-debug $out $debug; $
|
|
strip --discard-all -g $out; $
|
|
objcopy --add-gnu-debuglink=$debug $out
|
|
|
|
rule touch
|
|
command = touch $out
|
|
|
|
rule compdb
|
|
command = ninja -t compdb > $out
|