mirror of https://github.com/aristocratos/btop.git
Updated Makefile
This commit is contained in:
parent
e69780e9bc
commit
2c98e2ca29
61
Makefile
61
Makefile
|
@ -1,6 +1,6 @@
|
|||
#* Btop++ makefile v1.2
|
||||
#* Btop++ makefile v1.4
|
||||
|
||||
BANNER = \n \033[38;5;196m██████\033[38;5;240m╗ \033[38;5;196m████████\033[38;5;240m╗ \033[38;5;196m██████\033[38;5;240m╗ \033[38;5;196m██████\033[38;5;240m╗\n \033[38;5;160m██\033[38;5;239m╔══\033[38;5;160m██\033[38;5;239m╗╚══\033[38;5;160m██\033[38;5;239m╔══╝\033[38;5;160m██\033[38;5;239m╔═══\033[38;5;160m██\033[38;5;239m╗\033[38;5;160m██\033[38;5;239m╔══\033[38;5;160m██\033[38;5;239m╗ \033[38;5;160m██\033[38;5;239m╗ \033[38;5;160m██\033[38;5;239m╗\n \033[38;5;124m██████\033[38;5;238m╔╝ \033[38;5;124m██\033[38;5;238m║ \033[38;5;124m██\033[38;5;238m║ \033[38;5;124m██\033[38;5;238m║\033[38;5;124m██████\033[38;5;238m╔╝ \033[38;5;124m██████\033[38;5;238m╗\033[38;5;124m██████\033[38;5;238m╗\n \033[38;5;88m██\033[38;5;237m╔══\033[38;5;88m██\033[38;5;237m╗ \033[38;5;88m██\033[38;5;237m║ \033[38;5;88m██\033[38;5;237m║ \033[38;5;88m██\033[38;5;237m║\033[38;5;88m██\033[38;5;237m╔═══╝ ╚═\033[38;5;88m██\033[38;5;237m╔═╝╚═\033[38;5;88m██\033[38;5;237m╔═╝\n \033[38;5;52m██████\033[38;5;236m╔╝ \033[38;5;52m██\033[38;5;236m║ ╚\033[38;5;52m██████\033[38;5;236m╔╝\033[38;5;52m██\033[38;5;236m║ ╚═╝ ╚═╝\n \033[38;5;235m╚═════╝ ╚═╝ ╚═════╝ ╚═╝ \033[1;3;38;5;240mMakefile v1.3\033[0m
|
||||
BANNER = \n \033[38;5;196m██████\033[38;5;240m╗ \033[38;5;196m████████\033[38;5;240m╗ \033[38;5;196m██████\033[38;5;240m╗ \033[38;5;196m██████\033[38;5;240m╗\n \033[38;5;160m██\033[38;5;239m╔══\033[38;5;160m██\033[38;5;239m╗╚══\033[38;5;160m██\033[38;5;239m╔══╝\033[38;5;160m██\033[38;5;239m╔═══\033[38;5;160m██\033[38;5;239m╗\033[38;5;160m██\033[38;5;239m╔══\033[38;5;160m██\033[38;5;239m╗ \033[38;5;160m██\033[38;5;239m╗ \033[38;5;160m██\033[38;5;239m╗\n \033[38;5;124m██████\033[38;5;238m╔╝ \033[38;5;124m██\033[38;5;238m║ \033[38;5;124m██\033[38;5;238m║ \033[38;5;124m██\033[38;5;238m║\033[38;5;124m██████\033[38;5;238m╔╝ \033[38;5;124m██████\033[38;5;238m╗\033[38;5;124m██████\033[38;5;238m╗\n \033[38;5;88m██\033[38;5;237m╔══\033[38;5;88m██\033[38;5;237m╗ \033[38;5;88m██\033[38;5;237m║ \033[38;5;88m██\033[38;5;237m║ \033[38;5;88m██\033[38;5;237m║\033[38;5;88m██\033[38;5;237m╔═══╝ ╚═\033[38;5;88m██\033[38;5;237m╔═╝╚═\033[38;5;88m██\033[38;5;237m╔═╝\n \033[38;5;52m██████\033[38;5;236m╔╝ \033[38;5;52m██\033[38;5;236m║ ╚\033[38;5;52m██████\033[38;5;236m╔╝\033[38;5;52m██\033[38;5;236m║ ╚═╝ ╚═╝\n \033[38;5;235m╚═════╝ ╚═╝ ╚═════╝ ╚═╝ \033[1;3;38;5;240mMakefile v1.4\033[0m
|
||||
|
||||
override BTOP_VERSION := $(shell head -n100 src/btop.cpp 2>/dev/null | grep "Version =" | cut -f2 -d"\"" || echo " unknown")
|
||||
override TIMESTAMP := $(shell date +%s 2>/dev/null || echo "0")
|
||||
|
@ -17,34 +17,32 @@ PREFIX ?= /usr/local
|
|||
|
||||
#? Detect PLATFORM and ARCH from uname/gcc if not set
|
||||
PLATFORM ?= $(shell uname -s || echo unknown)
|
||||
ifneq ($(filter unknown darwin, $(PLATFORM)),)
|
||||
ifneq ($(filter unknown Darwin, $(PLATFORM)),)
|
||||
override PLATFORM := $(shell $(CXX) -dumpmachine | awk -F"-" '{ print (NF==4) ? $$3 : $$2 }')
|
||||
ifeq ($(PLATFORM),apple)
|
||||
override PLATFORM := macos
|
||||
endif
|
||||
ifeq ($(shell uname -v | grep ARM64 >/dev/null 2>&1; echo $$?),0)
|
||||
ARCH ?= arm64
|
||||
endif
|
||||
else
|
||||
ARCH ?= $(shell $(CXX) -dumpmachine | cut -d "-" -f 1)
|
||||
endif
|
||||
ARCH ?= $(shell $(CXX) -dumpmachine | cut -d "-" -f 1)
|
||||
|
||||
override PLATFORM_LC := $(shell echo $(PLATFORM) | tr '[:upper:]' '[:lower:]')
|
||||
|
||||
#? Make sure PLATFORM Darwin is OSX and not Darwin
|
||||
ifeq ($(PLATFORM),Darwin)
|
||||
ifeq ($(shell sw_vers >/dev/null 2>&1; echo $$?),0)
|
||||
override PLATFORM := OSX
|
||||
ifeq ($(shell uname -v | grep ARM64 >/dev/null 2>&1; echo $$?),0)
|
||||
override ARCH := arm64
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
#? Only enable fcf-protection if on x86_64
|
||||
ifneq ($(filter x86_64 i%86, $(ARCH)),)
|
||||
override ADDFLAGS += -fcf-protection
|
||||
#? Any flags added to TESTFLAGS must not contain whitespace for the testing to work
|
||||
override TESTFLAGS := -fexceptions -D_FORTIFY_SOURCE=2 -D_GLIBCXX_ASSERTIONS -fstack-clash-protection -fcf-protection
|
||||
ifneq ($(PLATFORM) $(ARCH),macos arm64)
|
||||
override TESTFLAGS += -fstack-protector
|
||||
endif
|
||||
|
||||
ifeq ($(STATIC),true)
|
||||
override ADDFLAGS += -D STATIC_BUILD -static -static-libgcc -static-libstdc++ -Wl,--fatal-warnings
|
||||
override TESTFLAGS += -DSTATIC_BUILD -static -static-libgcc -static-libstdc++ -Wl,--fatal-warnings
|
||||
endif
|
||||
|
||||
ifeq ($(STRIP),true)
|
||||
override ADDFLAGS += -s
|
||||
override TESTFLAGS += -s
|
||||
endif
|
||||
|
||||
#? Compiler and Linker
|
||||
|
@ -70,21 +68,26 @@ endif
|
|||
ifeq ($(PLATFORM_LC),linux)
|
||||
PLATFORM_DIR := linux
|
||||
THREADS := $(shell getconf _NPROCESSORS_ONLN 2>/dev/null || echo 1)
|
||||
SU_GROUP := root
|
||||
else ifeq ($(PLATFORM_LC),freebsd)
|
||||
PLATFORM_DIR := freebsd
|
||||
THREADS := $(shell getconf NPROCESSORS_ONLN 2>/dev/null || echo 1)
|
||||
else ifeq ($(PLATFORM_LC),darwin)
|
||||
SU_GROUP := root
|
||||
else ifeq ($(PLATFORM_LC),macos)
|
||||
PLATFORM_DIR := osx
|
||||
THREADS := $(shell sysctl -n hw.ncpu || echo 1)
|
||||
ifeq ($(shell command -v gdate >/dev/null; echo $$?),0)
|
||||
override DATE_CMD := gdate
|
||||
endif
|
||||
override ADDFLAGS += -framework IOKit -framework CoreFoundation
|
||||
override WARNFLAGS += -Wno-format-truncation
|
||||
SU_GROUP := wheel
|
||||
else
|
||||
$(error $(shell printf "\033[1;91mERROR: \033[97mUnsupported platform ($(PLATFORM))\033[0m"))
|
||||
endif
|
||||
|
||||
#? Use all CPU cores (will only be set if using Make 4.3+)
|
||||
MAKEFLAGS := --jobs=$(THREADS)
|
||||
MAKEFLAGS := --jobs=$(THREADS)
|
||||
ifeq ($(THREADS),1)
|
||||
override THREADS := auto
|
||||
endif
|
||||
|
@ -98,11 +101,14 @@ SRCEXT := cpp
|
|||
DEPEXT := d
|
||||
OBJEXT := o
|
||||
|
||||
#? Filter out unsupported compiler flags
|
||||
override GOODFLAGS := $(foreach flag,$(TESTFLAGS),$(strip $(shell echo "int main() {}" | $(CXX) -o /dev/null $(flag) -x c++ - >/dev/null 2>&1 && echo $(flag) || true)))
|
||||
|
||||
#? Flags, Libraries and Includes
|
||||
override REQFLAGS := -std=c++20
|
||||
WARNFLAGS := -Wall -Wextra -pedantic
|
||||
OPTFLAGS ?= -O2 -ftree-loop-vectorize -flto=$(THREADS)
|
||||
LDCXXFLAGS := -pthread -D_FORTIFY_SOURCE=2 -D_GLIBCXX_ASSERTIONS -fexceptions $(ADDFLAGS)
|
||||
LDCXXFLAGS := -pthread $(GOODFLAGS) $(ADDFLAGS)
|
||||
override CXXFLAGS += $(REQFLAGS) $(LDCXXFLAGS) $(OPTFLAGS) $(WARNFLAGS)
|
||||
override LDFLAGS += $(LDCXXFLAGS) $(OPTFLAGS) $(WARNFLAGS)
|
||||
INC := -I$(INCDIR) -I$(SRCDIR)
|
||||
|
@ -112,17 +118,6 @@ ifdef DEBUG
|
|||
override OPTFLAGS := -O0 -g
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM), OSX)
|
||||
override LDCXXFLAGS += -framework IOKit -framework CoreFoundation
|
||||
override WARNFLAGS += -Wno-format-truncation
|
||||
SU_GROUP := wheel
|
||||
else
|
||||
SU_GROUP := root
|
||||
ifneq ($(ARCH),arm64)
|
||||
override LDCXXFLAGS += -fstack-protector -fstack-clash-protection
|
||||
endif
|
||||
endif
|
||||
|
||||
SOURCES := $(shell find $(SRCDIR) -maxdepth 1 -type f -name *.$(SRCEXT))
|
||||
|
||||
SOURCES += $(shell find $(SRCDIR)/$(PLATFORM_DIR) -type f -name *.$(SRCEXT))
|
||||
|
|
Loading…
Reference in New Issue