#
# MS Visual C Makefile for Levenberg - Marquardt minimization
# Under Unix/Linux, use Makefile for GCC
#
# At the command prompt, type
# nmake /f Makefile.vc
#
# NOTE: To use this, you must have MSVC installed and properly
# configured for command line use (you might need to run VCVARS32.BAT
# included with your copy of MSVC). Another option is to use the
# free MSVC toolkit from http://msdn.microsoft.com/visualc/vctoolkit2003/
#

MAKE=nmake /nologo
CC=cl /nologo
LAPACKFLAG=/DHAVE_LAPACK # COMMENT THIS LINE IF YOU DO NOT HAVE LAPACK
# YOU MIGHT WANT TO UNCOMMENT THE FOLLOWING LINE
#SPOPTFLAGS=/GL /G7 /arch:SSE2 # special optimization: resp. whole program opt., Athlon/Pentium4 opt., SSE2 extensions
# /MD COMPILES WITH MULTIPLE THREADS SUPPORT. TO DISABLE IT, SUBSTITUTE WITH /ML
CFLAGS=$(LAPACKFLAG) /I. /MD /W3 /GX /O2 $(SPOPTFLAGS) # /Wall
LAPACKLIBS_PATH=C:\src\lib # WHEN USING LAPACK, CHANGE THIS TO WHERE YOUR COMPILED LIBS ARE!
LDFLAGS=/link /subsystem:console /opt:ref /libpath:$(LAPACKLIBS_PATH) /libpath:.
LIBOBJS=lm.obj Axb.obj misc.obj lmlec.obj lmbc.obj 
LIBSRCS=lm.c Axb.c misc.c lmlec.c lmbc.c
DEMOBJS=lmdemo.obj
DEMOSRCS=lmdemo.c
AR=lib /nologo

# comment the following line if you are not using LAPACK
LAPACKLIBS=clapack.lib blas.lib libF77.lib libI77.lib

LIBS=$(LAPACKLIBS) levmar.lib

all: levmar.lib lmdemo.exe

levmar.lib: $(LIBOBJS)
	$(AR) /out:levmar.lib $(LIBOBJS)

lmdemo.exe: $(DEMOBJS) levmar.lib
	$(CC) $(DEMOBJS) $(LDFLAGS) /out:lmdemo.exe $(LIBS)

lm.obj: lm.c lm_core.c lm.h misc.h
Axb.obj: Axb.c Axb_core.c lm.h misc.h
misc.obj: misc.c misc_core.c lm.h misc.h
lmlec.obj: lmlec.c lmlec_core.c lm.h misc.h
lmbc.obj: lmbc.c lmbc_core.c lm.h misc.h

lmdemo.obj: lm.h

clean:
	-del $(LIBOBJS) $(DEMOBJS)

