C      = CL
CFLAGS   = -WL -EHsc -nologo -TP
LFLAGS   = -WL -EHsc -nologo
SDIR    = ..\src
IDIR    = .\

OBJECTS  = sclerror.obj intvec.obj realmat.obj kronprd.obj \
                hermite.obj dcnd.obj dgmpnt.obj heapsort.obj \
                dsolve.obj dsweep.obj dginv.obj hquad.obj edf.obj edfobj.obj \
                dsvd.obj dpsdsol.obj psdsol.obj gchirv.obj ran.obj pnorm.obj\
                solve.obj starbox.obj unsk.obj svd.obj nlsolve.obj\
		nleqns.obj iran.obj poly.obj fmt.obj gammln.obj \
		linesrch.obj nlopt.obj cutstr.obj dgmprd.obj dgmcpy.obj \
		vecstrbuf.obj eigen.obj quantreg.obj gaussq.obj nlroot.obj \
		multi.obj csvread.obj istype.obj eatwhite.obj \
		futil.obj julian.obj cholesky.obj

libscl.lib      : $(OBJECTS)
        lib -out:c:\temp\libscl.lib $(OBJECTS) 
        copy c:\temp\libscl.lib libscl.lib
        del  c:\temp\libscl.lib

scltypes.h         : $(SDIR)\scltypes.ms
        copy $(SDIR)\scltypes.ms scltypes.h

sclerror.h         : $(SDIR)\sclerror.h
        copy $(SDIR)\sclerror.h sclerror.h

sclfuncs.h         : $(SDIR)\sclfuncs.h scltypes.h sclerror.h
        copy $(SDIR)\sclfuncs.h sclfuncs.h

intvec.h       : $(SDIR)\intvec.h scltypes.h sclerror.h sclfuncs.h
        copy $(SDIR)\intvec.h intvec.h

realmat.h       : $(SDIR)\realmat.h scltypes.h sclerror.h sclfuncs.h intvec.h
        copy $(SDIR)\realmat.h realmat.h

kronprd.h       : $(SDIR)\kronprd.h scltypes.h sclerror.h sclfuncs.h \
                  intvec.h realmat.h
        copy $(SDIR)\kronprd.h kronprd.h

libscl.h        : $(SDIR)\libscl.h scltypes.h sclerror.h sclfuncs.h \
                  intvec.h realmat.h kronprd.h
        copy $(SDIR)\libscl.h libscl.h

sclerror.obj     : $(SDIR)\sclerror.cpp scltypes.h sclerror.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\sclerror.cpp

intvec.obj     : $(SDIR)\intvec.cpp scltypes.h intvec.h sclfuncs.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\intvec.cpp

realmat.obj     : $(SDIR)\realmat.cpp scltypes.h intvec.h realmat.h sclfuncs.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\realmat.cpp

kronprd.obj     : $(SDIR)\kronprd.cpp scltypes.h realmat.h kronprd.h sclfuncs.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\kronprd.cpp

hermite.obj     : $(SDIR)\hermite.cpp scltypes.h sclfuncs.h 
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\hermite.cpp

dcnd.obj        : $(SDIR)\dcnd.cpp scltypes.h sclfuncs.h 
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\dcnd.cpp

dgmpnt.obj      : $(SDIR)\dgmpnt.cpp scltypes.h sclfuncs.h 
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\dgmpnt.cpp

heapsort.obj    : $(SDIR)\heapsort.cpp scltypes.h sclfuncs.h 
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\heapsort.cpp

dsolve.obj      : $(SDIR)\dsolve.cpp scltypes.h sclfuncs.h 
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\dsolve.cpp

dpsdsol.obj     : $(SDIR)\dpsdsol.cpp scltypes.h sclfuncs.h 
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\dpsdsol.cpp

dsweep.obj      : $(SDIR)\dsweep.cpp scltypes.h sclfuncs.h 
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\dsweep.cpp

dginv.obj       : $(SDIR)\dginv.cpp scltypes.h sclfuncs.h 
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\dginv.cpp

dsvd.obj        : $(SDIR)\dsvd.cpp scltypes.h sclfuncs.h 
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\dsvd.cpp

gchirv.obj      : $(SDIR)\gchirv.cpp scltypes.h sclfuncs.h 
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\gchirv.cpp

