Refresh Unix makefile dependencies

This commit is contained in:
vczh
2026-07-14 18:28:55 -07:00
parent 558176f46b
commit c400b30306
3 changed files with 31 additions and 23 deletions
@@ -1,3 +0,0 @@
#!/bin/bash
echo `clang++ --std=c++20 $1 -MM $2` | sed -E -e 's%\\[[:space:]]*%%g'
+21 -13
View File
@@ -3,23 +3,31 @@ USE_GCC?=NO
# add "--stdlib=libc++" after bug #808086 is fixed
CPP_DEPENDENCY_OPTIONS=-MMD -MP -MF $(@:.o=.d) -MT $@
CPP_PLATFORM_NAME=$(shell uname -s)
CPP_PLATFORM_COMPILE_OPTIONS=
CPP_PLATFORM_LINK_OPTIONS=
ifeq ($(shell uname -s),Darwin)
CPP_PLATFORM_LINK_OPTIONS=-framework CoreFoundation
ifeq ($(CPP_PLATFORM_NAME),Darwin)
CPP_PLATFORM_COMPILE_OPTIONS=-fblocks
CPP_PLATFORM_LINK_OPTIONS=-framework CoreFoundation -framework Network
else ifeq ($(CPP_PLATFORM_NAME),Linux)
CPP_PLATFORM_LINK_OPTIONS=-luring
endif
-include $(wildcard ./Obj/*.d)
ifeq ($(USE_GCC), YES)
CPP_LINK=g++ -std=c++20 -g -pthread -o $@ $^ $(CPP_LINK_OPTIONS) $(CPP_PLATFORM_LINK_OPTIONS)
else ifeq ($(COVERAGE),NO)
CPP_LINK=clang++ -std=c++20 -pthread -g $(CPP_COMPILE_OPTIONS) -o $@ $^ $(CPP_LINK_OPTIONS) $(CPP_PLATFORM_LINK_OPTIONS)
else
CPP_LINK=clang++ -std=c++20 -pthread -g --coverage -o $@ $^ $(CPP_LINK_OPTIONS) $(CPP_PLATFORM_LINK_OPTIONS)
endif
ifeq ($(USE_GCC), YES)
CPP_LINK=g++ -std=c++20 -g -pthread $(CPP_LINK_OPTIONS) $(CPP_PLATFORM_LINK_OPTIONS) -o $@ $^
CPP_COMPILE=g++ -std=c++20 -g $(CPP_COMPILE_OPTIONS) $(CPP_PLATFORM_COMPILE_OPTIONS) $(CPP_DEPENDENCY_OPTIONS) -o $@ -c $<
else ifeq ($(COVERAGE),NO)
CPP_LINK=clang++ -std=c++20 -pthread -g $(CPP_COMPILE_OPTIONS) $(CPP_LINK_OPTIONS) $(CPP_PLATFORM_LINK_OPTIONS) -o $@ $^
CPP_COMPILE=clang++ -std=c++20 -g $(CPP_COMPILE_OPTIONS) $(CPP_PLATFORM_COMPILE_OPTIONS) $(CPP_DEPENDENCY_OPTIONS) -o $@ -c $<
else
CPP_LINK=clang++ -std=c++20 -pthread -g --coverage $(CPP_LINK_OPTIONS) $(CPP_PLATFORM_LINK_OPTIONS) -o $@ $^
endif
ifeq ($(USE_GCC), YES)
CPP_COMPILE=g++ -std=c++20 -g $(CPP_COMPILE_OPTIONS) -o $@ -c $<
else ifeq ($(COVERAGE),NO)
CPP_COMPILE=clang++ -std=c++20 -g $(CPP_COMPILE_OPTIONS) -o $@ -c $<
else
CPP_COMPILE=clang++ -std=c++20 -g -fprofile-arcs -ftest-coverage $(CPP_COMPILE_OPTIONS) -o $@ -c $<
CPP_COMPILE=clang++ -std=c++20 -g -fprofile-arcs -ftest-coverage $(CPP_COMPILE_OPTIONS) $(CPP_PLATFORM_COMPILE_OPTIONS) $(CPP_DEPENDENCY_OPTIONS) -o $@ -c $<
endif
+10 -7
View File
@@ -45,11 +45,12 @@ for CPP_ADD in "${CPP_ADDS[@]}"; do
done
CPP_FILE_LIST=("${CPP_FILES[@]}")
printf -v CPP_FILES "%s\n" "${CPP_FILE_LIST[@]}"
CPP_FILES=${CPP_FILES%?}
O_FILES=`echo "${CPP_FILES}" | sed -E -e 's%([^/]*/)*([^/]+).cpp%./Obj/\2.o%g'`
O_FILES=`echo ${O_FILES}`
O_FILE_LIST=()
for CPP_FILE in "${CPP_FILE_LIST[@]}"; do
O_FILE="$(printf "%s\n" "${CPP_FILE}" | sed -E -e 's%([^/]*/)*([^/]+).cpp%./Obj/\2.o%g')"
O_FILE_LIST+=("${O_FILE}")
done
O_FILES="${O_FILE_LIST[*]}"
printf "%s\n" "${CPP_FILE_LIST[@]}" > vmake.txt
#>
@@ -84,8 +85,10 @@ all:pre-build <#= ${TARGETS[@]} #>
<#= $CPP_TARGET #>:<#= ${O_FILES} #>
$(CPP_LINK)
<#echo "${CPP_FILES}" | while read -r CPP_FILE; do#>
<#for CPP_FILE_INDEX in "${!CPP_FILE_LIST[@]}"; do#>
<#CPP_FILE="${CPP_FILE_LIST[$CPP_FILE_INDEX]}"#>
<#O_FILE="${O_FILE_LIST[$CPP_FILE_INDEX]}"#>
./Obj/<#= `vutil_CppDependencies "${CPP_COMPILE_OPTIONS}" ${CPP_FILE}` #>
<#= ${O_FILE} #>: <#= ${CPP_FILE} #>
$(CPP_COMPILE)
<#done#>