Merge pull request #913 from mario-kr/makefile_use_workspaces
Makefile use workspaces
This commit is contained in:
commit
c4bd98a48f
2 changed files with 20 additions and 44 deletions
39
Makefile
39
Makefile
|
@ -18,10 +18,7 @@ LIB_TARGETS_TEST=$(foreach x,$(subst ./,,$(LIBS)),$(x)-test)
|
|||
TARGETS=$(BIN_TARGETS) $(LIB_TARGETS)
|
||||
RELEASE_TARGETS=$(foreach x,$(TARGETS),$(x)-release)
|
||||
INSTALL_TARGETS=$(foreach x,$(BIN_TARGETS),$(x)-install)
|
||||
UPDATE_TARGETS=$(foreach x,$(TARGETS),$(x)-update)
|
||||
CLEAN_TARGETS=$(foreach x,$(TARGETS),$(x)-clean)
|
||||
CHECK_TARGETS=$(foreach x,$(TARGETS),$(x)-check)
|
||||
CHECK_OUTDATED_TARGETS=$(foreach x,$(TARGETS),$(x)-check-outdated)
|
||||
|
||||
all: $(TARGETS) imag-bin
|
||||
@$(ECHO) "\t[ALL ]"
|
||||
|
@ -34,26 +31,14 @@ imag-bin-release:
|
|||
@$(ECHO) "\t[IMAG ][RELEASE]"
|
||||
@$(CARGO) build --release --manifest-path ./bin/Cargo.toml
|
||||
|
||||
imag-bin-update:
|
||||
@$(ECHO) "\t[IMAG ][UPDATE ]"
|
||||
@$(CARGO) update --manifest-path ./bin/Cargo.toml
|
||||
|
||||
imag-bin-install:
|
||||
@$(ECHO) "\t[IMAG ][INSTALL]"
|
||||
@$(CARGO) install --force --path ./bin
|
||||
|
||||
imag-bin-clean:
|
||||
@$(ECHO) "\t[IMAG ][CLEAN ]"
|
||||
@$(CARGO) clean --manifest-path ./bin/Cargo.toml
|
||||
|
||||
imag-bin-check:
|
||||
@$(ECHO) "\t[IMAG ][CHECK ]"
|
||||
@$(CARGO) check --manifest-path ./bin/Cargo.toml
|
||||
|
||||
imag-bin-check-outdated:
|
||||
@$(ECHO) "\t[IMAG ][CHECK ]"
|
||||
@$(CARGO) outdated --manifest-path ./bin/Cargo.toml --lockfile-path ./bin/Cargo.lock
|
||||
|
||||
release: $(RELEASE_TARGETS) imag-bin-release
|
||||
@$(ECHO) "\t[RELEASE]"
|
||||
|
||||
|
@ -75,15 +60,19 @@ test: bin-test lib-test
|
|||
install: $(INSTALL_TARGETS) imag-bin-install
|
||||
@$(ECHO) "\t[INSTALL]"
|
||||
|
||||
update: $(UPDATE_TARGETS) imag-bin-update
|
||||
update:
|
||||
@$(ECHO) "\t[UPDATE ]"
|
||||
@$(CARGO) update
|
||||
|
||||
clean: $(CLEAN_TARGETS) imag-bin-clean
|
||||
clean:
|
||||
@$(ECHO) "\t[CLEAN ]"
|
||||
@$(CARGO) clean
|
||||
|
||||
check: $(CHECK_TARGETS) imag-bin-check
|
||||
|
||||
check-outdated: $(CHECK_OUTDATED_TARGETS) imag-bin-check-outdated
|
||||
check-outdated:
|
||||
@$(ECHO) "\t[OUTDATED]"
|
||||
@$(CARGO) outdated
|
||||
|
||||
$(TARGETS): %: .FORCE
|
||||
@$(ECHO) "\t[CARGO ]:\t$@"
|
||||
|
@ -107,23 +96,9 @@ $(INSTALL_TARGETS): %: .FORCE imag-bin-install
|
|||
@$(ECHO) "\t[INSTALL]:\t$(subst -install,,$@)"
|
||||
@$(CARGO) install --force --path ./$(subst -install,,$@)
|
||||
|
||||
$(UPDATE_TARGETS): %: .FORCE
|
||||
@$(ECHO) "\t[UPDATE ]:\t$(subst -update,,$@)"
|
||||
@$(CARGO) update --manifest-path ./$(subst -update,,$@)/Cargo.toml
|
||||
|
||||
$(CLEAN_TARGETS): %: .FORCE
|
||||
@$(ECHO) "\t[CLEAN ]:\t$(subst -clean,,$@)"
|
||||
@$(CARGO) clean --manifest-path ./$(subst -clean,,$@)/Cargo.toml
|
||||
|
||||
$(CHECK_TARGETS): %: .FORCE
|
||||
@$(ECHO) "\t[CHECK ]:\t$(subst -check,,$@)"
|
||||
@$(CARGO) check --manifest-path ./$(subst -check,,$@)/Cargo.toml
|
||||
|
||||
$(CHECK_OUTDATED_TARGETS): %: .FORCE $(subst -check-outdated,-update,$@)
|
||||
@$(ECHO) "\t[OUTDATE]:\t$(subst -check-outdated,,$@)"
|
||||
@$(CARGO) outdated -R \
|
||||
--manifest-path $(PWD)/$(subst -check-outdated,,$@)/Cargo.toml \
|
||||
--lockfile-path $(PWD)/$(subst -check-outdated,,$@)/Cargo.lock
|
||||
|
||||
.FORCE:
|
||||
|
||||
|
|
25
README.md
25
README.md
|
@ -50,18 +50,19 @@ might think!
|
|||
|
||||
There are several targets for each of the sub-crates in the Makefile:
|
||||
|
||||
| Target | Multi | Purpose | Example |
|
||||
| :--- | ----- | :--- | :--- |
|
||||
| all | | Build everything, debug mode | `make all` |
|
||||
| bin | | Build all binaries, debug mode | `make bin` |
|
||||
| lib | | Build all libraries, debug mode | `make lib` |
|
||||
| lib-test | | Test all libraries | `make lib-test` |
|
||||
| imag-bin | | Build only the `imag` binary, debug mode | `make imag-bin` |
|
||||
| check | * | Run `cargo check` | `make check` |
|
||||
| clean | * | Remove build artifacts | `make clean` |
|
||||
| install | * | Build everything, release mode, install | `make install` |
|
||||
| release | * | Build everything, release mode | `make release` |
|
||||
| update | * | Run `cargo update` | `make update` |
|
||||
| Target | Multi | Purpose | Example |
|
||||
| :--- | ----- | :--- | :--- |
|
||||
| all | | Build everything, debug mode | `make all` |
|
||||
| bin | | Build all binaries, debug mode | `make bin` |
|
||||
| lib | | Build all libraries, debug mode | `make lib` |
|
||||
| lib-test | | Test all libraries | `make lib-test` |
|
||||
| imag-bin | | Build only the `imag` binary, debug mode | `make imag-bin` |
|
||||
| clean | | Remove build artifacts | `make clean` |
|
||||
| update | | Run `cargo update` | `make update` |
|
||||
| check-outdated | | Run `cargo outdated` | `make check-outdated`|
|
||||
| check | * | Run `cargo check` | `make check` |
|
||||
| install | * | Build everything, release mode, install | `make install` |
|
||||
| release | * | Build everything, release mode | `make release` |
|
||||
|
||||
The `Multi` targets are callable for each sub-crate. For example you can call
|
||||
`make imag-store-check` to run `cargo check` on the `imag-store` crate.
|
||||
|
|
Loading…
Reference in a new issue