cflags{ '-std=c99', '-Wall', '-Wpedantic', '-Wno-discarded-qualifiers', '-D _GNU_SOURCE', '-I $srcdir', '-I $srcdir/include', '-I $dir', } pkg.deps = {} local cfg = {} for line in iterlines('config.h', 1) do local var = line:match('^#define (WITH_[%w_]+)') if var then cfg[var] = true end end local srcs = paths[[ lib/sqfs/( id_table.c super.c readdir.c xattr/xattr.c write_table.c meta_writer.c read_super.c meta_reader.c read_inode.c write_inode.c dir_writer.c xattr/xattr_reader.c read_table.c comp/compressor.c dir_reader.c read_tree.c inode.c xattr/xattr_writer.c xattr/xattr_writer_flush.c xattr/xattr_writer_record.c write_super.c data_reader.c block_processor/frontend.c block_processor/block_processor.c block_processor/backend.c frag_table.c block_writer.c misc.c unix/io_file.c ) lib/util/threadpool.c libutil.a ]] if cfg.WITH_GZIP then cflags{'-isystem $builddir/pkg/zlib/include'} table.insert(pkg.deps, 'pkg/zlib/headers') table.insert(srcs, { 'lib/sqfs/comp/gzip.c', '$builddir/pkg/zlib/libz.a', }) end if cfg.WITH_ZSTD then cflags{'-isystem $builddir/pkg/zstd/include'} table.insert(pkg.deps, 'pkg/zstd/headers') table.insert(srcs, { 'lib/sqfs/comp/zstd.c', '$builddir/pkg/zstd/libzstd.a', }) end lib('libsquashfs.a', srcs) lib('libcommon.a', [[ lib/common/( inode_stat.c hardlink.c print_version.c data_reader_dump.c compress.c comp_opt.c data_writer.c get_path.c data_writer_ostream.c perror.c mkdir_p.c parse_size.c print_size.c writer/( init.c cleanup.c serialize_fstree.c finish.c ) ) libsquashfs.a.d libfstream.a libfstree.a.d ]]) lib('libfstream.a', [[ lib/fstream/( ostream.c printf.c istream.c get_line.c compressor.c compress/( ostream_compressor.c gzip.c zstd.c ) uncompress/( istream_compressor.c autodetect.c gzip.c zstd.c ) unix/(ostream.c istream.c) ) ]]) lib('libfstree.a', [[ lib/fstree/( fstree.c fstree_from_file.c fstree_sort.c hardlink.c post_process.c get_path.c mknode.c fstree_from_dir.c add_by_path.c get_by_path.c source_date_epoch.c canonicalize_name.c filename_sane.c ) libfstream.a ]]) lib('libtar.a', [[ lib/tar/( read_header.c write_header.c number.c checksum.c cleanup.c read_sparse_map.c read_sparse_map_old.c base64.c urldecode.c padd_file.c record_to_memory.c pax_header.c read_sparse_map_new.c ) ]]) lib('libutil.a', [[ lib/util/( str_table.c alloc.c rbtree.c array.c xxhash.c hash_table.c threadpool_serial.c is_memory_zero.c ) ]]) exe('gensquashfs', [[ bin/gensquashfs/(mkfs.c options.c selinux.c dirscan_xattr.c) libcommon.a.d ]]) file('bin/gensquashfs', '755', '$outdir/gensquashfs') man{'bin/gensquashfs/gensquashfs.1'} exe('rdsquashfs', [[ bin/rdsquashfs/( rdsquashfs.c list_files.c options.c restore_fstree.c describe.c fill_files.c dump_xattrs.c stat.c ) libcommon.a.d ]]) file('bin/rdsquashfs', '755', '$outdir/rdsquashfs') man{'bin/rdsquashfs/rdsquashfs.1'} exe('sqfsdiff', [[ bin/sqfsdiff/( sqfsdiff.c util.c options.c compare_dir.c node_compare.c compare_files.c super.c extract.c ) libcommon.a.d ]]) file('bin/sqfsdiff', '755', '$outdir/sqfsdiff') man{'bin/sqfsdiff/sqfsdiff.1'} exe('sqfs2tar', [[ bin/sqfs2tar/(sqfs2tar.c options.c write_tree.c xattr.c) libcommon.a.d libtar.a ]]) file('bin/sqfs2tar', '755', '$outdir/sqfs2tar') man{'bin/sqfs2tar/sqfs2tar.1'} exe('tar2sqfs', [[ bin/tar2sqfs/(tar2sqfs.c options.c process_tarball.c) libcommon.a.d libtar.a ]]) file('bin/tar2sqfs', '755', '$outdir/tar2sqfs') man{'bin/tar2sqfs/tar2sqfs.1'} fetch 'git'