Added correct formatting; started docstrings; added min size rel build
This commit is contained in:
parent
32184c498c
commit
1052dd6244
6 changed files with 1970 additions and 1909 deletions
100
Makefile
100
Makefile
|
|
@ -1,17 +1,20 @@
|
|||
SRC_DIR := src
|
||||
BUILD_DIR := build
|
||||
RELEASE_DIR := $(BUILD_DIR)/release
|
||||
DEBUG_DIR := $(BUILD_DIR)/debug
|
||||
BINARY := stj
|
||||
CORES := $(shell nproc --all)
|
||||
PREFIX := /usr/local
|
||||
MANPREFIX := $(PREFIX)/share/man
|
||||
# =====CONFIG=====
|
||||
SRC_DIR := src
|
||||
BUILD_DIR := build
|
||||
RELEASE_DIR := $(BUILD_DIR)/release
|
||||
DEBUG_DIR := $(BUILD_DIR)/debug
|
||||
MINSIZEREL_DIR := $(BUILD_DIR)/min_size_rel
|
||||
BINARY := stj
|
||||
CORES := $(shell nproc --all)
|
||||
PREFIX := /usr/local
|
||||
MANPREFIX := $(PREFIX)/share/man
|
||||
|
||||
|
||||
all: debug
|
||||
.PHONY: all
|
||||
|
||||
|
||||
# Installation & removal
|
||||
# =====INSTALL & UNINSTALL=====
|
||||
install: release
|
||||
mkdir -p $(DESTDIR)$(PREFIX)/bin
|
||||
cp -f build/release/stj $(DESTDIR)$(PREFIX)/bin
|
||||
|
|
@ -21,47 +24,16 @@ install: release
|
|||
chmod 644 $(DESTDIR)$(MANPREFIX)/man1/stj.1
|
||||
tic -sx data/stj.info
|
||||
cp -f data/stj.desktop $(DESTDIR)$(PREFIX)/share/applications
|
||||
.PHONY: install
|
||||
|
||||
uninstall:
|
||||
rm -f $(DESTDIR)$(PREFIX)/bin/stj
|
||||
rm -f $(DESTDIR)$(MANPREFIX)/man1/stj.1
|
||||
rm -f $(DESTDIR)$(PREFIX)/share/applications/stj.desktop
|
||||
.PHONY: uninstall
|
||||
|
||||
|
||||
# Full clean
|
||||
clean:
|
||||
@ [ ! -e '$(BINARY)' ] || rm '$(BINARY)'
|
||||
@ rm -rf '$(BUILD_DIR)'
|
||||
.PHONY: clean
|
||||
|
||||
|
||||
# Release
|
||||
run-release: release
|
||||
@ ./'$(RELEASE_DIR)/$(BINARY)'
|
||||
.PHONY: run-release
|
||||
|
||||
release: $(RELEASE_DIR)/Makefile
|
||||
@ make -C '$(RELEASE_DIR)' -j'$(CORES)' && \
|
||||
ln -sf '$(RELEASE_DIR)'/'$(BINARY)' ./'$(BINARY)'
|
||||
.PHONY: release
|
||||
|
||||
$(RELEASE_DIR)/Makefile: $(SRC_DIR)/CMakeLists.txt
|
||||
@ cmake \
|
||||
-H'$(SRC_DIR)' \
|
||||
-B'$(RELEASE_DIR)' \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON
|
||||
|
||||
clean-release:
|
||||
@ rm -rf '$(RELEASE_DIR)'
|
||||
.PHONY: clean-release
|
||||
|
||||
|
||||
# Debug
|
||||
run-debug: debug
|
||||
@ ./'$(DEBUG_DIR)/$(BINARY)'
|
||||
.PHONY: run-debug
|
||||
|
||||
# =====DEBUG=====
|
||||
debug: $(DEBUG_DIR)/Makefile
|
||||
@ make -C '$(DEBUG_DIR)' -j'$(CORES)' && \
|
||||
ln -sf '$(DEBUG_DIR)/$(BINARY)' ./'$(BINARY)'
|
||||
|
|
@ -74,6 +46,48 @@ $(DEBUG_DIR)/Makefile: $(SRC_DIR)/CMakeLists.txt
|
|||
-DCMAKE_BUILD_TYPE=Debug \
|
||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON
|
||||
|
||||
|
||||
# =====RELEASE=====
|
||||
release: $(RELEASE_DIR)/Makefile
|
||||
@ make -C '$(RELEASE_DIR)' -j'$(CORES)' && \
|
||||
ln -sf '$(RELEASE_DIR)'/'$(BINARY)' ./'$(BINARY)'
|
||||
.PHONY: release
|
||||
|
||||
$(RELEASE_DIR)/Makefile: $(SRC_DIR)/CMakeLists.txt
|
||||
@ cmake \
|
||||
-H'$(SRC_DIR)' \
|
||||
-B'$(RELEASE_DIR)' \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
|
||||
|
||||
# =====MINIMUM SIZE RELEASE=====
|
||||
minsizerel: $(MINSIZEREL_DIR)/Makefile
|
||||
@ make -C '$(MINSIZEREL_DIR)' -j'$(CORES)' && \
|
||||
ln -sf '$(MINSIZEREL_DIR)'/'$(BINARY)' ./'$(BINARY)'
|
||||
.PHONY: minsizerel
|
||||
|
||||
$(MINSIZEREL_DIR)/Makefile: $(SRC_DIR)/CMakeLists.txt
|
||||
@ cmake \
|
||||
-H'$(SRC_DIR)' \
|
||||
-B'$(MINSIZEREL_DIR)' \
|
||||
-DCMAKE_BUILD_TYPE=MinSizeRel \
|
||||
|
||||
|
||||
# =====CLEANING=====
|
||||
clean:
|
||||
@ [ ! -e '$(BINARY)' ] || rm '$(BINARY)'
|
||||
@ rm -rf '$(BUILD_DIR)'
|
||||
.PHONY: clean
|
||||
|
||||
clean-release:
|
||||
@ rm -rf '$(RELEASE_DIR)'
|
||||
.PHONY: clean-release
|
||||
|
||||
clean-debug:
|
||||
@ rm -rf '$(DEBUG_DIR)'
|
||||
.PHONY: clean-debug
|
||||
|
||||
|
||||
# =====FORMAT CODE=====
|
||||
format:
|
||||
@ clang-format -i --style=file src/**/*.c src/**/*.h
|
||||
|
|
|
|||
Reference in a new issue