aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2023-04-20 12:35:27 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2023-04-20 12:36:16 -0400
commit0f37f9f05fa4b3b45b419cf83e6b8a2c5b814ebb (patch)
tree1aa79be03719ed0d1778381d0d04e4a8459c8971
parent700afe193945e7c55bee0d6c16089f33d3c45f03 (diff)
downloadbcachefs-tools-0f37f9f05fa4b3b45b419cf83e6b8a2c5b814ebb.tar.gz
Add a NO_RUST option
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>
-rw-r--r--Makefile10
-rw-r--r--bcachefs.c9
2 files changed, 17 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 0793f2a2..31fb9ac0 100644
--- a/Makefile
+++ b/Makefile
@@ -108,7 +108,15 @@ OBJS=$(SRCS:.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 $@
diff --git a/bcachefs.c b/bcachefs.c
index f6148e29..8616d554 100644
--- a/bcachefs.c
+++ b/bcachefs.c
@@ -35,9 +35,11 @@ static void usage(void)
" 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"
+#endif
"Repair:\n"
" fsck Check an existing filesystem for errors\n"
"\n"
@@ -85,7 +87,9 @@ static void usage(void)
"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"
+#endif
" list_journal List contents of journal\n"
"\n"
"Miscellaneous:\n"
@@ -231,8 +235,10 @@ int main(int argc, char *argv[])
if (!strcmp(cmd, "dump"))
return cmd_dump(argc, argv);
+#ifndef BCACHEFS_NO_RUST
if (!strcmp(cmd, "list"))
return cmd_list(argc, argv);
+#endif
if (!strcmp(cmd, "list_journal"))
return cmd_list_journal(argc, argv);
if (!strcmp(cmd, "kill_btree_node"))
@@ -240,11 +246,12 @@ int main(int argc, char *argv[])
if (!strcmp(cmd, "setattr"))
return cmd_setattr(argc, argv);
-
+#ifndef BCACHEFS_NO_RUST
if (!strcmp(cmd, "mount")) {
cmd_mount(argc, argv);
return 0;
}
+#endif
#ifdef BCACHEFS_FUSE
if (!strcmp(cmd, "fusemount"))