#  -O3 
#  /O2 /Og /arch:SSE2 

SRC=CCommon.cpp \
    CHardware.cpp \
    CHWCPU.cpp \
    CHWCRT.cpp \
    CHWDebugConsole.cpp \
    CHWMemory.cpp \
    CHWMyCPU.cpp \
    CLog.cpp \
    Test.cpp \
    TGALoader.cpp

GCC_OBJ=${SRC:.cpp=.o}
GCC_DST=test_gcc.exe
GCC_CFLAGS=-Wall -Wextra -O3
GCC_LDFLAGS=-lgdi32

CL_OBJ=${SRC:.cpp=.obj}
CL_DST=test_msvc.exe
CL_CFLAGS=/W4 /EHsc /D_CRT_SECURE_NO_WARNINGS
CL_LDFLAGS=Gdi32.Lib User32.Lib


all: $(GCC_DST) $(CL_DST)
	nasm test.asm -o test.bin

$(CL_DST): $(CL_OBJ)
	cl $(CL_LDFLAGS) $(CL_OBJ) /Fe:$(CL_DST)

%.o: %.cpp *.h
	g++ $(GCC_CFLAGS) $< -c -o $@

%.obj: %.cpp *.h
	cl /c $(CL_CFLAGS) $<

$(GCC_DST): $(GCC_OBJ)
	g++ $(GCC_OBJ) -o $(GCC_DST) $(GCC_LDFLAGS)


clean:
	del $(CL_OBJ) $(GCC_OBJ) $(CL_DST) $(GCC_DST) 2>nul



