From ecf6121592e9ffa0b2cd220a0de675b64b163000 Mon Sep 17 00:00:00 2001
From: Eli Schwartz <eschwartz93@gmail.com>
Date: Sun, 17 Mar 2024 18:12:43 -0400
Subject: [PATCH] reroll patch to Makefile for system integration

Don't link libdl into wfuse as it's unnecessary, use system bzip2, respect user
CFLAGS, use pkgconfig to determine ncurses libs, and use verbose build output.
---
 Makefile              | 82 ++++++++++++++++---------------------------
 test-libwbfs/Makefile | 13 ++-----
 2 files changed, 32 insertions(+), 63 deletions(-)

diff --git a/Makefile b/Makefile
index adaa48a..433578a 100644
--- a/Makefile
+++ b/Makefile
@@ -111,11 +111,6 @@ VERSION		:= $(VERSION_NUM)$(BETA_SUFFIX)
 #-------------------------------------------------------------------------------
 # compiler settings
 
-PRE		?= 
-CC		= $(PRE)gcc
-CPP		= $(PRE)g++
-STRIP		= $(PRE)strip
-
 #-------------------------------------------------------------------------------
 # files
 
@@ -171,7 +166,7 @@ endif
 TOPT_wit	:= $(OPT_STATIC)
 TOPT_wwt	:= $(OPT_STATIC)
 TOPT_wdf	:= $(OPT_STATIC)
-TOPT_wfuse	:= -lfuse -lpthread -ldl
+TOPT_wfuse	:= -lfuse -lpthread
 
 #TOPT_ALL	:= $(TOPT_wit) $(TOPT_wwt) $(TOPT_wdf) $(TOPT_wfuse)
 
@@ -206,8 +201,8 @@ else
 endif
 
 # lib summary
