!IF "$(CFG)" == "" CFG = Debug !MESSAGE No configuration specified. Defaulting to Win32 Debug. !ENDIF !IF "$(CFG)" != "Release" && "$(CFG)" != "Debug" !MESSAGE Invalid configuration "$(CFG)" specified. !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "Makefile.win32" CFG="Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "Release" (based on "Win32 (x86) Library") !MESSAGE "Debug" (based on "Win32 (x86) Library") !MESSAGE !ERROR An invalid configuration is specified. !ENDIF ObjSuf = obj SrcSuf = cxx ExeSuf = .exe DllSuf = dll OutPutOpt = -out: # Win32 system with Microsoft Visual C/C++ !include CC = $(cc) CXX = $(cc) CXXFLAGS = $(cvarsdll) -EHsc -nologo -GR -DWIN32 \ -D_WINDOWS -I$(ROOTSYS)/include \ -FIw32pragma.h LD = $(link) !IF "$(CFG)" == "Release" CXXOPT = -O2 -MD LDOPT = -opt:ref !ELSEIF "$(CFG)" == "Debug" CXXOPT = -Z7 -MDd LDOPT = -debug !ENDIF !if ("$(_NMAKE_VER)" == "8.00.50727.42") || ("$(_NMAKE_VER)" == "8.00.50727.762") || ("$(_NMAKE_VER)" == "9.00.21022.08") MT_EXE = mt -nologo -manifest $@.manifest -outputresource:$@;1 MT_DLL = mt -nologo -manifest $@.manifest -outputresource:$@;2 EXTRAFLAGS = -D_CRT_SECURE_NO_DEPRECATE !else MT_EXE = MT_DLL = EXTRAFLAGS = -G5 !endif LDFLAGS = $(LDOPT) $(conlflags) -nologo -include:_G__cpp_setupG__Hist \ -include:_G__cpp_setupG__Graf1 -include:_G__cpp_setupG__G3D \ -include:_G__cpp_setupG__GPad -include:_G__cpp_setupG__Tree \ -include:_G__cpp_setupG__Rint -include:_G__cpp_setupG__PostScript \ -include:_G__cpp_setupG__Matrix -include:_G__cpp_setupG__Physics SOFLAGS = $(dlllflags:-pdb:none=) ROOTLIBS = $(ROOTSYS)/lib/libCore.lib \ $(ROOTSYS)/lib/libCint.lib $(ROOTSYS)/lib/libHist.lib \ $(ROOTSYS)/lib/libGraf.lib $(ROOTSYS)/lib/libGraf3d.lib \ $(ROOTSYS)/lib/libGpad.lib $(ROOTSYS)/lib/libTree.lib \ $(ROOTSYS)/lib/libRint.lib $(ROOTSYS)/lib/libPostscript.lib \ $(ROOTSYS)/lib/libMatrix.lib $(ROOTSYS)/lib/libPhysics.lib \ $(ROOTSYS)/lib/libNet.lib $(ROOTSYS)/lib/libRIO.lib \ $(ROOTSYS)/lib/libMathCore.lib LIBS = $(ROOTLIBS) GLIBS = $(LIBS) $(ROOTSYS)/lib/libGui.lib $(ROOTSYS)/lib/libGraf.lib \ $(ROOTSYS)/lib/libGpad.lib LIBSALL = $(ROOTLIBS) ############################################################################### TUTILSO = TUtils.$(ObjSuf) TUtilsDict.$(ObjSuf) TUTILSS = TUtils.$(SrcSuf) TUtilsDict.$(SrcSuf) TUTILSSO = libTUtils.$(DllSuf) TUTILSLIB = libTUTILS.lib OBJS = $(TUTILSO) PROGRAMS = $(TUTILSSO) ############################################################################### .SUFFIXES: .$(SrcSuf) .$(ObjSuf) .$(DllSuf) all: $(PROGRAMS) $(TUTILSSO): $(TUTILSO) BINDEXPLIB $* $(TUTILSO) > $*.def lib -nologo -MACHINE:IX86 $(TUTILSO) -def:$*.def \ $(OutPutOpt)$(TUTILSLIB) $(LD) $(SOFLAGS) $(LDFLAGS) $(TUTILSO) $*.exp $(LIBS) $(OutPutOpt)$@ $(MT_DLL) @echo "$@ done" ############################################################################### TUtilsDict.$(SrcSuf): TUtils.h LinkDef.h @echo "Generating dictionary $@..." @rootcint -f $@ -c TUtils.h LinkDef.h clean: rm -f *.o *.obj *.res *.pdb *.def *.exp \ *.lib *.ilk *.manifest *.d *.def *Dict.* distclean: clean @rm -f $(PROGRAMS) *.dll ############################################################################### .$(SrcSuf).$(ObjSuf): $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) -c $< ###############################################################################