# Standard options

dir=d:\Progra~1\Micros~1\VC98
odir=..\Prime95
masm=$(dir)\bin\ml /c /coff
#masm=ml /c /coff /Fl /Sf /Sa
#cl=\msdev\bin\cl /I.. /I C:\msdev\include\ /O2 /GF /W3 /MT /c
#cl=\msdev\bin\cl /I.. /I C:\msdev\include\ /O2 /GF /W3 /MT /Zi /c
cl=$(dir)\Bin\cl /I.. /I $(dir)\include\ /I $(dir)\MFC\include\ /O2 /GF /W3 /MT /c

# Create 32-bit executables

all: mult.obj mult1.obj mult1p.obj mult1aux.obj mult2.obj mult2p.obj mult2a.obj\
 mult2ap.obj mult2aux.obj mult3.obj mult3p.obj mult3q.obj mult3a.obj mult3ap.obj\
 mult3aq.obj mult3aux.obj mult3auq.obj mult4.obj mult4p.obj mult4q.obj mult4a.obj\
 mult4ap.obj mult4aq.obj mult4b.obj mult4bp.obj mult4bq.obj mult4aux.obj mult4auq.obj\
 ecmhelp.obj cpuid.obj dummy4.obj dummy8.obj dummy12.obj dummy16.obj dummy20.obj\
 dummy24.obj dummy28.obj dummyt4.obj dummyt8.obj dummyt12.obj dummyt16.obj\
 dummyt20.obj dummyt24.obj dummyt28.obj xmult1.obj xmult1ax.obj xmult2.obj\
 mulp1aux.obj mulp2aux.obj mulp3aux.obj mulp4aux.obj mulp3auq.obj mulp4auq.obj\
 xmult2a.obj xmult2ax.obj xmult3.obj xmult3a.obj xmult3ax.obj giants.obj service.obj\
 xmulp1ax.obj xmulp2.obj xmulp2ax.obj xmulp3.obj xmulp3ax.obj

mult.obj: mult.asm mult.mac xmult.mac
    $(masm) /Fo$(odir)\mult.obj mult.asm

mult1.obj: mult1.asm mult.mac
    $(masm) /Fo$(odir)\mult1.obj mult1.asm

mult1p.obj: mult1.asm mult.mac
    $(masm) /DPPRO /Fo$(odir)\mult1p.obj mult1.asm

mult1aux.obj: mult1aux.asm mult.mac normal.mac
    $(masm) /Fo$(odir)\mult1aux.obj mult1aux.asm

mulp1aux.obj: mulp1aux.asm mult.mac normal_p.mac
    $(masm) /Fo$(odir)\mulp1aux.obj mulp1aux.asm

mult2.obj: mult2.asm mult.mac
    $(masm) /Fo$(odir)\mult2.obj mult2.asm

mult2p.obj: mult2.asm mult.mac
    $(masm) /DPPRO /Fo$(odir)\mult2p.obj mult2.asm

mult2a.obj: mult2a.asm mult.mac
    $(masm) /Fo$(odir)\mult2a.obj mult2a.asm

mult2ap.obj: mult2a.asm mult.mac
    $(masm) /DPPRO /Fo$(odir)\mult2ap.obj mult2a.asm

mult2aux.obj: mult2aux.asm mult.mac normal.mac
    $(masm) /Fo$(odir)\mult2aux.obj mult2aux.asm

mulp2aux.obj: mulp2aux.asm mult.mac normal_p.mac
    $(masm) /Fo$(odir)\mulp2aux.obj mulp2aux.asm

mult3.obj: mult3.asm mult.mac fft2b.mac
    $(masm) /Fo$(odir)\mult3.obj mult3.asm

mult3p.obj: mult3.asm mult.mac fft2b.mac
    $(masm) /DPPRO /Fo$(odir)\mult3p.obj mult3.asm

mult3q.obj: mult3.asm mult.mac fft2b.mac
    $(masm) /DPPRO /DPFETCH /Fo$(odir)\mult3q.obj mult3.asm

