-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
64 lines (48 loc) · 1.62 KB
/
Makefile
File metadata and controls
64 lines (48 loc) · 1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# Kainefiltrator Makefile
# Supports MinGW-w64 and MSVC
CC = x86_64-w64-mingw32-gcc
CXX = x86_64-w64-mingw32-g++
CFLAGS = -m64 -O2 -Wall -Wextra -I./include -DUNICODE -D_UNICODE
CFLAGS_DEBUG = -m64 -g -O0 -Wall -Wextra -I./include -DUNICODE -D_UNICODE -DDEBUG
LDFLAGS += -lcabinet -lgdi32
LIBS = -lws2_32 -lwininet -lcrypt32 -ldbghelp -lpsapi -lshlwapi -lshell32 -luser32 -ladvapi32 -lmpr -lnetapi32 -lntdll -lcomctl32 -lole32 -luuid
SRCDIR = src
OBJDIR = obj
BINDIR = bin
SOURCES = $(wildcard $(SRCDIR)/*.c)
OBJECTS = $(patsubst $(SRCDIR)/%.c,$(OBJDIR)/%.o,$(SOURCES))
TARGET = $(BINDIR)/kainefiltrator.exe
TARGET_DEBUG = $(BINDIR)/kainefiltrator_debug.exe
.PHONY: all clean debug dirs
all: dirs $(TARGET)
debug: dirs $(TARGET_DEBUG)
dirs:
@mkdir -p $(OBJDIR) $(BINDIR)
$(TARGET): $(OBJECTS)
$(CC) -o $@ $^ $(LDFLAGS) $(LIBS)
@echo "[+] Built: $@"
$(TARGET_DEBUG): $(SOURCES)
$(CC) $(CFLAGS_DEBUG) -o $@ $^ $(LDFLAGS) $(LIBS)
@echo "[+] Built (debug): $@"
$(OBJDIR)/%.o: $(SRCDIR)/%.c
$(CC) $(CFLAGS) -c -o $@ $<
clean:
rm -rf $(OBJDIR) $(BINDIR)
@echo "[+] Cleaned"
strip: $(TARGET)
x86_64-w64-mingw32-strip $(TARGET)
@echo "[+] Stripped"
# MSVC support
msvc:
cl /O2 /W3 /I./include /DWIN32_LEAN_AND_MEAN /DUNICODE /D_UNICODE \
/Fe:$(BINDIR)/kainefiltrator.exe \
$(SOURCES) \
ws2_32.lib wininet.lib crypt32.lib dbghelp.lib psapi.lib shlwapi.lib \
shell32.lib user32.lib advapi32.lib mpr.lib netapi32.lib ntdll.lib \
comctl32.lib ole32.lib uuid.lib
# Static analysis
analyze:
cppcheck --enable=all --suppress=missingIncludeSystem -I./include $(SRCDIR)
# Format code
format:
clang-format -i $(SOURCES) include/*.h