add mknod

This commit is contained in:
Knight 2016-05-07 14:57:47 +08:00
parent 1fafde8c27
commit 79478626da
4 changed files with 33 additions and 8 deletions

View file

@ -16,6 +16,7 @@ unix = [
"kill",
"logname",
"mkfifo",
"mknod",
"mktemp",
"mv",
"nice",
@ -123,8 +124,9 @@ ln = { optional=true, path="src/ln" }
ls = { optional=true, path="src/ls" }
logname = { optional=true, path="src/logname" }
mkdir = { optional=true, path="src/mkdir" }
mktemp = { optional=true, path="src/mktemp" }
mkfifo = { optional=true, path="src/mkfifo" }
mknod = { optional=true, path="src/mknod" }
mktemp = { optional=true, path="src/mktemp" }
mv = { optional=true, path="src/mv" }
nice = { optional=true, path="src/nice" }
nl = { optional=true, path="src/nl" }

View file

@ -16,7 +16,7 @@ CARGOFLAGS ?=
# Install directories
PREFIX ?= /usr/local
DESTDIR ?=
DESTDIR ?=
BINDIR ?= /bin
LIBDIR ?= /lib
@ -107,6 +107,7 @@ UNIX_PROGS := \
kill \
logname \
mkfifo \
mknod \
mv \
nice \
nohup \
@ -182,7 +183,7 @@ TESTS := \
$(sort $(filter $(UTILS),$(filter-out $(SKIP_UTILS),$(TEST_PROGS))))
TEST_NO_FAIL_FAST :=
TEST_SPEC_FEATURE :=
TEST_SPEC_FEATURE :=
ifneq ($(SPEC),)
TEST_NO_FAIL_FAST :=--no-fail-fast
TEST_SPEC_FEATURE := test_unimplemented
@ -236,7 +237,7 @@ $(foreach util,$(EXES),$(eval $(call BUILD_EXE,$(util))))
build-pkgs: $(addprefix build_exe_,$(EXES))
build-uutils:
build-uutils:
${CARGO} build ${CARGOFLAGS} --features "${EXES}" ${PROFILE_CMD} --no-default-features
build: build-uutils build-pkgs
@ -254,11 +255,11 @@ busybox-src:
fi; \
# This is a busybox-specific config file their test suite wants to parse.
$(BUILDDIR)/.config: $(BASEDIR)/.busybox-config
$(BUILDDIR)/.config: $(BASEDIR)/.busybox-config
cp $< $@
# Test under the busybox testsuite
$(BUILDDIR)/busybox: busybox-src build-uutils $(BUILDDIR)/.config
$(BUILDDIR)/busybox: busybox-src build-uutils $(BUILDDIR)/.config
cp $(BUILDDIR)/uutils $(BUILDDIR)/busybox; \
chmod +x $@;
@ -269,12 +270,12 @@ busytest: $(BUILDDIR)/busybox $(addprefix test_busybox_,$(filter-out $(SKIP_UTIL
endif
clean:
$(RM) -rf $(BUILDDIR)
$(RM) -rf $(BUILDDIR)
distclean: clean
$(CARGO) clean $(CARGOFLAGS) && $(CARGO) update $(CARGOFLAGS)
install: build
install: build
mkdir -p $(INSTALLDIR_BIN)
ifeq (${MULTICALL}, y)
install $(BUILDDIR)/uutils $(INSTALLDIR_BIN)/$(PROG_PREFIX)uutils

17
src/mknod/Cargo.toml Normal file
View file

@ -0,0 +1,17 @@
[package]
name = "mknod"
version = "0.0.1"
authors = []
[lib]
name = "uu_mknod"
path = "mknod.rs"
[dependencies]
getopts = "*"
libc = "*"
uucore = { path="../uucore" }
[[bin]]
name = "mknod"
path = "main.rs"

5
src/mknod/main.rs Normal file
View file

@ -0,0 +1,5 @@
extern crate uu_mknod;
fn main() {
std::process::exit(uu_mknod::uumain(std::env::args().collect()));
}