mult3a.obj: mult3a.asm mult.mac
    $(masm) /Fo$(odir)\mult3a.obj mult3a.asm

mult3ap.obj: mult3a.asm mult.mac
    $(masm) /DPPRO /Fo$(odir)\mult3ap.obj mult3a.asm

mult3aq.obj: mult3a.asm mult.mac
    $(masm) /DPPRO /DPFETCH /Fo$(odir)\mult3aq.obj mult3a.asm

mult3aux.obj: mult3aux.asm mult.mac normal.mac
    $(masm) /Fo$(odir)\mult3aux.obj mult3aux.asm

mult3auq.obj: mult3aux.asm mult.mac normal.mac
    $(masm) /DPPRO /DPFETCH /Fo$(odir)\mult3auq.obj mult3aux.asm

mulp3aux.obj: mulp3aux.asm mult.mac normal_p.mac
    $(masm) /Fo$(odir)\mulp3aux.obj mulp3aux.asm

mulp3auq.obj: mulp3aux.asm mult.mac normal_p.mac
    $(masm) /DPPRO /DPFETCH /Fo$(odir)\mulp3auq.obj mulp3aux.asm

mult4.obj: mult4.asm mult.mac fft3.mac
    $(masm) /Fo$(odir)\mult4.obj mult4.asm

mult4p.obj: mult4.asm mult.mac fft3.mac
    $(masm) /DPPRO /Fo$(odir)\mult4p.obj mult4.asm

mult4q.obj: mult4.asm mult.mac fft3.mac
    $(masm) /DPPRO /DPFETCH /Fo$(odir)\mult4q.obj mult4.asm

mult4a.obj: mult4a.asm mult.mac
    $(masm) /Fo$(odir)\mult4a.obj mult4a.asm

mult4ap.obj: mult4a.asm mult.mac
    $(masm) /DPPRO /Fo$(odir)\mult4ap.obj mult4a.asm

mult4aq.obj: mult4a.asm mult.mac
    $(masm) /DPPRO /DPFETCH /Fo$(odir)\mult4aq.obj mult4a.asm

mult4b.obj: mult4b.asm mult.mac
    $(masm) /Fo$(odir)\mult4b.obj mult4b.asm

mult4bp.obj: mult4b.asm mult.mac
    $(masm) /DPPRO /Fo$(odir)\mult4bp.obj mult4b.asm

mult4bq.obj: mult4b.asm mult.mac
    $(masm) /DPPRO /DPFETCH /Fo$(odir)\mult4bq.obj mult4b.asm

mult4aux.obj: mult4aux.asm mult.mac normal.mac
    $(masm) /Fo$(odir)\mult4aux.obj mult4aux.asm

mult4auq.obj: mult4aux.asm mult.mac normal.mac
    $(masm) /DPPRO /DPFETCH /Fo$(odir)\mult4auq.obj mult4aux.asm

mulp4aux.obj: mulp4aux.asm mult.mac normal_p.mac
    $(masm) /Fo$(odir)\mulp4aux.obj mulp4aux.asm

mulp4auq.obj: mulp4aux.asm mult.mac normal_p.mac
    $(masm) /DPPRO /DPFETCH /Fo$(odir)\mulp4auq.obj mulp4aux.asm

ecmhelp.obj: ecmhelp.asm
    $(masm) /Fo$(odir)\ecmhelp.obj ecmhelp.asm

cpuid.obj: cpuid.asm
    $(masm) /Fo$(odir)\cpuid.obj cpuid.asm

dummy4.obj: dummy4.asm
    $(masm) /Fo$(odir)\dummy4.obj dummy4.asm

dummy8.obj: dummy8.asm
    $(masm) /Fo$(odir)\dummy8.obj dummy8.asm

dummy12.obj: dummy12.asm
    $(masm) /Fo$(odir)\dummy12.obj dummy12.asm

