ECHO OFF
ECHO ----------------------------------------------------------------------
ECHO - Build executable %1\%2.PAK
ECHO - with link file %3
ECHO - and symbols %4 %5
ECHO ----------------------------------------------------------------------
ECHO ON
REM Compile source code files to object files
MMCC.TTP DATA.C     %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT DATA.ERR
MMCC.TTP DUNVIEW.C  %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT DUNVIEW.ERR
MMCC.TTP BLTSHRNK.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT BLTSHRNK.ERR
MMCC.TTP FLIPHORI.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT FLIPHORI.ERR
MMCC.TTP FLIPVERT.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT FLIPVERT.ERR
MMCC.TTP BLIT.C     %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT BLIT.ERR
MMCC.TTP BLITMASK.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT BLITMASK.ERR
MMCC.TTP BLITFILL.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT BLITFILL.ERR
MMCC.TTP DUNGEON.C  %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT DUNGEON.ERR
MMCC.TTP GAMELOOP.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT GAMELOOP.ERR
MMCC.TTP BASE.C     %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT BASE.ERR
MMCC.TTP OBJECT.C   %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT OBJECT.ERR
MMCC.TTP TEXT.C     %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT TEXT.ERR
MMCC.TTP PROJEXPL.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT PROJEXPL.ERR
MMCC.TTP TIMELINE.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT TIMELINE.ERR
MMCC.TTP GROUP.C    %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT GROUP.ERR
MMCC.TTP MOVESENS.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT MOVESENS.ERR
MMCC.TTP CHAMPION.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT CHAMPION.ERR
MMCC.TTP PANEL.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT PANEL.ERR
MMCC.TTP COMMAND.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT COMMAND.ERR
MMCC.TTP MENU.C   %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT MENU.ERR
MMCC.TTP TOS.C      %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT TOS.ERR
MMCC.TTP SAVEPATH.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT SAVEPATH.ERR
MMCC.TTP READWRIT.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT READWRIT.ERR
MMCC.TTP DIALOG.C   %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT DIALOG.ERR
MMCC.TTP SAVEHEAD.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT SAVEHEAD.ERR
MMCC.TTP LOADSAVE.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT LOADSAVE.ERR
MMCC.TTP PALETTE.C  %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT PALETTE.ERR
MMCC.TTP TITLE.C    %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT TITLE.ERR
MMCC.TTP ENTRANCE.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT ENTRANCE.ERR
MMCC.TTP ENDGAME.C  %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT ENDGAME.ERR
MMCC.TTP STARTUP1.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT STARTUP1.ERR
MMCC.TTP FLOPPYST.C  %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT FLOPPYST.ERR
MMCC.TTP FLOPPY.C  %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT FLOPPY.ERR
MMCC.TTP DECOMPDU.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT DECOMPDU.ERR
MMCC.TTP STARTUP2.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT STARTUP2.ERR
MMCC.TTP SOUND.C    %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT SOUND.ERR
MMCC.TTP IO.C       %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT IO.ERR
MMCC.TTP COPYPRO1.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT COPYPRO1.ERR
MMCC.TTP COPYPRO2.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT COPYPRO2.ERR
MMCC.TTP COPYPRO3.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT COPYPRO3.ERR
MMCC.TTP COPYPRO4.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT COPYPRO4.ERR
MMCC.TTP COPYPRO5.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT COPYPRO5.ERR
MMCC.TTP COPYPRO6.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT COPYPRO6.ERR
MMCC.TTP COPYPRO7.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT COPYPRO7.ERR
MMCC.TTP COPYPRO8.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT COPYPRO8.ERR
MMCC.TTP COPYPRO9.C %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT COPYPRO9.ERR
MMCC.TTP EXPAND.C   %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT EXPAND.ERR
MMCC.TTP MEMORY.C   %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT MEMORY.ERR
MMCC.TTP LZW.C      %4 %5
IF EXISTS ERRORS.OUT COPY ERRORS.OUT LZW.ERR