ran.obj : $(SDIR)\ran.cpp scltypes.h sclfuncs.h 
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\ran.cpp

pnorm.obj       : $(SDIR)\pnorm.cpp scltypes.h sclfuncs.h 
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\pnorm.cpp

hquad.obj       : $(SDIR)\hquad.cpp scltypes.h sclfuncs.h realmat.h libscl.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\hquad.cpp

edf.obj       : $(SDIR)\edf.cpp scltypes.h sclfuncs.h realmat.h libscl.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\edf.cpp

edfobj.obj       : $(SDIR)\edfobj.cpp scltypes.h sclfuncs.h realmat.h libscl.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\edfobj.cpp

solve.obj       : $(SDIR)\solve.cpp scltypes.h sclfuncs.h realmat.h libscl.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\solve.cpp

psdsol.obj      : $(SDIR)\psdsol.cpp scltypes.h sclfuncs.h realmat.h libscl.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\psdsol.cpp

starbox.obj     : $(SDIR)\starbox.cpp scltypes.h sclfuncs.h 
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\starbox.cpp

unsk.obj        : $(SDIR)\unsk.cpp scltypes.h sclfuncs.h 
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\unsk.cpp

svd.obj : $(SDIR)\svd.cpp scltypes.h sclfuncs.h 
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\svd.cpp

nlsolve.obj : $(SDIR)\nlsolve.cpp scltypes.h sclfuncs.h 
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\nlsolve.cpp

nleqns.obj : $(SDIR)\nleqns.cpp scltypes.h sclfuncs.h 
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\nleqns.cpp

iran.obj : $(SDIR)\iran.cpp scltypes.h sclfuncs.h 
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\iran.cpp

poly.obj : $(SDIR)\poly.cpp scltypes.h sclfuncs.h 
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\poly.cpp

fmt.obj : $(SDIR)\fmt.cpp scltypes.h sclfuncs.h 
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\fmt.cpp

gammln.obj : $(SDIR)\gammln.cpp scltypes.h sclfuncs.h 
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\gammln.cpp

linesrch.obj : $(SDIR)\linesrch.cpp sclfuncs.h realmat.h libscl.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\linesrch.cpp

nlopt.obj : $(SDIR)\nlopt.cpp sclfuncs.h realmat.h libscl.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\nlopt.cpp

cutstr.obj : $(SDIR)\cutstr.cpp scltypes.h sclfuncs.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\cutstr.cpp

dgmprd.obj : $(SDIR)\dgmprd.cpp scltypes.h sclfuncs.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\dgmprd.cpp

dgmcpy.obj : $(SDIR)\dgmcpy.cpp scltypes.h sclfuncs.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\dgmcpy.cpp

vecstrbuf.obj : $(SDIR)\vecstrbuf.cpp scltypes.h sclfuncs.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\vecstrbuf.cpp

eigen.obj : $(SDIR)\eigen.cpp scltypes.h sclfuncs.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\eigen.cpp

quantreg.obj : $(SDIR)\quantreg.cpp scltypes.h sclfuncs.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\quantreg.cpp

gaussq.obj : $(SDIR)\gaussq.cpp scltypes.h sclfuncs.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\gaussq.cpp

nlroot.obj : $(SDIR)\nlroot.cpp scltypes.h sclfuncs.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\nlroot.cpp

multi.obj : $(SDIR)\multi.cpp scltypes.h sclfuncs.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\multi.cpp

csvread.obj       : $(SDIR)\csvread.cpp scltypes.h sclfuncs.h realmat.h libscl.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\csvread.cpp

istype.obj       : $(SDIR)\istype.cpp scltypes.h sclfuncs.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\istype.cpp

eatwhite.obj       : $(SDIR)\eatwhite.cpp scltypes.h sclfuncs.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\eatwhite.cpp

futil.obj       : $(SDIR)\futil.cpp scltypes.h sclfuncs.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\futil.cpp

julian.obj       : $(SDIR)\julian.cpp scltypes.h sclfuncs.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\julian.cpp

cholesky.obj       : $(SDIR)\cholesky.cpp scltypes.h sclfuncs.h
        $(CC) $(CFLAGS) -c -I$(IDIR) $(SDIR)\cholesky.cpp

clean   :
        del *.obj

veryclean       :
        del *.obj
        del *.h
        del libscl.lib
