From ecf6121592e9ffa0b2cd220a0de675b64b163000 Mon Sep 17 00:00:00 2001 From: Eli Schwartz 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