From 1c9577b9a95b921141ccf8e3d32b137fd1485b25 Mon Sep 17 00:00:00 2001 From: Vladimir Dubrovin <3proxy@3proxy.ru> Date: Fri, 10 Jul 2026 11:15:02 +0300 Subject: [PATCH] Add ucrt64 build support --- .github/workflows/build-win-msys2-ucrt64.yml | 68 ++++++++++++++++++++ Makefile.win | 6 +- 2 files changed, 71 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/build-win-msys2-ucrt64.yml diff --git a/.github/workflows/build-win-msys2-ucrt64.yml b/.github/workflows/build-win-msys2-ucrt64.yml new file mode 100644 index 0000000..6e366ec --- /dev/null +++ b/.github/workflows/build-win-msys2-ucrt64.yml @@ -0,0 +1,68 @@ +name: Build 3proxy with MSYS2 UCRT64 + +on: + workflow_dispatch: + +permissions: + contents: read + +jobs: + ci: + name: "msys2-ucrt64" + runs-on: windows-2022 + steps: + - uses: actions/checkout@v7 + - name: Setup MSYS2 (UCRT64) + uses: msys2/setup-msys2@v2 + with: + msystem: UCRT64 + update: true + install: >- + make + mingw-w64-ucrt-x86_64-pcre2 + mingw-w64-ucrt-x86_64-openssl + - name: set date + shell: pwsh + run: | + $NOW = Get-Date -Format "yyMMddHHmmss" + $RELEASE = Get-Content -Path "RELEASE" -Raw + echo "NOW=$NOW" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "RELEASE=$RELEASE" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + - name: make Windows (Makefile.win) + shell: msys2 {0} + run: make -f Makefile.win + - name: make dist dir + shell: cmd + run: | + mkdir dist + mkdir dist\3proxy + mkdir dist\3proxy\bin + mkdir dist\3proxy\cfg + mkdir dist\3proxy\cfg\sql + mkdir dist\3proxy\doc + mkdir dist\3proxy\doc\ru + mkdir dist\3proxy\doc\html + mkdir dist\3proxy\doc\html\plugins + mkdir dist\3proxy\doc\html\man5 + mkdir dist\3proxy\doc\html\man8 + mkdir dist\3proxy\doc\html\devel + copy bin\3proxy.exe dist\3proxy\bin\ + copy bin\*.dll dist\3proxy\bin\ + copy bin\3proxy_crypt.exe dist\3proxy\bin\ + copy cfg\*.* dist\3proxy\cfg\ + copy cfg\sql\*.* dist\3proxy\cfg\sql\ + copy doc\ru\*.* dist\3proxy\doc\ru\ + copy doc\html\*.* dist\3proxy\doc\html\ + copy doc\html\plugins\*.* dist\3proxy\doc\html\plugins\ + copy doc\html\man8\*.* dist\3proxy\doc\html\man8\ + copy doc\html\man5\*.* dist\3proxy\doc\html\man5\ + copy doc\html\devel\*.* dist\3proxy\doc\html\devel\ + copy copying dist\3proxy\ + copy authors dist\3proxy\ + copy README.md dist\3proxy\ + copy rus.3ps dist\3proxy\ + - name: Get artifact + uses: actions/upload-artifact@v7 + with: + name: "3proxy-${{ env.RELEASE }}-msys2-ucrt64" + path: dist/ diff --git a/Makefile.win b/Makefile.win index c603ac8..a2e5211 100644 --- a/Makefile.win +++ b/Makefile.win @@ -37,17 +37,17 @@ BUILDDATE := $(BUILDDATE) AFTERCLEAN = (find . -type f -name "*.o" -delete && find . -type f -name "*.res" -delete && find src/ -type f -name "Makefile.var" -delete && find bin/ -type f -executable -delete) || true ifndef OPENSSL_CHECK -OPENSSL_CHECK = $(shell echo "\#include \\n int main(){return 0;}" | tr -d '\\\\' | cc -x c $(CFLAGS) $(LDFLAGS) -l crypto -l ssl -o testssl - 2>/dev/null && rm testssl && echo true||echo false) +OPENSSL_CHECK = $(shell echo "\#include \\n int main(){return 0;}" | tr -d '\\\\' | $(CC) -x c $(CFLAGS) $(LDFLAGS) -l crypto -l ssl -o testssl - 2>/dev/null && rm testssl && echo true||echo false) ifeq ($(OPENSSL_CHECK), true) LIBS += -l crypto -l ssl CFLAGS += -DWITH_SSL SSL_OBJS = ssllib$(OBJSUFFICS) ssl$(OBJSUFFICS) endif -PAM_CHECK = $(shell echo "\#include \\n int main(){return 0;}" | tr -d '\\\\' | cc -x c $(CFLAGS) $(LDFLAGS) -l pam -o testpam - 2>/dev/null && rm testpam && echo true||echo false) +PAM_CHECK = $(shell echo "\#include \\n int main(){return 0;}" | tr -d '\\\\' | $(CC) -x c $(CFLAGS) $(LDFLAGS) -l pam -o testpam - 2>/dev/null && rm testpam && echo true||echo false) ifeq ($(PAM_CHECK), true) PLUGINS += PamAuth endif -PCRE_CHECK = $(shell echo "\#define PCRE2_CODE_UNIT_WIDTH 8\\n#include \\n int main(){return 0;}" | tr -d '\\\\' | cc -x c $(CFLAGS) $(LDFLAGS) -lpcre2-8 -o testpcre - 2>/dev/null && rm testpcre && echo true||echo false) +PCRE_CHECK = $(shell echo "\#define PCRE2_CODE_UNIT_WIDTH 8\\n#include \\n int main(){return 0;}" | tr -d '\\\\' | $(CC) -x c $(CFLAGS) $(LDFLAGS) -lpcre2-8 -o testpcre - 2>/dev/null && rm testpcre && echo true||echo false) ifeq ($(PCRE_CHECK), true) CFLAGS += -DWITH_PCRE PCRE_OBJS = pcre$(OBJSUFFICS)