## ## Name: Makefile.msvc ## Purpose: Makefile for IMath library and associated tools ## for Microsoft Visual Studio 2005 ## Author: Matus Horvath ## ## Copyright (C) 2006 Matus Horvath. Permission has been granted to use, ## modify, and redistribute this file according to the terms of the IMath ## license. ## ## Usage: nmake /f Makefile.msvc ## # --- begin configuration section --- ## Settings for Microsoft Windows systems using nmake. ## To build with debugging, add DEBUG=Y on the "nmake" command line. CC=cl.exe LD=link.exe CFLAGS=$(CFLAGS) -nologo -I. -D_CRT_SECURE_NO_DEPRECATE $(DCFLAGS) LDFLAGS=$(LDFLAGS) -nologo $(DLDFLAGS) LIBS=$(DLIBS) !if "$(DEBUG)" == "Y" DCFLAGS=-ZI -Od -DDEBUG=1 -DTRACEABLE_FREE=1 DLDFLAGS=-DEBUG #DLIBS=-lefence !else DCFLAGS=-O2 -Ob2 DLDFLAGS= #DLIBS= !endif ## Visual Studio C/C++ 2005 compiler supports "long long" 64-bit type. CFLAGS=$(CFLAGS) -DUSE_LONG_LONG # --- end of configuration section --- TARGETS=imtest.exe pi.exe bintest.exe findprime.exe HDRS=imath.h imrat.h iprime.h imdrover.h rsamath.h SRCS=$(HDRS:.h=.c) $(TARGETS:.exe=.c) OBJS=$(SRCS:.c=.obj) EXAMPLES=input.exe basecvt.exe rounding.exe .c.obj: $(CC) $(CFLAGS) -c $< all: objs examples test objs: $(OBJS) # Because Visual Studio does not permit Unix shell syntax, you will # have to run the tests manually once the "test" target is built. test: imtest.exe pi.exe # @ echo "" # @ echo "Running tests, you should not see any 'FAILED' lines here." # @ echo "If you do, please see doc.txt for how to report a bug." # @ echo "" # (cd tests && ./test.sh) $(EXAMPLES): imath.obj imrat.obj iprime.obj examples/$*.obj @move $*.obj examples/$*.obj $(LD) $(LDFLAGS) -out:$@ $** $(LIBS) examples: $(EXAMPLES) imtest.exe: imtest.obj imath.obj imrat.obj imdrover.obj $(LD) $(LDFLAGS) -out:$@ $** $(LIBS) pi.exe: pi.obj imath.obj $(LD) $(LDFLAGS) -out:$@ $** $(LIBS) findprime.exe: findprime.obj imath.obj iprime.obj $(LD) $(LDFLAGS) -out:$@ $** $(LIBS) rtest.exe: rtest.obj imath.obj rsamath.obj $(LD) $(LDFLAGS) -out:$@ $** $(LIBS) bintest.exe: imath.obj bintest.obj $(LD) $(LDFLAGS) -out:$@ $** $(LIBS) clean: del /q /f *.exe *.obj examples\*.obj # End of Makefile.msvc