Files
2024-12-01 15:31:28 +00:00

43 lines
1.3 KiB
Makefile

CFLAGS=/c /GS- /std:c++20
DEBUGCFLAGS=/Zi /MTd /D_DEBUG /EHsc /std:c++20
!IF "$(PROCESSOR_ARCHITECTURE)" != "x86" && "$(PROCESSOR_ARCHITECTURE)" != "AMD64"
!ERROR Only x86 and AMD64 architectures are supported or the PROCESSOR_ARCHITECTURE environment variable is not set.
!ELSEIF "$(PROCESSOR_ARCHITECTURE)" == "AMD64"
OUTDIR=..\bin\
IMDIR=x64\Release\
DOUTDIR=..\x64\Debug\
DIMDIR=x64\Debug\
OUTEXT=.x64.o
!ELSE
OUTDIR=..\bin\
IMDIR=Release\
DIMDIR=Debug\
DOUTDIR=..\Debug\
OUTEXT=.x86.o
!ENDIF
all: *.cpp
@$(MAKE) $(patsubst %.c,%.obj, $(patsubst %.cpp, %.obj, $(patsubsti %, $(IMDIR)\%, $**)))
@if not exist "$(OUTDIR)" mkdir "$(OUTDIR)"
ren "$(IMDIR)*.obj" "*$(OUTEXT)"
move /Y "$(IMDIR)\*.o" "$(OUTDIR)"
all-debug: *.cpp
@$(MAKE) $(patsubst %.c,%.exe, $(patsubst %.cpp, %.exe, $(patsubsti %, $(DOUTDIR)\%, $**)))
.cpp{$(IMDIR)}.obj:
@if not exist "$(IMDIR)" mkdir "$(IMDIR)"
$(CPP) $(CFLAGS) /Fo"$@" $<
.cpp{$(DOUTDIR)}.exe:
@if not exist "$(DIMDIR)" mkdir "$(DIMDIR)"
@if not exist "$(DOUTDIR)" mkdir "$(DOUTDIR)"
$(CPP) $(DEBUGCFLAGS) /Fo$(DIMDIR) /Fd$(DIMDIR) /Fe"$@" $< base/mock.cpp
clean:
@if exist "$(DIMDIR)" rmdir /Q /S "$(DIMDIR)"
@if exist "$(IMDIR)" rmdir /Q /S "$(IMDIR)"
@if exist "$(OUTDIR)" rmdir /Q /S "$(OUTDIR)"
@if exist "$(DOUTDIR)" rmdir /Q /S "$(DOUTDIR)"