CC=gcc
CFLAGS=-g3 -I . 

LIBS=-L /usr/lib/w32api
DLL_LDFLAGS=-Wl,--export-all-symbols -Wl,--out-implib=libcrtest.dll.a

no_EXE_LDFLAGS=-Wl,--enable-auto-import -Wl,--disable-runtime-pseudo-reloc
v1_EXE_LDFLAGS=-Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc-v1
v2_EXE_LDFLAGS=-Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc-v2

DEBUG_LDFLAGS=#-Wl,--enable-extra-pe-debug #-Wl,--verbose

all: crtest_v1.exe crtest_v2.exe crtest.dll # crtest_no.exe

crtest_dll.o: crtest_dll.c
	$(CC) $(CFLAGS) -c $<

crtest.o: crtest.c
	$(CC) $(CFLAGS) -c $<

crtest.dll: crtest_dll.o
	$(CC) -shared -o crtest.dll $(DLL_LDFLAGS) $^ $(LIBS)

crtest_no.exe: crtest.o crtest.dll
	$(CC) $(no_EXE_LDFLAGS) $(DEBUG_LDFLAGS) -o $@ crtest.o -L. -lcrtest $(LIBS)

crtest_v1.exe: crtest.o crtest.dll
	$(CC) $(v1_EXE_LDFLAGS) $(DEBUG_LDFLAGS) -o $@ crtest.o -L. -lcrtest $(LIBS)

crtest_v2.exe: crtest.o crtest.dll
	$(CC) $(v2_EXE_LDFLAGS) $(DEBUG_LDFLAGS) -o $@ crtest.o -L. -lcrtest $(LIBS)

.PHONY: clean

clean:
	rm -f *.o *.a crtest.exe crtest_v1.exe crtest_v2.exe crtest.dll

