diff --git a/.github/workflows/build-watcom.yml b/.github/workflows/build-watcom.yml new file mode 100644 index 0000000..9b294a4 --- /dev/null +++ b/.github/workflows/build-watcom.yml @@ -0,0 +1,71 @@ +name: Build Win32 3proxy-lite with Watcom + +on: + push: + branches: [ "master" ] + paths: [ 'RELEASE', '.github/workflows/build-watcom.yml' ] + +jobs: + ci: + name: "${{ matrix.target }}" + strategy: + matrix: + target: + - windows-2022 + runs-on: ${{ matrix.target }} + steps: + - uses: actions/checkout@v4 +# - name: configure +# run: ./configure + - name: Setup Open Watcom + uses: open-watcom/setup-watcom@v0 + - name: set date + run: | + $NOW = Get-Date -Format "yyMMddHHmmss" + echo "now: $NOW" + $RELEASE = Get-Content -Path "RELEASE" -Raw + echo "release: $RELEASE" + echo "NOW=$NOW" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "RELEASE=$RELEASE" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "VERSION=VERSION=`"$RELEASE`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "BUILDDATE=BUILDDATE=`"$NOW`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + - name: make Watcom + shell: cmd + run: | + echo "volatile char VerSion[]=^"3APA3A-3proxy-Internal-Build: 3proxy-%RELEASE%%-%NOW%\r\nCode certificate: https://3proxy.org/3proxy.cer\r\n^";" >>src/3proxy.c + nmake /F Makefile.watcom + - 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\man3 + mkdir dist\3proxy\doc\html\man8 + mkdir dist\3proxy\doc\devel + copy bin\3proxy.exe dist\3proxy\bin\ + copy bin\*.dll dist\3proxy\bin\ + copy bin\mycrypt.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\man3\*.* dist\3proxy\doc\html\man3\ + copy doc\devel\*.rtf dist\3proxy\doc\devel\ + copy copying dist\3proxy\ + copy authors dist\3proxy\ + copy README dist\3proxy\ + copy rus.3ps dist\3proxy\ + - name: Get artifact + uses: actions/upload-artifact@v4 + with: + name: "3proxy-${{ env.RELEASE }}-lite" + path: dist/ diff --git a/.github/workflows/build-win32.yml b/.github/workflows/build-win32.yml new file mode 100644 index 0000000..6db83ae --- /dev/null +++ b/.github/workflows/build-win32.yml @@ -0,0 +1,79 @@ +name: Build Win32 3proxy with MSVC + +on: + push: + branches: [ "master" ] + paths: [ 'RELEASE', '.github/workflows/build-win32.yml' ] + +jobs: + ci: + name: "${{ matrix.target }}" + strategy: + matrix: + target: + - windows-2022 + runs-on: ${{ matrix.target }} + steps: + - uses: actions/checkout@v4 +# - name: configure +# run: ./configure + - name: set date + run: | + $NOW = Get-Date -Format "yyMMddHHmmss" + echo "now: $NOW" + $RELEASE = Get-Content -Path "RELEASE" -Raw + echo "release: $RELEASE" + echo "NOW=$NOW" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "RELEASE=$RELEASE" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "VERSION=VERSION=`"$RELEASE`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "BUILDDATE=BUILDDATE=`"$NOW`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + - name: install packages + run: vcpkg install pcre2:x86-windows-static openssl:x86-windows-static + - name: Add msbuild to PATH + uses: microsoft/setup-msbuild@v3 + - name: make Windows MSVC + if: ${{ startsWith(matrix.target, 'windows') }} + shell: cmd + run: | + call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + D: + cd "D:/a/3proxy/3proxy" + set "LIB=%LIB%;c:/vcpkg/installed/x86-windows-static/lib" + set "INCLUDE=%INCLUDE%;c:/vcpkg/installed/x86-windows-static/include" + echo "volatile char VerSion[]=^"3APA3A-3proxy-Internal-Build: 3proxy-%RELEASE%%-%NOW%\r\nCode certificate: https://3proxy.org/3proxy.cer\r\n^";" >>src/3proxy.c + nmake /F Makefile.msvc + - 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\man3 + mkdir dist\3proxy\doc\html\man8 + mkdir dist\3proxy\doc\devel + copy bin\3proxy.exe dist\3proxy\bin\ + copy bin\*.dll dist\3proxy\bin\ + copy bin\mycrypt.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\man3\*.* dist\3proxy\doc\html\man3\ + copy doc\devel\*.rtf dist\3proxy\doc\devel\ + copy copying dist\3proxy\ + copy authors dist\3proxy\ + copy README dist\3proxy\ + copy rus.3ps dist\3proxy\ + - name: Get artifact + uses: actions/upload-artifact@v4 + with: + name: "3proxy-${{ env.RELEASE }}" + path: dist/ diff --git a/.github/workflows/build-win64.yml b/.github/workflows/build-win64.yml new file mode 100644 index 0000000..f49d1af --- /dev/null +++ b/.github/workflows/build-win64.yml @@ -0,0 +1,79 @@ +name: Build Win64 3proxy with MSVC + +on: + push: + branches: [ "master" ] + paths: [ 'RELEASE', '.github/workflows/build-win64.yml' ] + +jobs: + ci: + name: "${{ matrix.target }}" + strategy: + matrix: + target: + - windows-2022 + runs-on: ${{ matrix.target }} + steps: + - uses: actions/checkout@v4 +# - name: configure +# run: ./configure + - name: set date + run: | + $NOW = Get-Date -Format "yyMMddHHmmss" + echo "now: $NOW" + $RELEASE = Get-Content -Path "RELEASE" -Raw + echo "release: $RELEASE" + echo "NOW=$NOW" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "RELEASE=$RELEASE" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "VERSION=VERSION=`"$RELEASE`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "BUILDDATE=BUILDDATE=`"$NOW`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + - name: install packages + run: vcpkg install pcre2:x64-windows-static openssl:x64-windows-static + - name: Add msbuild to PATH + uses: microsoft/setup-msbuild@v3 + - name: make Windows MSVC + if: ${{ startsWith(matrix.target, 'windows') }} + shell: cmd + run: | + call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + D: + cd "D:/a/3proxy/3proxy" + set "LIB=%LIB%;c:/vcpkg/installed/x64-windows-static/lib" + set "INCLUDE=%INCLUDE%;c:/vcpkg/installed/x64-windows-static/include" + echo "volatile char VerSion[]=^"3APA3A-3proxy-Internal-Build: 3proxy-%RELEASE%%-%NOW%\r\nCode certificate: https://3proxy.org/3proxy.cer\r\n^";" >>src/3proxy.c + nmake /F Makefile.msvc + - name: make dist dir + shell: cmd + run: | + mkdir dist + mkdir dist\3proxy + mkdir dist\3proxy\bin64 + 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\man3 + mkdir dist\3proxy\doc\html\man8 + mkdir dist\3proxy\doc\devel + copy bin\3proxy.exe dist\3proxy\bin64\ + copy bin\*.dll dist\3proxy\bin64\ + copy bin\mycrypt.exe dist\3proxy\bin64\ + 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\man3\*.* dist\3proxy\doc\html\man3\ + copy doc\devel\*.rtf dist\3proxy\doc\devel\ + copy copying dist\3proxy\ + copy authors dist\3proxy\ + copy README dist\3proxy\ + copy rus.3ps dist\3proxy\ + - name: Get artifact + uses: actions/upload-artifact@v4 + with: + name: "3proxy-${{ env.RELEASE }}-x64" + path: dist/ diff --git a/.github/workflows/build-winarm64.yml b/.github/workflows/build-winarm64.yml new file mode 100644 index 0000000..2a27f28 --- /dev/null +++ b/.github/workflows/build-winarm64.yml @@ -0,0 +1,79 @@ +name: Build Win-arm64 3proxy with MSVC + +on: + push: + branches: [ "master" ] + paths: [ 'RELEASE', '.github/workflows/build-winarm64.yml' ] + +jobs: + ci: + name: "${{ matrix.target }}" + strategy: + matrix: + target: + - windows-2022 + runs-on: ${{ matrix.target }} + steps: + - uses: actions/checkout@v4 +# - name: configure +# run: ./configure + - name: set date + run: | + $NOW = Get-Date -Format "yyMMddHHmmss" + echo "now: $NOW" + $RELEASE = Get-Content -Path "RELEASE" -Raw + echo "release: $RELEASE" + echo "NOW=$NOW" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "RELEASE=$RELEASE" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "VERSION=VERSION=`"$RELEASE`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "BUILDDATE=BUILDDATE=`"$NOW`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + - name: install packages + run: vcpkg install pcre2:arm64-windows-static openssl:arm64-windows-static + - name: Add msbuild to PATH + uses: microsoft/setup-msbuild@v3 + - name: make Windows MSVC + if: ${{ startsWith(matrix.target, 'windows') }} + shell: cmd + run: | + call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsx86_arm64.bat" + D: + cd "D:/a/3proxy/3proxy" + set "LIB=%LIB%;c:/vcpkg/installed/arm64-windows-static/lib" + set "INCLUDE=%INCLUDE%;c:/vcpkg/installed/arm64-windows-static/include" + echo "volatile char VerSion[]=^"3APA3A-3proxy-Internal-Build: 3proxy-%RELEASE%%-%NOW%\r\nCode certificate: https://3proxy.org/3proxy.cer\r\n^";" >>src/3proxy.c + nmake /F Makefile.msvc + - name: make dist dir + shell: cmd + run: | + mkdir dist + mkdir dist\3proxy + mkdir dist\3proxy\bin64 + 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\man3 + mkdir dist\3proxy\doc\html\man8 + mkdir dist\3proxy\doc\devel + copy bin\3proxy.exe dist\3proxy\bin64\ + copy bin\*.dll dist\3proxy\bin64\ + copy bin\mycrypt.exe dist\3proxy\bin64\ + 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\man3\*.* dist\3proxy\doc\html\man3\ + copy doc\devel\*.rtf dist\3proxy\doc\devel\ + copy copying dist\3proxy\ + copy authors dist\3proxy\ + copy README dist\3proxy\ + copy rus.3ps dist\3proxy\ + - name: Get artifact + uses: actions/upload-artifact@v4 + with: + name: "3proxy-${{ env.RELEASE }}-arm64" + path: dist/ diff --git a/.github/workflows/c-cpp-Linux.yml b/.github/workflows/c-cpp-Linux.yml new file mode 100644 index 0000000..a950e81 --- /dev/null +++ b/.github/workflows/c-cpp-Linux.yml @@ -0,0 +1,34 @@ +name: C/C++ CI Linux + +on: + push: + branches: [ "master" ] + paths: [ '**.c', '**.h', 'Makefile.**', '.github/configs', '.github/workflows/c-cpp-Linux.yml' ] + pull_request: + branches: [ "master" ] + paths: [ '**.c', '**.h', 'Makefile.**', '.github/configs', '.github/workflows/c-cpp-Linux.yml' ] + +jobs: + ci: + name: "${{ matrix.target }}" + strategy: + matrix: + target: + - ubuntu-latest + - ubuntu-24.04-arm + runs-on: ${{ matrix.target }} + steps: + - uses: actions/checkout@v4 +# - name: configure +# run: ./configure + - name: Linux libraries + if: ${{ startsWith(matrix.target, 'ubuntu') }} + run: sudo apt install libssl-dev libpam-dev libpcre2-dev + - name: make + run: make -f Makefile.Linux + - name: mkdir + run: mkdir ~/3proxy + - name: make install + run: make -f Makefile.Linux DESTDIR=~/3proxy install + - name: make clean Linux + run: make -f Makefile.Linux clean diff --git a/.github/workflows/c-cpp-MacOS.yml b/.github/workflows/c-cpp-MacOS.yml new file mode 100644 index 0000000..b7f026b --- /dev/null +++ b/.github/workflows/c-cpp-MacOS.yml @@ -0,0 +1,31 @@ +name: C/C++ CI MacOS + +on: + push: + branches: [ "master" ] + paths: [ '**.c', '**.h', 'Makefile.**', '.github/configs', '.github/workflows/c-cpp-MacOS.yml' ] + pull_request: + branches: [ "master" ] + paths: [ '**.c', '**.h', 'Makefile.**', '.github/configs', '.github/workflows/c-cpp-MacOS.yml' ] + +jobs: + ci: + name: "${{ matrix.target }}" + strategy: + matrix: + target: + - macos-15 + runs-on: ${{ matrix.target }} + steps: + - uses: actions/checkout@v4 +# - name: configure +# run: ./configure + - name: Mac libraries + run: brew install pcre2 + - name: make MacOS + run: make -f Makefile.FreeBSD + env: + LDFLAGS: "-L/usr/local/lib -L/opt/homebrew/lib -L/opt/homebrew/opt/openssl/lib" + CFLAGS: "-I/usr/local/include -I/opt/homebrew/include -I/usr/local/opt/openssl/include -I/opt/homebrew/opt/openssl/include" + - name: make clean MacOS + run: make -f Makefile.FreeBSD clean diff --git a/.github/workflows/c-cpp-Windows.yml b/.github/workflows/c-cpp-Windows.yml new file mode 100644 index 0000000..0cc183a --- /dev/null +++ b/.github/workflows/c-cpp-Windows.yml @@ -0,0 +1,41 @@ +name: C/C++ CI Windows + +on: + push: + branches: [ "master" ] + paths: [ '**.c', '**.h', 'Makefile.**', '.github/configs', '.github/workflows/c-cpp-Windows.yml' ] + pull_request: + branches: [ "master" ] + paths: [ '**.c', '**.h', 'Makefile.**', '.github/configs', '.github/workflows/c-cpp-Windows.yml' ] + +jobs: + ci: + name: "${{ matrix.target }}" + strategy: + matrix: + target: + - windows-2022 + runs-on: ${{ matrix.target }} + steps: + - uses: actions/checkout@v4 + - name: install Windows libraries + run: vcpkg install pcre2:x64-windows && c:\msys64\usr\bin\pacman.exe -S --noconfirm mingw-w64-x86_64-pcre2 mingw-w64-x86_64-openssl + - name: make Windows + run: make -f Makefile.win + env: + LDFLAGS: '-L "c:/msys64/mingw64/lib"' + CFLAGS: '-I "c:/msys64/mingw64/include"' + - name: make clean Windows + run: make -f Makefile.win clean + - name: Add msbuild to PATH + uses: microsoft/setup-msbuild@v3 + - name: make Windows MSVC + shell: cmd + run: | + call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + D: + cd "D:/a/3proxy/3proxy" + set "LIB=%LIB%;c:/program files/openssl/lib/VC/x64/MT;c:/vcpkg/installed/x64-windows/lib" + set "INCLUDE=%INCLUDE%;c:/program files/openssl/include;c:/vcpkg/installed/x64-windows/include" + nmake /F Makefile.msvc + nmake /F Makefile.msvc clean diff --git a/.github/workflows/c-cpp-cmake.yml b/.github/workflows/c-cpp-cmake.yml new file mode 100644 index 0000000..b3dcd7b --- /dev/null +++ b/.github/workflows/c-cpp-cmake.yml @@ -0,0 +1,57 @@ +name: C/C++ CI cmake + +on: + push: + branches: [ "master" ] + paths: [ '**.c', '**.h', 'Makefile.**', '.github/configs', '.github/workflows/c-cpp-cmake.yml' ] + pull_request: + branches: [ "master" ] + paths: [ '**.c', '**.h', 'Makefile.**', '.github/configs', '.github/workflows/c-cpp-cmake.yml' ] + +jobs: + ci: + name: "${{ matrix.target }}" + strategy: + matrix: + target: + - ubuntu-latest + - ubuntu-24.04-arm + - macos-15 + - windows-2022 + runs-on: ${{ matrix.target }} + steps: + - uses: actions/checkout@v4 +# - name: configure +# run: ./configure + - name: Linux libraries + if: ${{ startsWith(matrix.target, 'ubuntu') }} + run: sudo apt install libssl-dev libpam-dev libpcre2-dev + - name: Mac libraries + if: ${{ startsWith(matrix.target, 'macos') }} + run: brew install pcre2 + - name: install Windows libraries + if: ${{ startsWith(matrix.target, 'windows') }} + run: vcpkg install pcre2:x64-windows + - name: make with CMake POSIX + if: ${{ ! startsWith(matrix.target, 'windows') }} + run: | + mkdir build + cd build + cmake .. + cmake --build . + mkdir ~/3proxy + DESTDIR=~/3proxy cmake --install . + cd .. && rm -rf build/ + - name: make with CMake Win + if: ${{ startsWith(matrix.target, 'windows') }} + shell: cmd + run: | + mkdir build + cd build + set "LIB=%LIB%;c:/program files/openssl/lib/VC/x64/MT;c:/vcpkg/installed/x64-windows/lib" + set "INCLUDE=%INCLUDE%;c:/program files/openssl/include;c:/vcpkg/installed/x64-windows/include" + cmake .. + dir + cmake --build . + cd .. + rmdir /s /q build diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml deleted file mode 100644 index 69471f2..0000000 --- a/.github/workflows/c-cpp.yml +++ /dev/null @@ -1,93 +0,0 @@ -name: C/C++ CI - -on: - push: - branches: [ "master" ] - paths: [ '**.c', '**.h', 'Makefile.**', '.github/configs', '.github/workflows/c-cpp.yml' ] - pull_request: - branches: [ "master" ] - paths: [ '**.c', '**.h', 'Makefile.**', '.github/configs', '.github/workflows/c-cpp.yml' ] - -jobs: - ci: - name: "${{ matrix.target }}" - strategy: - matrix: - target: - - ubuntu-latest - - ubuntu-24.04-arm - - macos-15 - - windows-2022 - runs-on: ${{ matrix.target }} - steps: - - uses: actions/checkout@v4 -# - name: configure -# run: ./configure - - name: Linux libraries - if: ${{ startsWith(matrix.target, 'ubuntu') }} - run: sudo apt install libssl-dev libpam-dev libpcre2-dev - - name: make Ubuntu - if: ${{ startsWith(matrix.target, 'ubuntu') }} - run: make -f Makefile.Linux - - name: mkdir - if: ${{ startsWith(matrix.target, 'ubuntu') }} - run: mkdir ~/3proxy - - name: make install - if: ${{ startsWith(matrix.target, 'ubuntu') }} - run: make -f Makefile.Linux DESTDIR=~/3proxy install - - name: make clean Linux - if: ${{ startsWith(matrix.target, 'ubuntu') }} - run: make -f Makefile.Linux clean - - name: Mac libraries - if: ${{ startsWith(matrix.target, 'macos') }} - run: brew install pcre2 - - name: make MacOS - if: ${{ startsWith(matrix.target, 'macos') }} - run: make -f Makefile.FreeBSD - env: - LDFLAGS: "-L/usr/local/lib -L/opt/homebrew/lib -L/opt/homebrew/opt/openssl/lib" - CFLAGS: "-I/usr/local/include -I/opt/homebrew/include -I/usr/local/opt/openssl/include -I/opt/homebrew/opt/openssl/include" - - name: make clean MacOS - if: ${{ startsWith(matrix.target, 'macos') }} - run: make -f Makefile.FreeBSD clean - - name: install Windows libraries - if: ${{ startsWith(matrix.target, 'windows') }} - run: vcpkg install pcre2:x64-windows && c:\msys64\usr\bin\pacman.exe -S --noconfirm mingw-w64-x86_64-pcre2 mingw-w64-x86_64-openssl - - name: make Windows - if: ${{ startsWith(matrix.target, 'windows') }} - run: make -f Makefile.win - env: - LDFLAGS: '-L "c:/msys64/mingw64/lib"' - CFLAGS: '-I "c:/msys64/mingw64/include"' - - name: make clean Windows - if: ${{ startsWith(matrix.target, 'windows') }} - run: make -f Makefile.win clean - - name: Add msbuild to PATH - if: ${{ startsWith(matrix.target, 'windows') }} - uses: microsoft/setup-msbuild@v3 - - name: make Windows MSVC - if: ${{ startsWith(matrix.target, 'windows') }} - shell: cmd - run: | - call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" - D: - cd "D:/a/3proxy/3proxy" - mkdir bin64 - set "LIB=%LIB%;c:/program files/openssl/lib/VC/x64/MT;c:/vcpkg/installed/x64-windows/lib" - set "INCLUDE=%INCLUDE%;c:/program files/openssl/include;c:/vcpkg/installed/x64-windows/include" - nmake /F Makefile.msvc64 - nmake /F Makefile.msvc64 clean - - name: make with CMake POSIX - if: ${{ ! startsWith(matrix.target, 'windows') }} - run: mkdir build && cd build && cmake .. && cmake --build . - - name: make with CMake Win - if: ${{ startsWith(matrix.target, 'windows') }} - shell: cmd - run: | - mkdir build - cd build - set "LIB=%LIB%;c:/program files/openssl/lib/VC/x64/MT;c:/vcpkg/installed/x64-windows/lib" - set "INCLUDE=%INCLUDE%;c:/program files/openssl/include;c:/vcpkg/installed/x64-windows/include" - cmake .. - dir - cmake --build . diff --git a/Makefile.msvc b/Makefile.msvc index 49cc45f..142d78f 100644 --- a/Makefile.msvc +++ b/Makefile.msvc @@ -6,14 +6,19 @@ BUILDDIR = ../bin/ CC = cl -CFLAGS = /nologo /MT /W3 /Ox /GS /EHs- /GA /GF /D "MSVC" /D "WITH_WSAPOLL" /D "NDEBUG" /D "WIN32" /D "WITH_SSL" /D "_CONSOLE" /D "_MBCS" /D "_WIN32" /D "PRINTF_INT64_MODIFIER=\"I64\"" /Fp"proxy.pch" /FD /c $(VERSION) $(BUILDDATE) +CFLAGS = /nologo /MT /W3 /Ox /GS /EHs- /GA /GF /D "MSVC" /D "WITH_WSAPOLL" /D "NDEBUG" /D "WIN32" /D "WITH_SSL" /D "_CONSOLE" /D "_MBCS" /D "_WIN32" /D "PRINTF_INT64_MODIFIER=\"I64\"" /Fp"proxy.pch" /FD /c +!IFDEF RELEASE +VERSION=/D VERSION=\"3proxy-$(RELEASE)\" +!ENDIF +!IFDEF NOW +BUILDDATE=/D BUILDDATE=\"$(NOW)\" +!ENDIF COUT = /Fo LN = link -LDFLAGS = /nologo /subsystem:console /incremental:no /machine:I386 +LDFLAGS = /nologo /subsystem:console /incremental:no DLFLAGS = /DLL DLSUFFICS = .dll LIBS = ws2_32.lib advapi32.lib odbc32.lib user32.lib kernel32.lib Gdi32.lib Crypt32.lib libcrypto.lib libssl.lib -LIBSOLD = libeay32MT.lib ssleay32MT.lib LIBSPREFIX = LIBSSUFFIX = .lib LIBEXT = .lib diff --git a/Makefile.msvc64 b/Makefile.msvc64 deleted file mode 100644 index 1df0048..0000000 --- a/Makefile.msvc64 +++ /dev/null @@ -1,46 +0,0 @@ -# -# 3 proxy Makefile for Microsoft Visual C compiler (for both make and nmake) -# -# -# Add /DSAFESQL to CFLAGS if you are using poorely written/tested ODBC driver - -MAKEFILE = Makefile.msvc64 - -BUILDDIR = ../bin64/ -CC = cl -CFLAGS = /nologo /MT /W3 /Ox /EHs- /GS /GA /GF /D "MSVC" /D "WITH_SSL" /D "WITH_WSAPOLL" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "_WIN32" /D "PRINTF_INT64_MODIFIER=\"I64\"" /Fp"proxy.pch" /FD /c $(VERSION) $(BUILDDATE) $(CFLAGS) -COUT = /Fo -LN = link -LDFLAGS = /nologo /subsystem:console /incremental:no /machine:x64 -DLFLAGS = /DLL -DLSUFFICS = .dll -LIBS = ws2_32.lib advapi32.lib odbc32.lib user32.lib kernel32.lib Gdi32.lib Crypt32.lib libcrypto.lib libssl.lib $(LIBS) -LIBSOLD = libeay32.lib ssleay32.lib -LIBSPREFIX = -LIBSSUFFIX = .lib -LIBEXT = .lib -LNOUT = /out: -EXESUFFICS = .exe -OBJSUFFICS = .obj -DEFINEOPTION = /D -COMPFILES = *.pch *.idb -REMOVECOMMAND = del 2>NUL >NUL -TYPECOMMAND = type -COMPATLIBS = -VERFILE = 3proxy.res $(VERFILE) -VERSIONDEP = 3proxy.res $(VERSIONDEP) -PLUGINS = utf8tocp1251 WindowsAuthentication TrafficPlugin StringsPlugin FilePlugin SSLPlugin PCREPlugin -AFTERCLEAN = del src\*.res - -include Makefile.inc - -3proxy.res: - rc 3proxy.rc - -3proxyres.obj: ../3proxy.res - cvtres /out:3proxyres.obj /machine:x64 ../3proxy.res - - -allplugins: - for /D %%i in ($(PLUGINS)) do (copy Makefile plugins\%%i && copy Makefile.var plugins\%%i && cd plugins\%%i && nmake && del *.obj *.idb &&cd ..\..) - diff --git a/Makefile.msvcARM64 b/Makefile.msvcARM64 deleted file mode 100644 index 383212e..0000000 --- a/Makefile.msvcARM64 +++ /dev/null @@ -1,46 +0,0 @@ -# -# 3 proxy Makefile for Microsoft Visual C compiler (for both make and nmake) -# -# -# Add /DSAFESQL to CFLAGS if you are using poorely written/tested ODBC driver - -BUILDDIR = ../bin64/ -CC = cl -CFLAGS = /nologo /MT /W3 /Ox /EHs- /GS /GA /GF /D "MSVC" /D "WITH_WSAPOLL" /D "WITH_SSL" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "_WIN32" /D "PRINTF_INT64_MODIFIER=\"I64\"" /Fp"proxy.pch" /FD /c $(VERSION) $(BUILDDATE) -COUT = /Fo -LN = link -LDFLAGS = /nologo /subsystem:console /incremental:no /machine:arm64 -DLFLAGS = /DLL -DLSUFFICS = .dll -LIBS = ws2_32.lib advapi32.lib odbc32.lib user32.lib kernel32.lib Gdi32.lib libcrypto.lib libssl.lib -LIBSOLD = -LIBSPREFIX = -LIBSSUFFIX = .lib -LIBEXT = .lib -LNOUT = /out: -EXESUFFICS = .exe -OBJSUFFICS = .obj -DEFINEOPTION = /D -COMPFILES = *.pch *.idb -REMOVECOMMAND = del 2>NUL >NUL -TYPECOMMAND = type -COMPATLIBS = -MAKEFILE = Makefile.msvcARM64 -PLUGINS = utf8tocp1251 WindowsAuthentication TrafficPlugin StringsPlugin FilePlugin SSLPlugin PCREPlugin -VERFILE = 3proxy.res $(VERFILE) -VERSIONDEP = 3proxy.res $(VERSIONDEP) -AFTERCLEAN = del src\*.res - - -include Makefile.inc - -3proxy.res: - rc 3proxy.rc - -3proxyres.obj: ../3proxy.res - cvtres /out:3proxyres.obj /machine:x64 ../3proxy.res - - -allplugins: - for /D %%i in ($(PLUGINS)) do (copy Makefile plugins\%%i && copy Makefile.var plugins\%%i && cd plugins\%%i && nmake && del *.obj *.idb &&cd ..\..) - diff --git a/Makefile.msvcCE b/Makefile.msvcCE deleted file mode 100644 index dbc855c..0000000 --- a/Makefile.msvcCE +++ /dev/null @@ -1,33 +0,0 @@ -# -# 3 proxy Makefile for Microsoft Visual C compiler (for both make and nmake) -# -# -# Add /DSAFESQL to CFLAGS if you are using poorely written/tested ODBC driver - -BUILDDIR = ../bin/ -CC = cl -CFLAGS = /DARM /D "NOODBC" /nologo /MT /W3 /Wp64 /Ox /GS /EHs- /GA /GF /D "MSVC" /D "_WINCE" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "_WIN32" /D "PRINTF_INT64_MODIFIER=\"I64\"" /Fp"proxy.pch" /FD /c -COUT = /Fo -LN = link -LDFLAGS = /nologo /subsystem:console /incremental:no -DLFLAGS = /DLL -DLSUFFICS = .dll -LIBS = ws2_32.lib advapi32.lib odbc32.lib user32.lib -LIBEXT = .lib -LNOUT = /out: -EXESUFFICS = .exe -OBJSUFFICS = .obj -DEFINEOPTION = /D -COMPFILES = *.pch *.idb -REMOVECOMMAND = del 2>NUL >NUL -TYPECOMMAND = type -COMPATLIBS = -MAKEFILE = Makefile.msvc -PLUGINS = WindowsAuthentication TrafficPlugin StringsPlugin - - -include Makefile.inc - -allplugins: - for /D %%i in ($(PLUGINS)) do (copy Makefile plugins\%%i && copy Makefile.var plugins\%%i && cd plugins\%%i && nmake && del *.obj *.idb &&cd ..\..) - \ No newline at end of file