CC=gcc

WARNINGS=-Wall -Wformat-security -Wstrict-overflow -Wsign-compare -Wclobbered \
    -Wempty-body -Wignored-qualifiers -Wuninitialized -Wtype-limits -Woverride-init \
    -Wlogical-op -Wno-multichar -Wno-attributes -Wduplicated-cond -Wduplicated-branches \
    -Wnull-dereference -Wno-unused-function -Wshadow -Wstack-usage=4096

# -Wunused-parameter
# -Wtraditional-conversion
#-fira-region=one/mixed
# -Wstack-usage=2048

## DEBUG FLAGS
#    -Wl,--print-memory-usage -fstack-usage -fcallgraph-info 
CFLAGS= -nostdlib -Og -g -ggdb -DLOG_STUFF=1 -m32 -march=i686 -mtune=generic \
	-fno-omit-frame-pointer -lgcc -ftrapv -fbounds-check \
    -lmsvcrt -lkernel32 -luser32 -lgdi32 \
    -Wl,-dynamicbase,-nxcompat,--no-seh,--relax,--enable-auto-import,--disable-stdcall-fixup \
	-D__USE_MINGW_ANSI_STDIO=0 -Wp,-D_FORTIFY_SOURCE=2 -fshort-enums\
    $(INCLUDE) $(WARNINGS) -DDEBUG

default: AltSnap.exe hooks.dll

hooks.dll : hooks.c hooks.h hooksr.o unfuck.h nanolibc.h zones.c snap.c
	$(CC) -o hooks.dll hooks.c hooksr.o $(CFLAGS) -mdll -e_DllMain@12 -Wl,--kill-at

#--disable-reloc-section,  -mwindows
AltSnap.exe : altsnapr.o altsnap.c hooks.h tray.c config.c languages.h languages.c unfuck.h nanolibc.h
	$(CC) -o AltSnap.exe altsnap.c altsnapr.o $(CFLAGS) -Wl,--tsaware -lcomctl32 -ladvapi32 -lshell32 -e_unfuckWinMain@0

altsnapr.o : altsnap.rc window.rc resource.h AltSnap.exe.manifest media/find.cur media/find.ico media/icon.ico media/tray-disabled.ico media/tray-enabled.ico
	windres altsnap.rc altsnapr.o -Fpe-i386

hooksr.o: hooks.rc
	windres hooks.rc hooksr.o -Fpe-i386

clean :
	rm altsnapr.o AltSnap.exe hooksr.o hooks.dll
