CC = gcc
LIBS = -lntdll
LDFLAGS = -L./lib $(LIBS) -Wl,--nxcompat,--no-seh,--large-address-aware,-s,--disable-forceinteg,--subsystem,windows
LDFLAGS_DEBUG = $(LIBS) -Wl,--nxcompat,--no-seh,--large-address-aware,--disable-reloc-section,--disable-forceinteg,--disable-dynamicbase,--subsystem,windows
INCDIR = -I./include
CFLAGS = -Wall -Wextra -mrdrnd -mrdseed -m32 -m80387 -maes -march=i686 -mfpmath=sse -mmmx -msse -msse2 -msse3 -msse4 -msse4.1 -mwindows -s -O2 -fomit-frame-pointer -ftree-vectorize -DNDEBUG $(INCDIR)
CFLAGS_DEBUG = -Wall -Wextra -mrdrnd -mrdseed -m32 -m80387 -maes -march=i686 -mfpmath=sse -mmmx -msse -msse2 -msse3 -msse4 -msse4.1 -mwindows -O0 -g -DDEBUG $(INCDIR)

.PHONY: all
all: launch.dll repeat.exe

launch.dll: launch.c
	$(CC) $(CFLAGS) -shared $^ -o $@ $(LDFLAGS)

repeat.exe: repeat.c random.c
	$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)

.PHONY: debug_all debug_dll debug_exe
debug_all: debug_dll debug_exe

debug_dll: launch.c
	$(CC) $(CFLAGS_DEBUG) -shared $^ -o launch.dll $(LDFLAGS_DEBUG)

debug_exe: repeat.c random.c
	$(CC) $(CFLAGS_DEBUG) $^ -o repeat.exe $(LDFLAGS_DEBUG)

clean:
	rm -f launch.dll repeat.exe
