!if "$(CFG)" == "" !if ([findstr /c:"--build=debug" $(ROOTSYS)\bin\root-config > nul ] == 0) CFG = Win32 Debug !if ([findstr /c:"--disable-winrtdebug" $(ROOTSYS)\bin\root-config > nul ] == 0) RUNTIME = Release !else RUNTIME = Debug !endif !message No configuration specified: Defaulting to Win32 Debug !message With $(RUNTIME) Runtime DLL (Taken from ROOT config). !message . !else CFG = Win32 Release RUNTIME = Release !message No configuration specified: Defaulting to Win32 Release !message With $(RUNTIME) Runtime DLL (Taken from ROOT config). !message . !endif !else !if "$(CFG)" == "Win32 Release" RUNTIME = Release !elseif "$(CFG)" == "Win32 Debug" RUNTIME = Debug !endif !endif !if "$(CFG)" != "Win32 Release" && "$(CFG)" != "Win32 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.msc" CFG="Win32 Debug" !message !message Possible choices for configuration are: !message !message "Win32 Release" (based on "Win32 (x86) Library") !message "Win32 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)" == "Win32 Release" CXXOPT = -O2 -MD LDOPT = -opt:ref !elseif "$(CFG)" == "Win32 Debug" !if "$(RUNTIME)" == "Debug" CXXOPT = -Z7 -MDd !else CXXOPT = -Z7 -MD !endif LDOPT = -debug !endif # Check if nmake version is 8.xx or 9.xx !if ([nmake /? 2>&1 | findstr /c:"Version 8\." > nul ] == 0) || \ ([nmake /? 2>&1 | findstr /c:"Version 9\." > nul ] == 0) MT_EXE = mt -nologo -manifest $@.manifest -outputresource:$@;1 MT_DLL = mt -nologo -manifest $@.manifest -outputresource:$@;2 EXTRAFLAGS = -D_CRT_SECURE_NO_DEPRECATE !else if ([nmake /? 2>&1 | findstr /c:"Version 10\." > nul ] == 0) EXTRAFLAGS = -D_CRT_SECURE_NO_DEPRECATE !else MT_EXE = MT_DLL = EXTRAFLAGS = -G5 !endif LDFLAGS = $(LDOPT) $(conlflags) -nologo -ignore:4049,4075,4217,4221 \ -include:_G__cpp_setupG__G3D -include:_G__cpp_setupG__GPad \ -include:_G__cpp_setupG__Graf -include:_G__cpp_setupG__Hist \ -include:_G__cpp_setupG__Matrix -include:_G__cpp_setupG__Physics \ -include:_G__cpp_setupG__PostScript -include:_G__cpp_setupG__Rint \ -include:_G__cpp_setupG__Tree 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 $< ###############################################################################