aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2020-11-23 15:00:14 +0100
committerGustav Sörnäs <gustav@sornas.net>2020-11-23 15:00:14 +0100
commit30c54113477b08c7650194a16cf7a63a7cdd142f (patch)
tree9c31da7f6d07d70b6bf80b846976b8641cf88ace
parent20eb8b73f7914c86812eda4b3b14ee2d0cd5a826 (diff)
downloadpintos-rs-30c54113477b08c7650194a16cf7a63a7cdd142f.tar.gz
update Makefile.userprog
-rw-r--r--TODO12
-rw-r--r--rust/Makefile5
-rw-r--r--src/Makefile.userprog9
3 files changed, 11 insertions, 15 deletions
diff --git a/TODO b/TODO
index 8813f46..a86e0c0 100644
--- a/TODO
+++ b/TODO
@@ -1,10 +1,3 @@
-1: Hijacka deras Makefiler så de bygger rust, kopierar rust FFI och länkar.
-Deras Makefiler fungerar uppenbarligen och koden borde kunna anropa rust FFI utan problem.
-
-2: Anropa deras libc från Rust, men börja med att typ returnera en int.
-
-3: userprog/rust.c som skickar allt till rust.
-
4: build.rs som hanterar hela bygg-grejen.
.
@@ -12,8 +5,3 @@ Deras Makefiler fungerar uppenbarligen och koden borde kunna anropa rust FFI uta
.
99: i686-unknown-pintos
-
-rust.h:
-int rust_main(int argc, char **argv);
-
-Haltar via exit i entry.c
diff --git a/rust/Makefile b/rust/Makefile
index 23187c9..4a894f2 100644
--- a/rust/Makefile
+++ b/rust/Makefile
@@ -1,2 +1,7 @@
all:
cargo rustc -- -C link-arg= -L.
+
+clean:
+ cargo clean
+
+.PHONY: all clean
diff --git a/src/Makefile.userprog b/src/Makefile.userprog
index 3c4d404..165d7ed 100644
--- a/src/Makefile.userprog
+++ b/src/Makefile.userprog
@@ -25,6 +25,8 @@ LIB_OBJ = $(patsubst %.c,%.o,$(patsubst %.S,%.o,$(lib_SRC) $(lib/user_SRC)))
LIB_DEP = $(patsubst %.o,%.d,$(LIB_OBJ))
LIB = lib/user/entry.o libc.a librust.a
+LIBDIR_RUST = $(SRCDIR)/../rust
+
PROGS_SRC = $(foreach prog,$(PROGS),$($(prog)_SRC))
PROGS_OBJ = $(patsubst %.c,%.o,$(patsubst %.S,%.o,$(PROGS_SRC)))
PROGS_DEP = $(patsubst %.o,%.d,$(PROGS_OBJ))
@@ -49,13 +51,14 @@ libc.a: $(LIB_OBJ)
ranlib $@
librust.a:
- make -C $(SRCDIR)/../halt all
- cp $(SRCDIR)/../rust/target/debug/librust.a $@
+ make -C $(LIBDIR_RUST) all
+ cp $(LIBDIR_RUST)/target/debug/librust.a $@
clean::
rm -f $(PROGS) $(PROGS_OBJ) $(PROGS_DEP)
+ make -C $(LIBDIR_RUST) clean
rm -f $(LIB_DEP) $(LIB_OBJ) lib/user/entry.[do] libc.a librust.a
-.PHONY: all clean
+.PHONY: all clean librust.a
-include $(LIB_DEP) $(PROGS_DEP)