From 23b9e698e03212b0d6e033d7a48f640e0c306e6e Mon Sep 17 00:00:00 2001 From: Vladimir Dubrovin <3proxy@3proxy.ru> Date: Fri, 27 Mar 2026 19:05:49 +0300 Subject: [PATCH] Update workflows and makefiles (15 commits squashed) --- .github/workflows/c-cpp.yml | 22 +++++++++++++--------- Makefile.FreeBSD | 6 +++--- Makefile.Linux | 12 ++++++------ Makefile.unix | 18 +++++++++--------- Makefile.win | 29 ++++++++++++++++++++++------- 5 files changed, 53 insertions(+), 34 deletions(-) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 0950977..5a13a8e 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -35,20 +35,24 @@ jobs: - name: ln Mac if: ${{ startsWith(matrix.target, 'macos') }} run: ln -s Makefile.FreeBSD Makefile - - name: Mac variables - if: ${{ startsWith(matrix.target, 'macos') }} - run: echo "LDFLAGS=-L/usr/local/lib -L/opt/homebrew/lib -L/usr/local/opt/openssl/lib -L/opt/homebrew/opt/openssl/lib" >> $GITHUB_ENV && echo "CFLAGS=-I/usr/local/include -I/opt/homebrew/include -I/usr/local/opt/openssl/include -I/opt/homebrew/opt/openssl/include" >> $GITHUB_ENV - name: ln Windows if: ${{ startsWith(matrix.target, 'windows') }} run: copy Makefile.win Makefile - - name: install Windows libraries + - name: make Windows if: ${{ startsWith(matrix.target, 'windows') }} - run: vcpkg install pcre:x64-windows - - name: dirs Windows - if: ${{ startsWith(matrix.target, 'windows') }} - run: cmd /C 'echo LIBS := -L "c:/program files/openssl/lib/VC/x64/MT" $(LIBS) >>Makefile.win && echo CFLAGS := -I "c:/program files/openssl/include" $(CFLAGS) >>Makefile.win && type Makefile.win && dir "c:/program files/openssl/lib"' - - name: make run: make + env: + LIBS: '-L "c:/program files/openssl/lib/VC/x64/MT"' + CFLAGS: '-I "c:/program files/openssl/include"' + - name: make Ubuntu + if: ${{ startsWith(matrix.target, 'ubuntu') }} + run: make + - name: make MacOS + if: ${{ startsWith(matrix.target, 'macos') }} + run: make + 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: mkdir if: ${{ startsWith(matrix.target, 'ubuntu') }} run: mkdir ~/3proxy diff --git a/Makefile.FreeBSD b/Makefile.FreeBSD index e42714a..fc1ccc1 100644 --- a/Makefile.FreeBSD +++ b/Makefile.FreeBSD @@ -7,14 +7,14 @@ BUILDDIR = ../bin/ CC ?= cc -CFLAGS += -c -fno-strict-aliasing -DNOODBC -DWITH_STD_MALLOC -DFD_SETSIZE=4096 -DWITH_POLL +CFLAGS := -c -fno-strict-aliasing -DNOODBC -DWITH_STD_MALLOC -DFD_SETSIZE=4096 -DWITH_POLL $(CFLAGS) COUT = -o LN ?= ${CC} LDFLAGS += -pthread -fno-strict-aliasing # -lpthreads may be reuiured on some platforms instead of -pthreads # -ldl or -lld may be required for some platforms -DCFLAGS = -fPIC -DLFLAGS = -shared +DCFLAGS ?= -fPIC +DLFLAGS ?= -shared DLSUFFICS = .so LIBS ?= LIBSPREFIX = -l diff --git a/Makefile.Linux b/Makefile.Linux index d831f6a..42f339b 100644 --- a/Makefile.Linux +++ b/Makefile.Linux @@ -8,14 +8,14 @@ # library support. Add -DSAFESQL for poorely written ODBC library / drivers. BUILDDIR = ../bin/ -CC = gcc +CC ?= gcc -CFLAGS = -g -fPIC -O2 -fno-strict-aliasing -c -pthread -DWITHSPLICE -D_GNU_SOURCE -DGETHOSTBYNAME_R -D_THREAD_SAFE -D_REENTRANT -DNOODBC -DWITH_STD_MALLOC -DFD_SETSIZE=4096 -DWITH_POLL -DWITH_NETFILTER +CFLAGS := -g -fPIC -O2 -fno-strict-aliasing -c -pthread -DWITHSPLICE -D_GNU_SOURCE -DGETHOSTBYNAME_R -D_THREAD_SAFE -D_REENTRANT -DNOODBC -DWITH_STD_MALLOC -DFD_SETSIZE=4096 -DWITH_POLL -DWITH_NETFILTER $(CFLAGS) COUT = -o -LN = $(CC) -DCFLAGS = -LDFLAGS = -fPIC -O2 -fno-strict-aliasing -pthread -DLFLAGS = -shared +LN ?= ${CC} +DCFLAGS ?= +LDFLAGS ?= -fPIC -O2 -fno-strict-aliasing -pthread +DLFLAGS ?= -shared DLSUFFICS = .ld.so # -lpthreads may be reuqired on some platforms instead of -pthreads LIBSPREFIX = -l diff --git a/Makefile.unix b/Makefile.unix index ef4d671..4db7e11 100644 --- a/Makefile.unix +++ b/Makefile.unix @@ -8,21 +8,21 @@ # library support. Add -DSAFESQL for poorely written ODBC library / drivers. BUILDDIR = ../bin/ -CC = gcc +CC ?= gcc # you may need -L/usr/pkg/lib for older NetBSD versions -CFLAGS = -g -O2 -fno-strict-aliasing -c -pthread -D_THREAD_SAFE -D_REENTRANT -DNOODBC -DWITH_STD_MALLOC -DFD_SETSIZE=4096 -DWITH_POLL +CFLAGS := -g -O2 -fno-strict-aliasing -c -pthread -D_THREAD_SAFE -D_REENTRANT -DNOODBC -DWITH_STD_MALLOC -DFD_SETSIZE=4096 -DWITH_POLL $(CFLAGS) COUT = -o -LN = $(CC) -LDFLAGS = -O2 -fno-strict-aliasing -pthread +LN ?= $(CC) +LDFLAGS ?= -O2 -fno-strict-aliasing -pthread # -lpthreads may be reuqired on some platforms instead of -pthreads # -ldl or -lld may be required for some platforms -DCFLAGS = -fPIC -DLFLAGS = -shared -DLSUFFICS = .ld.so +DCFLAGS ?= -fPIC +DLFLAGS ?= -shared +DLSUFFICS ?= .ld.so LIBS ?= -LIBSPREFIX = -l -LIBSSUFFIX = +LIBSPREFIX ?= -l +LIBSSUFFIX ?= LNOUT = -o EXESUFFICS = OBJSUFFICS = .o diff --git a/Makefile.win b/Makefile.win index ee635aa..ea97c65 100644 --- a/Makefile.win +++ b/Makefile.win @@ -9,14 +9,14 @@ BUILDDIR = ../bin/ -CC = gcc -CFLAGS = -O2 -s -c -mthreads -DWITH_STD_MALLOC -DWITH_WSAPOLL +CC ?= gcc +CFLAGS := -O2 -s -c -mthreads -DWITH_STD_MALLOC -DWITH_WSAPOLL $(CFLAGS) COUT = -o -LN = gcc -LDFLAGS = -O2 -s -mthreads -DLFLAGS = -shared +LN ?= $(CC) +LDFLAGS ?= -O2 -s -mthreads +DLFLAGS ?= -shared DLSUFFICS = .dll -LIBS = -lws2_32 -lodbc32 -ladvapi32 -luser32 -lcrypto -lssl +LIBS := -lws2_32 -lodbc32 -ladvapi32 -luser32 $(LIBS) LIBSPREFIX = -l LIBSSUFFIX = LNOUT = -o @@ -28,13 +28,28 @@ REMOVECOMMAND = rm -f TYPECOMMAND = cat COMPATLIBS = MAKEFILE = Makefile.win -PLUGINS = utf8tocp1251 WindowsAuthentication TrafficPlugin StringsPlugin SSLPLugin +PLUGINS := utf8tocp1251 WindowsAuthentication TrafficPlugin StringsPlugin VERFILE := 3proxyres.o $(VERFILE) VERSION := $(VERSION) VERSIONDEP := 3proxyres.o $(VERSIONDEP) 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 +OPENSSL_CHECK = $(shell echo "#include \\n int main(){return 0;}" | 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 + PLUGINS += SSLPlugin +endif +PCRE_CHECK = $(shell echo "#include \\n int main(){return 0;}" | cc -x c $(CFLAGS) $(LDFLAGS) -l pcre -o testpcre - 2>/dev/null && rm testpcre && echo true||echo false) +ifeq ($(PCRE_CHECK), true) + PLUGINS += PCREPlugin +endif +PAM_CHECK = $(shell echo "#include \\n int main(){return 0;}" | 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 + + include Makefile.inc 3proxyres.o: