You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.6 KiB

DAEMON_BINARY := sohkd
SERVER_BINARY := sohks
CONTROL_BINARY := sohkctl
MODE_CHANGE_BINARY := sohkmc
BUILDFLAGS := --release
UDEV_DIR := /etc/udev/rules.d/
UDEV_RULE := sohkd.rules
TARGET_DIR := /usr/bin
all: build
build:
@cargo build $(BUILDFLAGS) --target=x86_64-unknown-linux-musl
@cp ./target/x86_64-unknown-linux-musl/release/$(DAEMON_BINARY) ./bin/$(DAEMON_BINARY)
@cp ./target/x86_64-unknown-linux-musl/release/$(SERVER_BINARY) ./bin/$(SERVER_BINARY)
glibc:
@cargo build $(BUILDFLAGS)
@cp ./target/release/$(DAEMON_BINARY) ./bin/$(DAEMON_BINARY)
@cp ./target/release/$(SERVER_BINARY) ./bin/$(SERVER_BINARY)
@cp ./target/release/$(CONTROL_BINARY) ./bin/$(CONTROL_BINARY)
install:
@mkdir -p $(TARGET_DIR)
@mkdir -p $(UDEV_DIR)
@mkdir -p /etc/$(DAEMON_BINARY)
@touch /etc/$(DAEMON_BINARY)/$(DAEMON_BINARY)rc
@cp ./bin/$(DAEMON_BINARY) $(TARGET_DIR)
@cp ./bin/$(SERVER_BINARY) $(TARGET_DIR)
@cp ./bin/$(CONTROL_BINARY) $(TARGET_DIR)
@cp ./bin/$(CHANGE_MODE_BINARY) $(TARGET_DIR)
@cp ./$(UDEV_RULE) $(UDEV_DIR)/$(UDEV_RULE)
@chmod +x $(TARGET_DIR)/$(DAEMON_BINARY)
@chmod +x $(TARGET_DIR)/$(SERVER_BINARY)
@chmod +x $(TARGET_DIR)/$(CONTROL_BINARY)
@chmod +x $(TARGET_DIR)/$(CHANGE_MODE_BINARY)
uninstall:
@rm $(TARGET_DIR)/$(SERVER_BINARY)
@rm $(TARGET_DIR)/$(DAEMON_BINARY)
@rm $(TARGET_DIR)/$(CONTROL_BINARY)
@rm $(TARGET_DIR)/$(CHANGE_MODE_BINARY)
@rm $(UDEV_DIR)/$(UDEV_RULE)
check:
@cargo fmt
@cargo check --target=x86_64-unknown-linux-musl
clean:
@cargo clean
setup:
@mkdir -p ./bin
@rustup install stable
@rustup default stable
@rustup target add x86_64-unknown-linux-musl
.PHONY: check clean setup all install build glibc