Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
172 changes: 115 additions & 57 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,60 @@
#* Btop++ makefile v1.6

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.6\033[0m
BANNER_FILE := ansi_banner.utf8
BANNER = $(shell cat "$(BANNER_FILE)")

E = \033[
RST = $(E)0m
BLD = $(E)1m

CUR_LEFT = $(E)$(1)D
CUR_RIGHT = $(E)$(1)C

# LT_GRAY = $(E)30m
# LT_RED = $(E)31m
# LT_GREEN = $(E)32m
# LT_YELLOW = $(E)33m
# LT_BLUE = $(E)34m
# LT_MAGENTA = $(E)35m
# LT_CYAN = $(E)36m
# LT_WHITE = $(E)37m

# GRAY = $(E)90m
RED = $(E)91m
GREEN = $(E)92m
YELLOW = $(E)93m
BLUE = $(E)94m
MAGENTA = $(E)95m
CYAN = $(E)96m
WHITE = $(E)97m

# B_GRAY = $(BLD)$(GRAY)
B_RED = $(BLD)$(RED)
B_GREEN = $(BLD)$(GREEN)
B_YELLOW = $(BLD)$(YELLOW)
B_BLUE = $(BLD)$(BLUE)
B_MAGENTA = $(BLD)$(MAGENTA)
B_CYAN = $(BLD)$(CYAN)
B_WHITE = $(BLD)$(WHITE)

cecho = printf "%b" "$(1)"

# line-based colors (with newline)
red = $(call cecho,$(B_RED)$(1)$(RST)$(2)\n)
green = $(call cecho,$(B_GREEN)$(1)$(RST)$(2)\n)
yellow = $(call cecho,$(B_YELLOW)$(1)$(RST)$(2)\n)
blue = $(call cecho,$(B_BLUE)$(1)$(RST)$(2)\n)
magenta = $(call cecho,$(B_MAGENTA)$(1)$(RST)$(2)\n)
cyan = $(call cecho,$(B_CYAN)$(1)$(RST)$(2)\n)
white = $(call cecho,$(B_WHITE)$(1)$(RST)$(2)\n)
# inline colors (no newline)
red_i = $(call cecho,$(B_RED)$(1)$(RST)$(2))

COMMA := ,

file_with_size = $(WHITE)$(1) $(2)$(YELLOW)($(WHITE)$$(du -ah "$(1)" 2>/dev/null |cut -f1)iB$(YELLOW))
step_duration = $$($(DATE_CMD) -d @$$(expr $$($(DATE_CMD) +%s 2>/dev/null || echo "0") - $(1) 2>/dev/null) -u +%Mm:%Ss 2>/dev/null |sed 's/^00m://' || echo 'unk')


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")
Expand Down Expand Up @@ -71,7 +125,7 @@ endif
ifeq ($(STATIC),true)
ifeq ($(CXX_IS_CLANG),true)
ifeq ($(shell $(CXX) -print-target-triple | grep gnu >/dev/null; echo $$?),0)
$(error $(shell printf "\033[1;91mERROR: \033[97m$(CXX) can't statically link glibc\033[0m"))
$(error $(call red_i,ERROR: $(WHITE)$(CXX) can't statically link glibc))
endif
endif

Expand Down Expand Up @@ -130,7 +184,7 @@ else ifeq ($(PLATFORM_LC),netbsd)
export MAKE = gmake
SU_GROUP := wheel
else
$(error $(shell printf "\033[1;91mERROR: \033[97mUnsupported platform ($(PLATFORM))\033[0m"))
$(error $(call red_i,ERROR: $(WHITE)Unsupported platform ($(PLATFORM))))
endif

#? Use all CPU cores (will only be set if using Make 4.3+)
Expand Down Expand Up @@ -211,8 +265,6 @@ else
PROGRESS = expr $$(find $(BUILDDIR) -type f -name *.o | wc -l || echo 1) '*' 90 / $(SOURCE_COUNT) | cut -c1-2
endif

P := %%

ifeq ($(VERBOSE),true)
# Doesn't work with `&>`
override SUPPRESS := > /dev/null 2> /dev/null
Expand All @@ -227,29 +279,30 @@ all: | info rocm_smi info-quiet directories btop.1 config.h btop
ifneq ($(QUIET),true)
info:
@printf " $(BANNER)\n"
@printf "\033[1;92mPLATFORM \033[1;93m?| \033[0m$(PLATFORM)\n"
@printf "\033[1;96mARCH \033[1;93m?| \033[0m$(ARCH)\n"
@printf "\033[1;95mGPU_SUPPORT \033[1;94m:| \033[0m$(GPU_SUPPORT)\n"
@printf "\033[1;93mCXX \033[1;93m?| \033[0m$(CXX) \033[1;93m(\033[97m$(CXX_VERSION)\033[93m)\n"
@$(SHOW_CC_INFO) || printf "\033[1;93mCC \033[1;93m?| \033[0m$(CC) \033[1;93m(\033[97m$(CC_VERSION)\033[93m)\n"
@printf "\033[1;94mTHREADS \033[1;94m:| \033[0m$(THREADS)\n"
@printf "\033[1;92mREQFLAGS \033[1;91m!| \033[0m$(REQFLAGS)\n"
@printf "\033[1;91mWARNFLAGS \033[1;94m:| \033[0m$(WARNFLAGS)\n"
@printf "\033[1;94mOPTFLAGS \033[1;94m:| \033[0m$(OPTFLAGS)\n"
@printf "\033[1;93mLDCXXFLAGS \033[1;94m:| \033[0m$(LDCXXFLAGS)\n"
@printf "\033[1;95mCXXFLAGS \033[1;92m+| \033[0;37m\$$(\033[92mREQFLAGS\033[37m) \$$(\033[93mLDCXXFLAGS\033[37m) \$$(\033[94mOPTFLAGS\033[37m) \$$(\033[91mWARNFLAGS\033[37m) $(OLDCXX)\n"
@printf "\033[1;95mLDFLAGS \033[1;92m+| \033[0;37m\$$(\033[93mLDCXXFLAGS\033[37m) \$$(\033[94mOPTFLAGS\033[37m) \$$(\033[91mWARNFLAGS\033[37m) $(OLDLD)\n"
@$(call green ,PLATFORM $(YELLOW)?| ,$(PLATFORM))
@$(call cyan ,ARCH $(YELLOW)?| ,$(ARCH))
@$(call magenta,GPU_SUPPORT $(BLUE):| ,$(GPU_SUPPORT))
@$(call yellow ,CXX ?| ,$(CXX) $(B_YELLOW)($(WHITE)$(CXX_VERSION)$(YELLOW)))
@$(SHOW_CC_INFO) || \
$(call yellow ,CC ?| ,$(CC) $(B_YELLOW)($(WHITE)$(CC_VERSION)$(YELLOW)))
@$(call blue ,THREADS :| ,$(THREADS))
@$(call green ,REQFLAGS $(RED)!| ,$(REQFLAGS))
@$(call red ,WARNFLAGS $(BLUE):| ,$(WARNFLAGS))
@$(call blue ,OPTFLAGS :| ,$(OPTFLAGS))
@$(call yellow ,LDCXXFLAGS $(BLUE):| ,$(LDCXXFLAGS))
@$(call magenta,CXXFLAGS $(GREEN)+| ,\$$($(GREEN)REQFLAGS$(RST)) \$$($(YELLOW)LDCXXFLAGS$(RST)) \$$($(BLUE)OPTFLAGS$(RST)) \$$($(RED)WARNFLAGS$(RST)) $(OLDCXX))
@$(call magenta,LDFLAGS $(GREEN)+| ,\$$($(YELLOW)LDCXXFLAGS$(RST)) \$$($(BLUE)OPTFLAGS$(RST)) \$$($(RED)WARNFLAGS$(RST)) $(OLDLD))
else
info:
@true
endif

info-quiet: | info rocm_smi
@printf "\n\033[1;92mBuilding btop++ \033[91m(\033[97mv$(BTOP_VERSION)\033[91m) \033[93m$(PLATFORM) \033[96m$(ARCH)\033[0m\n"
@$(call green,\nBuilding btop++ $(RED)($(WHITE)v$(BTOP_VERSION)$(RED)) $(YELLOW)$(PLATFORM) $(CYAN)$(ARCH))

help:
@printf " $(BANNER)\n"
@printf "\033[1;97mbtop++ makefile\033[0m\n"
@$(call white,btop++ makefile)
@printf "usage: make [argument]\n\n"
@printf "arguments:\n"
@printf " all Compile btop (default argument)\n"
Expand All @@ -271,84 +324,84 @@ directories:
config.h: $(BUILDDIR)/config.h

$(BUILDDIR)/config.h: $(SRCDIR)/config.h.in | directories
@$(QUIET) || printf "\033[1mConfiguring $(BUILDDIR)/config.h\033[0m\n"
@$(QUIET) || printf "$(BLD)Configuring $(BUILDDIR)/config.h$(RST)\n"
@$(VERBOSE) || printf 'sed -e "s|@GIT_COMMIT@|$(GIT_COMMIT)|" -e "s|@CONFIGURE_COMMAND@|$(CONFIGURE_COMMAND)|" -e "s|@COMPILER@|$(CXX)|" -e "s|@COMPILER_VERSION@|$(CXX_VERSION)|" $< | tee $@ > /dev/null\n'
@sed -e "s|@GIT_COMMIT@|$(GIT_COMMIT)|" -e "s|@CONFIGURE_COMMAND@|$(CONFIGURE_COMMAND)|" -e "s|@COMPILER@|$(CXX)|" -e "s|@COMPILER_VERSION@|$(CXX_VERSION)|" $< | tee $@ > /dev/null

#? Man page
btop.1: manpage.md | directories
ifeq ($(shell command -v lowdown >/dev/null; echo $$?),0)
@printf "\n\033[1;92mGenerating man page $@\033[37m...\033[0m\n"
@$(call green,\nGenerating man page $@,...)
lowdown -s -Tman -o $@ $<
else
@printf "\n\033[1;93mCommand 'lowdown' not found: skipping generating man page $@\033[0m\n"
@$(call yellow,\nCommand 'lowdown' not found: skipping generating man page $@)
endif

#? Clean only Objects
clean:
@printf "\033[1;91mRemoving: \033[1;97mbuilt objects...\033[0m\n"
@$(call red,Removing: $(WHITE)built objects,...)
@rm -rf $(BUILDDIR)
@test -e lib/rocm_smi_lib/build && cmake --build lib/rocm_smi_lib/build --target clean &> /dev/null || true

#? Clean Objects and Binaries
distclean: clean
@printf "\033[1;91mRemoving: \033[1;97mbuilt binaries...\033[0m\n"
@$(call red,Removing: $(WHITE)built binaries,...)
@rm -rf $(TARGETDIR)
@test -e lib/rocm_smi_lib/build && rm -rf lib/rocm_smi_lib/build || true

install:
@printf "\033[1;92mInstalling binary to: \033[1;97m$(DESTDIR)$(PREFIX)/bin/btop\033[0m\n"
@$(call green,Installing binary to: $(WHITE)$(DESTDIR)$(PREFIX)/bin/btop)
@mkdir -p $(DESTDIR)$(PREFIX)/bin
@cp -p $(TARGETDIR)/btop $(DESTDIR)$(PREFIX)/bin/btop
@chmod 755 $(DESTDIR)$(PREFIX)/bin/btop
@printf "\033[1;92mInstalling doc to: \033[1;97m$(DESTDIR)$(PREFIX)/share/doc/btop\033[0m\n"
@$(call green,Installing doc to: $(WHITE)$(DESTDIR)$(PREFIX)/share/doc/btop)
@mkdir -p $(DESTDIR)$(PREFIX)/share/doc/btop
@cp -p README.md $(DESTDIR)$(PREFIX)/share/doc/btop
@mkdir -p $(DESTDIR)$(PREFIX)/share/btop
@printf "\033[1;92mInstalling themes to: \033[1;97m$(DESTDIR)$(PREFIX)/share/btop/themes\033[0m\n"
@$(call green,Installing themes to: $(WHITE)$(DESTDIR)$(PREFIX)/share/btop/themes)
@cp -pr themes $(DESTDIR)$(PREFIX)/share/btop
@printf "\033[1;92mInstalling desktop entry to: \033[1;97m$(DESTDIR)$(PREFIX)/share/applications/btop.desktop\033[0m\n"
@$(call green,Installing desktop entry to: ,$(WHITE)$(DESTDIR)$(PREFIX)/share/applications/btop.desktop)
@mkdir -p $(DESTDIR)$(PREFIX)/share/applications/
@cp -p btop.desktop $(DESTDIR)$(PREFIX)/share/applications/btop.desktop
@printf "\033[1;92mInstalling PNG icon to: \033[1;97m$(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/btop.png\033[0m\n"
@$(call green,Installing PNG icon to: ,$(WHITE)$(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/btop.png)
@mkdir -p $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps
@cp -p Img/icon.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/btop.png
@printf "\033[1;92mInstalling SVG icon to: \033[1;97m$(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/btop.svg\033[0m\n"
@$(call green,Installing SVG icon to: ,$(WHITE)$(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/btop.svg)
@mkdir -p $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps
@cp -p Img/icon.svg $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/btop.svg
ifneq ($(wildcard btop.1),)
@printf "\033[1;92mInstalling man page to: \033[1;97m$(DESTDIR)$(PREFIX)/share/man/man1/btop.1\033[0m\n"
@$(call green,Installing man page to: ,$(WHITE)$(DESTDIR)$(PREFIX)/share/man/man1/btop.1)
@mkdir -p $(DESTDIR)$(PREFIX)/share/man/man1
@cp -p btop.1 $(DESTDIR)$(PREFIX)/share/man/man1/btop.1
endif

#? Set SUID bit for btop as $SU_USER in $SU_GROUP
setuid:
@printf "\033[1;97mFile: $(DESTDIR)$(PREFIX)/bin/btop\n"
@printf "\033[1;92mSetting owner \033[1;97m$(SU_USER):$(SU_GROUP)\033[0m\n"
@$(call white,File: $(DESTDIR)$(PREFIX)/bin/btop)
@$(call green,Setting owner ,$(WHITE)$(SU_USER):$(SU_GROUP))
@chown $(SU_USER):$(SU_GROUP) $(DESTDIR)$(PREFIX)/bin/btop
@printf "\033[1;92mSetting SUID bit\033[0m\n"
@$(call green,Setting SUID bit)
@chmod u+s $(DESTDIR)$(PREFIX)/bin/btop

#? Run setcap on btop for extended capabilities
setcap:
@printf "\033[1;97mFile: $(DESTDIR)$(PREFIX)/bin/btop\n"
@printf "\033[1;92mSetting capabilities...\033[0m\n"
@$(call white,File: $(DESTDIR)$(PREFIX)/bin/btop)
@$(call green,Setting capabilities,...)
@setcap "cap_perfmon=+ep cap_dac_read_search=+ep" $(DESTDIR)$(PREFIX)/bin/btop

# With 'rm -v' user will see what files (if any) got removed
uninstall:
@printf "\033[1;91mRemoving: \033[1;97m$(DESTDIR)$(PREFIX)/bin/btop\033[0m\n"
@$(call red,Removing: ,$(WHITE)$(DESTDIR)$(PREFIX)/bin/btop)
@rm -rfv $(DESTDIR)$(PREFIX)/bin/btop
@printf "\033[1;91mRemoving: \033[1;97m$(DESTDIR)$(PREFIX)/share/btop\033[0m\n"
@$(call red,Removing: ,$(WHITE)$(DESTDIR)$(PREFIX)/share/btop)
@rm -rfv $(DESTDIR)$(PREFIX)/share/btop
@printf "\033[1;91mRemoving: \033[1;97m$(DESTDIR)$(PREFIX)/share/applications/btop.desktop\033[0m\n"
@$(call red,Removing: ,$(WHITE)$(DESTDIR)$(PREFIX)/share/applications/btop.desktop)
@rm -rfv $(DESTDIR)$(PREFIX)/share/applications/btop.desktop
@printf "\033[1;91mRemoving: \033[1;97m$(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/btop.png\033[0m\n"
@$(call red,Removing: ,$(WHITE)$(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/btop.png)
@rm -rfv $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/btop.png
@printf "\033[1;91mRemoving: \033[1;97m$(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/btop.svg\033[0m\n"
@$(call red,Removing: ,$(WHITE)$(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/btop.svg)
@rm -rfv $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/btop.svg
@printf "\033[1;91mRemoving: \033[1;97m$(DESTDIR)$(PREFIX)/share/man/man1/btop.1\033[0m\n"
@$(call red,Removing: ,$(WHITE)$(DESTDIR)$(PREFIX)/share/man/man1/btop.1)
@rm -rfv $(DESTDIR)$(PREFIX)/share/man/man1/btop.1

#? Pull in dependency info for *existing* .o files
Expand All @@ -365,14 +418,19 @@ ifeq ($(GPU_SUPPORT)$(RSMI_STATIC),truetrue)
endif
.ONESHELL:
rocm_smi:
@printf "\n\033[1;92mBuilding ROCm SMI static library\033[37m...\033[0m\n"
@TSTAMP=$$(date +%s 2>/dev/null || echo "0")
@$(QUIET) || printf "\033[1;97mRunning CMake...\033[0m\n"
CXX=$(CXX) cmake -S $(ROCM_DIR) -B $(ROCM_BUILD_DIR) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DCMAKE_POLICY_DEFAULT_CMP0069=NEW -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DBUILD_SHARED_LIBS=OFF $(SUPPRESS) || { printf "\033[1;91mCMake failed, continuing build without statically linking ROCm SMI\033[37m...\033[0m\n"; exit 0; }
@$(QUIET) || printf "\n\033[1;97mBuilding and linking...\033[0m\n"
@cmake --build $(ROCM_BUILD_DIR) -j -t rocm_smi64 $(SUPPRESS) || { printf "\033[1;91mMake failed, continuing build without statically linking ROCm SMI\033[37m...\033[0m\n"; exit 0; }
@printf "\033[1;92m100$(P)\033[10D\033[5C-> \033[1;37m$(ROCM_BUILD_DIR)/rocm_smi/librocm_smi64.a \033[1;93m(\033[1;97m$$(du -ah $(ROCM_BUILD_DIR)/rocm_smi/librocm_smi64.a | cut -f1)iB\033[1;93m)\033[0m\n"
@printf "\033[1;92mROCm SMI build complete in \033[92m(\033[97m$$($(DATE_CMD) -d @$$(expr $$(date +%s 2>/dev/null || echo "0") - $(TIMESTAMP) 2>/dev/null) -u +%Mm:%Ss 2>/dev/null | sed 's/^00m://' || echo "unknown")\033[92m)\033[0m\n"
@$(call green,\nBuilding ROCm SMI static library,...)
@$(QUIET) || $(call white,Running CMake,...)
CXX=$(CXX) cmake -S $(ROCM_DIR) -B $(ROCM_BUILD_DIR) \
-DCMAKE_BUILD_TYPE=$(BUILD_TYPE) \
-DCMAKE_POLICY_DEFAULT_CMP0069=NEW \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
-DBUILD_SHARED_LIBS=OFF $(SUPPRESS) || \
{ $(call red,CMake failed$(COMMA) continuing build without statically linking ROCm SMI,...); exit 0; }
@$(QUIET) || $(call white,\nBuilding and linking,...)
@cmake --build $(ROCM_BUILD_DIR) -j -t rocm_smi64 $(SUPPRESS) || \
{ $(call red,Make failed$(COMMA) continuing build without statically linking ROCm SMI,...); exit 0; }
@$(call green,100% -> $(call file_with_size,$(ROCM_BUILD_DIR)/rocm_smi/librocm_smi64.a))
@$(call green,ROCm SMI build complete in ($(WHITE)$(call step_duration,$(TIMESTAMP))$(GREEN)))
@$(eval override LDFLAGS += $(ROCM_BUILD_DIR)/rocm_smi/librocm_smi64.a -DRSMI_STATIC) # TODO: this seems to execute every time, no matter if the compilation failed or succeeded
@$(eval override CXXFLAGS += -DRSMI_STATIC)
else
Expand All @@ -385,31 +443,31 @@ endif
btop: $(OBJECTS) | rocm_smi directories
@sleep 0.2 2>/dev/null || true
@TSTAMP=$$(date +%s 2>/dev/null || echo "0")
@$(QUIET) || printf "\n\033[1;92mLinking and optimizing binary\033[37m...\033[0m\n"
@$(QUIET) || $(call green,\nLinking and optimizing binary,...)
@$(VERBOSE) || printf "$(CXX) -o $(TARGETDIR)/btop $^ $(LDFLAGS)\n"
@$(CXX) -o $(TARGETDIR)/btop $^ $(LDFLAGS) || exit 1
@printf "\033[1;92m100$(P) -> \033[1;37m$(TARGETDIR)/btop \033[100D\033[38C\033[1;93m(\033[1;97m$$(du -ah $(TARGETDIR)/btop | cut -f1)iB\033[1;93m) \033[92m(\033[97m$$($(DATE_CMD) -d @$$(expr $$(date +%s 2>/dev/null || echo "0") - $${TSTAMP} 2>/dev/null) -u +%Mm:%Ss 2>/dev/null | sed 's/^00m://' || echo '')\033[92m)\033[0m\n"
@printf "\n\033[1;92mBuild complete in \033[92m(\033[97m$$($(DATE_CMD) -d @$$(expr $$(date +%s 2>/dev/null || echo "0") - $(TIMESTAMP) 2>/dev/null) -u +%Mm:%Ss 2>/dev/null | sed 's/^00m://' || echo "unknown")\033[92m)\033[0m\n"
@$(call green,100% -> $(call file_with_size,$(TARGETDIR)/btop,$(call CUR_LEFT,100)$(call CUR_RIGHT,38)) $(GREEN)($(WHITE)$(call step_duration,$$TSTAMP)$(GREEN)))
@$(call green,\nBuild complete in $(GREEN)($(WHITE)$(call step_duration,$(TIMESTAMP))$(GREEN)))

#? Compile
.ONESHELL:
$(BUILDDIR)/%.$(OBJEXT): $(SRCDIR)/%.$(SRCEXT) | rocm_smi directories config.h
@sleep 0.3 2>/dev/null || true
@TSTAMP=$$(date +%s 2>/dev/null || echo "0")
@$(QUIET) || printf "\033[1;97mCompiling $<\033[0m\n"
@$(QUIET) || $(call white,Compiling $<)
@$(VERBOSE) || printf "$(CXX) $(CXXFLAGS) $(INC) -MMD -c -o $@ $<\n"
@$(CXX) $(CXXFLAGS) $(INC) -MMD -c -o $@ $< || exit 1
@printf "\033[1;92m$$($(PROGRESS))$(P)\033[10D\033[5C-> \033[1;37m$@ \033[100D\033[38C\033[1;93m(\033[1;97m$$(du -ah $@ | cut -f1)iB\033[1;93m) \033[92m(\033[97m$$($(DATE_CMD) -d @$$(expr $$($(DATE_CMD) +%s 2>/dev/null || echo "0") - $${TSTAMP} 2>/dev/null) -u +%Mm:%Ss 2>/dev/null | sed 's/^00m://' || echo '')\033[92m)\033[0m\n"
@$(call green,$$($(PROGRESS))%$(call CUR_LEFT,10)$(call CUR_RIGHT,5)-> $(call file_with_size,$@,$(call CUR_LEFT,100)$(call CUR_RIGHT,38)) $(GREEN)($(WHITE)$(call step_duration,$$TSTAMP)$(GREEN)))

#? Compile intel_gpu_top C sources for Intel GPU support
.ONESHELL:
$(BUILDDIR)/%.c.o: $(SRCDIR)/$(PLATFORM_DIR)/intel_gpu_top/%.c | directories
@sleep 0.3 2>/dev/null || true
@TSTAMP=$$(date +%s 2>/dev/null || echo "0")
@$(QUIET) || printf "\033[1;97mCompiling $<\033[0m\n"
@$(QUIET) || $(call white,Compiling $<)
@$(VERBOSE) || printf "$(CC) $(INC) -c -o $@ $<\n"
@$(CC) $(INC) -w -c -o $@ $< || exit 1
@printf "\033[1;92m$$($(PROGRESS))$(P)\033[10D\033[5C-> \033[1;37m$@ \033[100D\033[38C\033[1;93m(\033[1;97m$$(du -ah $@ | cut -f1)iB\033[1;93m) \033[92m(\033[97m$$($(DATE_CMD) -d @$$(expr $$($(DATE_CMD) +%s 2>/dev/null || echo "0") - $${TSTAMP} 2>/dev/null) -u +%Mm:%Ss 2>/dev/null | sed 's/^00m://' || echo '')\033[92m)\033[0m\n"
@$(call green,$$($(PROGRESS))%$(call CUR_LEFT,10)$(call CUR_RIGHT,5)-> $(call file_with_size,$@,$(call CUR_LEFT,100)$(call CUR_RIGHT,38)) $(GREEN)($(WHITE)$(call step_duration,$$TSTAMP)$(GREEN)))


#? Non-File Targets
Expand Down
Loading
Loading