From 0f37f9f05fa4b3b45b419cf83e6b8a2c5b814ebb Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Thu, 20 Apr 2023 12:35:27 -0400 Subject: [PATCH] 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 --- Makefile | 10 +++++++++- bcachefs.c | 9 ++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 0793f2a..31fb9ac 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 f6148e2..8616d55 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")) -- 2.39.2