For systems without working rust/llvm/bindgen, add an option for
building without Rust. This will be less of an option in the future, as
more code gets rewritten in Rust.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
@echo " [CC] $@"
$(Q)$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
@echo " [CC] $@"
$(Q)$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
-bcachefs: libbcachefs.a rust-src/target/release/libbcachefs_rust.a
+BCACHEFS_DEPS=libbcachefs.a
+
+ifndef NO_RUST
+ BCACHEFS_DEPS+=rust-src/target/release/libbcachefs_rust.a
+else
+ CFLAGS+=-DBCACHEFS_NO_RUST
+endif
+
+bcachefs: $(BCACHEFS_DEPS)
@echo " [LD] $@"
$(Q)$(CC) $(LDFLAGS) -Wl,--whole-archive $+ $(LOADLIBES) -Wl,--no-whole-archive $(LDLIBS) -o $@
@echo " [LD] $@"
$(Q)$(CC) $(LDFLAGS) -Wl,--whole-archive $+ $(LOADLIBES) -Wl,--no-whole-archive $(LDLIBS) -o $@
" show-super Dump superblock information to stdout\n"
" set-option Set a filesystem option\n"
"\n"
" show-super Dump superblock information to stdout\n"
" set-option Set a filesystem option\n"
"\n"
+#ifndef BCACHEFS_NO_RUST
"Mount:\n"
" mount Mount a filesystem\n"
"\n"
"Mount:\n"
" mount Mount a filesystem\n"
"\n"
"Repair:\n"
" fsck Check an existing filesystem for errors\n"
"\n"
"Repair:\n"
" fsck Check an existing filesystem for errors\n"
"\n"
"Debug:\n"
"These commands work on offline, unmounted filesystems\n"
" dump Dump filesystem metadata to a qcow2 image\n"
"Debug:\n"
"These commands work on offline, unmounted filesystems\n"
" dump Dump filesystem metadata to a qcow2 image\n"
+#ifndef BCACHEFS_NO_RUST
" list List filesystem metadata in textual form\n"
" list List filesystem metadata in textual form\n"
" list_journal List contents of journal\n"
"\n"
"Miscellaneous:\n"
" list_journal List contents of journal\n"
"\n"
"Miscellaneous:\n"
if (!strcmp(cmd, "dump"))
return cmd_dump(argc, argv);
if (!strcmp(cmd, "dump"))
return cmd_dump(argc, argv);
+#ifndef BCACHEFS_NO_RUST
if (!strcmp(cmd, "list"))
return cmd_list(argc, argv);
if (!strcmp(cmd, "list"))
return cmd_list(argc, argv);
if (!strcmp(cmd, "list_journal"))
return cmd_list_journal(argc, argv);
if (!strcmp(cmd, "kill_btree_node"))
if (!strcmp(cmd, "list_journal"))
return cmd_list_journal(argc, argv);
if (!strcmp(cmd, "kill_btree_node"))
if (!strcmp(cmd, "setattr"))
return cmd_setattr(argc, argv);
if (!strcmp(cmd, "setattr"))
return cmd_setattr(argc, argv);
+#ifndef BCACHEFS_NO_RUST
if (!strcmp(cmd, "mount")) {
cmd_mount(argc, argv);
return 0;
}
if (!strcmp(cmd, "mount")) {
cmd_mount(argc, argv);
return 0;
}
#ifdef BCACHEFS_FUSE
if (!strcmp(cmd, "fusemount"))
#ifdef BCACHEFS_FUSE
if (!strcmp(cmd, "fusemount"))