REM Run code improver on object files (except BLTSHRNK.O, FLIPHORI.O, FLIPVERT.O, BLIT.O, BLITMASK.O, BLITFILL.O and EXPAND.O because this would break some hard coded branches)
MMIMP.TTP DATA.O
MMIMP.TTP DUNVIEW.O
MMIMP.TTP DUNGEON.O
MMIMP.TTP GAMELOOP.O
MMIMP.TTP BASE.O
MMIMP.TTP OBJECT.O
MMIMP.TTP TEXT.O
MMIMP.TTP PROJEXPL.O
MMIMP.TTP TIMELINE.O
MMIMP.TTP GROUP.O
MMIMP.TTP MOVESENS.O
MMIMP.TTP CHAMPION.O
MMIMP.TTP PANEL.O
MMIMP.TTP COMMAND.O
MMIMP.TTP MENU.O
MMIMP.TTP TOS.O
MMIMP.TTP SAVEPATH.O
MMIMP.TTP READWRIT.O
MMIMP.TTP DIALOG.O
MMIMP.TTP SAVEHEAD.O
MMIMP.TTP LOADSAVE.O
MMIMP.TTP PALETTE.O
MMIMP.TTP TITLE.O
MMIMP.TTP ENTRANCE.O
MMIMP.TTP ENDGAME.O
MMIMP.TTP STARTUP1.O
MMIMP.TTP FLOPPYST.O
MMIMP.TTP FLOPPY.O
MMIMP.TTP DECOMPDU.O
MMIMP.TTP STARTUP2.O
MMIMP.TTP SOUND.O
MMIMP.TTP IO.O
MMIMP.TTP COPYPRO1.O
MMIMP.TTP COPYPRO2.O
MMIMP.TTP COPYPRO3.O
MMIMP.TTP COPYPRO4.O
MMIMP.TTP COPYPRO5.O
MMIMP.TTP COPYPRO6.O
MMIMP.TTP COPYPRO7.O
MMIMP.TTP COPYPRO8.O
MMIMP.TTP COPYPRO9.O
MMIMP.TTP MEMORY.O
MMIMP.TTP LZW.O

REM Disassemble object files to assembly files

IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP DATA.O     -o DATA.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP DUNVIEW.O  -o DUNVIEW.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP BLTSHRNK.O -o BLTSHRNK.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP FLIPHORI.O -o FLIPHORI.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP FLIPVERT.O -o FLIPVERT.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP BLIT.O     -o BLIT.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP BLITMASK.O -o BLITMASK.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP BLITFILL.O -o BLITFILL.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP DUNGEON.O  -o DUNGEON.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP GAMELOOP.O -o GAMELOOP.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP BASE.O     -o BASE.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP OBJECT.O   -o OBJECT.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP TEXT.O     -o TEXT.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP PROJEXPL.O -o PROJEXPL.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP TIMELINE.O -o TIMELINE.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP GROUP.O    -o GROUP.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP MOVESENS.O -o MOVESENS.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP CHAMPION.O -o CHAMPION.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP PANEL.O -o PANEL.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP COMMAND.O -o COMMAND.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP MENU.O   -o MENU.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP TOS.O      -o TOS.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP SAVEPATH.O -o SAVEPATH.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP READWRIT.O -o READWRIT.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP DIALOG.O   -o DIALOG.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP SAVEHEAD.O -o SAVEHEAD.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP LOADSAVE.O -o LOADSAVE.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP PALETTE.O  -o PALETTE.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP TITLE.O    -o TITLE.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP ENTRANCE.O -o ENTRANCE.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP ENDGAME.O  -o ENDGAME.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP STARTUP1.O -o STARTUP1.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP FLOPPYST.O -o FLOPPYST.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP FLOPPY.O  -o FLOPPY.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP DECOMPDU.O -o DECOMPDU.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP STARTUP2.O -o STARTUP2.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP SOUND.O    -o SOUND.S
REM Do not disassemble IO.O because MMDIS.TTP crashes on this file
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP COPYPRO1.O -o COPYPRO1.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP COPYPRO2.O -o COPYPRO2.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP COPYPRO3.O -o COPYPRO3.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP COPYPRO4.O -o COPYPRO4.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP COPYPRO5.O -o COPYPRO5.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP COPYPRO6.O -o COPYPRO6.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP COPYPRO7.O -o COPYPRO7.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP COPYPRO8.O -o COPYPRO8.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP COPYPRO9.O -o COPYPRO9.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP EXPAND.O   -o EXPAND.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP MEMORY.O   -o MEMORY.S
IF EXISTS \SOURCE\ASSEMBLY.TXT MMDIS.TTP LZW.O      -o LZW.S

REM Link object files to executable
MMLINK.TTP %3 -o \BUILD\%1\%2.PAK -M \BUILD\%1\%2.MAP

REM Move object and assembly files
COPY *.O \OBJECT\%1\%2.PAK
COPY *.S \OBJECT\%1\%2.PAK
COPY *.ERR \OBJECT\%1\%2.PAK
FOR %%V IN ( *.O ) DO DEL \SOURCE\%%V
FOR %%V IN ( *.S ) DO DEL \SOURCE\%%V
FOR %%V IN ( *.ERR ) DO DEL \SOURCE\%%V