-LIB_LIST	+= libbz2 lzma
-LIB_OBJECTS	+= $(LIBBZ2_OBJ) $(LZMA_OBJ)
+LIB_LIST	+= lzma
+LIB_OBJECTS	+= $(LZMA_OBJ)
 RM_FILES	+= $(foreach l,$(LIB_LIST),src/$(l)/*.{d,o})
 
 
@@ -297,10 +292,10 @@ DEFINES1	+= -D_7ZIP_ST=1		# disable 7zip multi threading
 DEFINES1	+= -D_LZMA_PROB32=1	# LZMA option
 DEFINES		=  $(strip $(DEFINES1) $(MODE) $(XDEF))
 
-CFLAGS		+= -std=gnu99 -fomit-frame-pointer -fno-strict-aliasing -funroll-loops
+CFLAGS		+= -std=gnu99 -fno-strict-aliasing
 CFLAGS		+= -Wall -Wno-parentheses -Wno-unused-function
 #CFLAGS		+= -O3 -Isrc/libwbfs -Isrc/lzma -Isrc -I$(UI) -I. -Iwork
-CFLAGS		+= -O3 -Isrc/libwbfs -Isrc -I$(UI) -I. -Iwork
+CFLAGS		+= -Isrc/libwbfs -Isrc -I$(UI) -I. -Iwork
 
 ifeq ($(SYSTEM_LINUX),1)
   LIBS		+= -ltinfo
@@ -313,8 +308,6 @@ endif
 
 ifeq ($(SYSTEM),mac)
   CFLAGS	+= -I/usr/local/include
-else
-  LDFLAGS	+= -static-libgcc
 endif
 
 ifeq ($(shell expr $(GCC_VERSION) '>=' 7.0 ),1)
@@ -334,7 +327,7 @@ LDFLAGS		:= $(strip $(LDFLAGS))
 ifeq ($(HAVE_ZLIB),1)
  LIBS		+= -lz
 endif
-LIBS		+= -lm -lncurses $(XLIBS)
+LIBS		+= -lm $(shell $(PKG_CONFIG) --libs ncurses) -lbz2 $(XLIBS)
 
 ifeq ($(HAVE_SHA),1)
  ifeq ($(SYSTEM_LINUX),1)
@@ -402,60 +395,51 @@ default_rule: all
 # general rules
 
 $(ALL_TOOLS_X): %: %.o $(ALL_OBJECTS) $(TOBJ_ALL) Makefile | $(HELPER_TOOLS)
-	@printf "$(LOGFORMAT_TOOL)" tool "$@" "$(MODE) $(TOPT_$@) $(TOBJ_$@)"
-	@$(CC) $(CFLAGS) $(DEFINES) $(LDFLAGS) $@.o \
+	$(CC) $(CFLAGS) $(DEFINES) $(LDFLAGS) $@.o \
 		$(ALL_OBJECTS) $(TOBJ_$@) $(LIBS) $(TOPT_$@) -o $@
-	@if test -f $@.exe; then $(STRIP) $@.exe; else $(STRIP) $@; fi
 
-	@mkdir -p bin/$(SYSTEM2) bin/$(SYSTEM2)/debug
-	@if test -s $(MODE_FILE) && grep -Fq -e -DDEBUG $(MODE_FILE); \
+	mkdir -p bin/$(SYSTEM2) bin/$(SYSTEM2)/debug
+	if test -s $(MODE_FILE) && grep -Fq -e -DDEBUG $(MODE_FILE); \
 		then cp -p $@ bin/$(SYSTEM2)/debug/; \
 		else cp -p $@ bin/; cp -p $@ bin/$(SYSTEM2)/; fi
 
 #--------------------------
 
 $(HELPER_TOOLS): %: %.o $(ALL_OBJECTS) $(UI_TABS) Makefile
-	@printf "$(LOGFORMAT_TOOL)" helper "$@ $(TOBJ_$@)" "$(MODE)"
-	@$(CC) $(CFLAGS) $(DEFINES) $(LDFLAGS) $@.o \
+	$(CC) $(CFLAGS) $(DEFINES) $(LDFLAGS) $@.o \
 		$(ALL_OBJECTS) $(TOBJ_$@) $(LIBS) -o $@
 
 #--------------------------
 
 $(WDF_LINKS): wdf
-	@printf "$(LOGFORMAT_INST)" "link" "wdf -> $@" ""
-	@ln -f wdf "$@"
+	ln -f wdf "$@"
 
 #--------------------------
 
 $(UI_OBJECTS): %.o: %.c ui-%.c ui-%.h version.h Makefile
-	@printf "$(LOGFORMAT_CC)" +object "$@" "$(MODE)"
-	@$(CC) $(CFLAGS) $(DEPFLAGS) $(DEFINES) -c $< -o $@
+	$(CC) $(CFLAGS) $(DEPFLAGS) $(DEFINES) -c $< -o $@
 
 #--------------------------
 
 $(C_OBJECTS): %.o: %.c version.h Makefile $(TEXT_FILES)
-	@printf "$(LOGFORMAT_CC)" object "$@" "$(MODE)"
-	@$(CC) $(CFLAGS) $(DEPFLAGS) $(DEFINES) -c $< -o $@
+	$(CC) $(CFLAGS) $(DEPFLAGS) $(DEFINES) -c $< -o $@
 
 #--------------------------
 
 $(ASM_OBJECTS): %.o: %.S Makefile
-	@printf "$(LOGFORMAT_CC)" asm "$@" "$(MODE)"
-	@$(CC) $(CFLAGS) $(DEPFLAGS) $(DEFINES) -c $< -o $@
+	$(CC) $(CFLAGS) $(DEPFLAGS) $(DEFINES) -c $< -o $@
 
 #--------------------------
 
 $(SETUP_FILES): templates.sed $(SETUP_DIR)/$@
-	@printf "$(LOGFORMAT)" create "$@" ""
-	@chmod 775 $(GEN_TEMPLATE)
-	@$(GEN_TEMPLATE) $@
+	chmod 775 $(GEN_TEMPLATE)
+	$(GEN_TEMPLATE) $@
 
 #--------------------------
 
 $(TEXT_FILES): $(GEN_TEXT_FILE) $(TEXT_DIR)/$@
-	@printf "$(LOGFORMAT)" text "$@" ""
-	@chmod 775 $(GEN_TEXT_FILE)
-	@$(GEN_TEXT_FILE) $(TEXT_DIR) $@
+	chmod 775 $(GEN_TEXT_FILE)
+	$(GEN_TEXT_FILE) $(TEXT_DIR) $@
 
 #--------------------------
 
@@ -465,20 +449,17 @@ $(UI_FILES): gen-ui.c ui.h $(UI_TABS) | gen-ui
 
 .PHONY : ui
 ui : gen-ui
-	@printf "$(LOGFORMAT)" run gen-ui ""
-	@./gen-ui
+	./gen-ui
 
 #
 ###############################################################################
 # lib specific rules
 
 $(LIBBZ2_OBJ): %.o: %.c Makefile
-	@printf "$(LOGFORMAT_CC)" object "$(subst src/libbz2/,,$@)" "$(MODE) [libbz2]"
-	@$(CC) $(CFLAGS) $(DEPFLAGS) $(BZIP2_FLAGS) $(DEFINES) -c $< -o $@
+	$(CC) $(CFLAGS) $(DEPFLAGS) $(BZIP2_FLAGS) $(DEFINES) -c $< -o $@
 
 $(LZMA_OBJ): %.o: %.c Makefile
-	@printf "$(LOGFORMAT_CC)" object "$(subst src/lzma/,,$@)" "$(MODE) [lzma]"
-	@$(CC) $(CFLAGS) $(DEPFLAGS) $(LZMA_FLAGS) $(DEFINES) -c $< -o $@
+	$(CC) $(CFLAGS) $(DEPFLAGS) $(LZMA_FLAGS) $(DEFINES) -c $< -o $@
 
 #
 ###############################################################################
@@ -670,9 +651,8 @@ doc: $(MAIN_TOOLS) templates.sed gen-doc
 
 .PHONY : gen-doc
 gen-doc:
-	@printf "$(LOGFORMAT)" create documentation ""
-	@chmod ug+x $(GEN_TEMPLATE)
-	@$(GEN_TEMPLATE)
+	chmod ug+x $(GEN_TEMPLATE)
+	$(GEN_TEMPLATE)
 
 #
 #--------------------------
@@ -778,7 +758,7 @@ old:
 
 .PHONY : predef
 predef:
-	@gcc -E -dM none.c | sort
+	@$(CC) -E -dM none.c | sort
 
 #
 #--------------------------
@@ -792,8 +772,7 @@ $(SUB_PROJECTS):
 #--------------------------
 
 templates.sed: Makefile
-	@printf "$(LOGFORMAT)" create templates.sed ""
-	@printf '%s\n' \
+	printf '%s\n' \
 		'/^~/ d;' \
 		's|@.@@@|$(VERSION_NUM)|g;' \
 		's|@@@@-@@-@@|$(DATE)|g;' \
@@ -859,13 +838,12 @@ templates.sed: Makefile
 
 .PHONY : test
 test:
-	@printf "$(LOGFORMAT)" enable test "-> define -DTEST"
-	@rm -f *.o $(ALL_TOOLS_X)
-	@echo "-DTEST" >>$(MODE_FILE)
-	@sort $(MODE_FILE) | uniq > $(MODE_FILE).tmp
+	rm -f *.o $(ALL_TOOLS_X)
+	echo "-DTEST" >>$(MODE_FILE)
+	sort $(MODE_FILE) | uniq > $(MODE_FILE).tmp
 # 2 steps to bypass a cygwin mv failure
-	@cp $(MODE_FILE).tmp $(MODE_FILE)
-	@rm -f $(MODE_FILE).tmp
+	cp $(MODE_FILE).tmp $(MODE_FILE)
+	rm -f $(MODE_FILE).tmp
 
 #
 #--------------------------
diff --git a/test-libwbfs/Makefile b/test-libwbfs/Makefile
index 6e937fc..9c0f0f8 100644
--- a/test-libwbfs/Makefile
+++ b/test-libwbfs/Makefile
@@ -7,11 +7,6 @@
 
 SHELL			= /bin/bash
 
-PRE		?= 
-CC		= $(PRE)gcc
-CPP		= $(PRE)g++
-STRIP		= $(PRE)strip
-
 #-------------------------------------------------------------------------------
 # files
 
@@ -46,18 +41,14 @@ VPATH		+= ../src/libwbfs
 DEFINES		=  -DLARGE_FILES -D_FILE_OFFSET_BITS=64 $(XDEF)
 DEFINES		:= $(strip $(DEFINES))
 
-CFLAGS		=  -fomit-frame-pointer -fno-strict-aliasing
+CFLAGS		+= -fno-strict-aliasing
 CFLAGS		+= -Wall -Wno-parentheses -Wno-unused-function
-CFLAGS		+= -O3 -I../src/libwbfs -I.
+CFLAGS		+= -I../src/libwbfs -I.
 CFLAGS		+= $(XFLAGS)
 CFLAGS		:= $(strip $(CFLAGS))
 
 DEPFLAGS	+= -MMD
 
-LDFLAGS		+= -static-libgcc
-#LDFLAGS	+= -static
-LDFLAGS		:= $(strip $(LDFLAGS))
-
 LIBS		+= $(XLIBS)
 
 #
-- 
2.43.2