dummy16.obj: dummy16.asm
    $(masm) /Fo$(odir)\dummy16.obj dummy16.asm

dummy20.obj: dummy20.asm
    $(masm) /Fo$(odir)\dummy20.obj dummy20.asm

dummy24.obj: dummy24.asm
    $(masm) /Fo$(odir)\dummy24.obj dummy24.asm

dummy28.obj: dummy28.asm
    $(masm) /Fo$(odir)\dummy28.obj dummy28.asm

dummyt4.obj: dummyt4.asm
    $(masm) /Fo$(odir)\dummyt4.obj dummyt4.asm

dummyt8.obj: dummyt8.asm
    $(masm) /Fo$(odir)\dummyt8.obj dummyt8.asm

dummyt12.obj: dummyt12.asm
    $(masm) /Fo$(odir)\dummyt12.obj dummyt12.asm

dummyt16.obj: dummyt16.asm
    $(masm) /Fo$(odir)\dummyt16.obj dummyt16.asm

dummyt20.obj: dummyt20.asm
    $(masm) /Fo$(odir)\dummyt20.obj dummyt20.asm

dummyt24.obj: dummyt24.asm
    $(masm) /Fo$(odir)\dummyt24.obj dummyt24.asm

dummyt28.obj: dummyt28.asm
    $(masm) /Fo$(odir)\dummyt28.obj dummyt28.asm

xmult1.obj: xmult1.asm xmult.mac xlucas.mac xfft1.mac
    $(masm) /Fo$(odir)\xmult1.obj xmult1.asm

xmult1ax.obj: xmult1ax.asm xmult.mac xnormal.mac
    $(masm) /Fo$(odir)\xmult1ax.obj xmult1ax.asm

xmulp1ax.obj: xmulp1ax.asm xmult.mac xnorm_p.mac
    $(masm) /Fo$(odir)\xmulp1ax.obj xmulp1ax.asm

xmult2.obj: xmult2.asm xmult.mac xlucas.mac xfft2.mac xnormal.mac
    $(masm) /Fo$(odir)\xmult2.obj xmult2.asm

xmulp2.obj: xmulp2.asm xmult.mac xlucas.mac xfft2.mac xnorm_p.mac
    $(masm) /Fo$(odir)\xmulp2.obj xmulp2.asm

xmult2a.obj: xmult2a.asm xmult.mac xpass2.mac xlucas.mac
    $(masm) /Fo$(odir)\xmult2a.obj xmult2a.asm

xmult2ax.obj: xmult2ax.asm xmult.mac xnormal.mac
    $(masm) /Fo$(odir)\xmult2ax.obj xmult2ax.asm

xmulp2ax.obj: xmulp2ax.asm xmult.mac xnorm_p.mac
    $(masm) /Fo$(odir)\xmulp2ax.obj xmulp2ax.asm

xmult3.obj: xmult3.asm xmult.mac xlucas.mac xfft3.mac xnormal.mac
    $(masm) /Fo$(odir)\xmult3.obj xmult3.asm

xmulp3.obj: xmulp3.asm xmult.mac xlucas.mac xfft3.mac xnorm_p.mac
    $(masm) /Fo$(odir)\xmulp3.obj xmulp3.asm

xmult3a.obj: xmult3a.asm xmult.mac xpass2.mac xlucas.mac
    $(masm) /Fo$(odir)\xmult3a.obj xmult3a.asm

xmult3ax.obj: xmult3ax.asm xmult.mac xnormal.mac
    $(masm) /Fo$(odir)\xmult3ax.obj xmult3ax.asm

xmulp3ax.obj: xmulp3ax.asm xmult.mac xnorm_p.mac
    $(masm) /Fo$(odir)\xmulp3ax.obj xmulp3ax.asm

# Create optimized giants.obj

giants.obj: ..\giants.c ..\giants.h
    $(cl) /Fo$(odir)\giants.obj giants.cpp

# Compile special services code

service.obj: service.c
    $(cl) /Fo$(odir)\service.obj service.c

