mirror of https://github.com/ValdikSS/GoodbyeDPI
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.8 KiB
60 lines
1.8 KiB
ifndef MSYSTEM
|
|
CPREFIX = x86_64-w64-mingw32-
|
|
endif
|
|
|
|
WINDIVERTHEADERS = ../../../include
|
|
WINDIVERTLIBS = ../../binary
|
|
MINGWLIB = /usr/x86_64-w64-mingw32/lib/
|
|
|
|
TARGET = goodbyedpi.exe
|
|
# Linking SSP does not work for some reason, the executable doesn't start.
|
|
#LIBS = -L$(WINDIVERTLIBS) -Wl,-Bstatic -lssp -Wl,-Bdynamic -lWinDivert -lws2_32
|
|
LIBS = -L$(WINDIVERTLIBS) -lWinDivert -lws2_32 -l:libssp.a
|
|
CC = $(CPREFIX)gcc
|
|
|
|
CCWINDRES = $(CPREFIX)windres
|
|
ifeq (, $(shell which $(CPREFIX)windres))
|
|
CCWINDRES = windres
|
|
endif
|
|
|
|
CFLAGS = -std=c99 -pie -fPIE -pipe -I$(WINDIVERTHEADERS) -L$(WINDIVERTLIBS) \
|
|
-O2 -D_FORTIFY_SOURCE=2 -fstack-protector \
|
|
-Wall -Wextra -Wpedantic -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 \
|
|
-Wformat-security -Wno-format-nonliteral -Wshadow -Wstrict-aliasing=1 \
|
|
-Wnull-dereference -Warray-bounds=2 -Wimplicit-fallthrough=3 \
|
|
-Wstringop-overflow=4 \
|
|
-Wformat-signedness -Wstrict-overflow=2 -Wcast-align=strict \
|
|
-Wfloat-equal -Wcast-align -Wsign-conversion \
|
|
#-fstack-protector-strong
|
|
LDFLAGS = -fstack-protector -Wl,-O1,-pie,--dynamicbase,--nxcompat,--sort-common,--as-needed \
|
|
-Wl,--image-base,0x140000000 -Wl,--disable-auto-image-base
|
|
|
|
ifdef BIT64
|
|
LDFLAGS += -Wl,--high-entropy-va -Wl,--pic-executable,-e,mainCRTStartup
|
|
else
|
|
CFLAGS += -m32
|
|
LDFLAGS += -Wl,--pic-executable,-e,_mainCRTStartup -m32
|
|
endif
|
|
|
|
.PHONY: default all clean
|
|
|
|
default: $(TARGET)
|
|
all: default
|
|
|
|
OBJECTS = $(patsubst %.c, %.o, $(wildcard *.c utils/*.c)) goodbyedpi-rc.o
|
|
HEADERS = $(wildcard *.h utils/*.h)
|
|
|
|
%.o: %.c $(HEADERS)
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
goodbyedpi-rc.o:
|
|
$(CCWINDRES) goodbyedpi-rc.rc goodbyedpi-rc.o
|
|
|
|
.PRECIOUS: $(TARGET) $(OBJECTS)
|
|
|
|
$(TARGET): $(OBJECTS)
|
|
$(CC) $(OBJECTS) $(LDFLAGS) $(LIBS) -s -o $@
|
|
|
|
clean:
|
|
-rm -f *.o utils/*.o
|
|
-rm -f $(TARGET)
|
|
|