!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) Dynamic Library") !message "Win32 Debug" (based on "Win32 (x86) Dynamic 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 = -nologo -EHsc -GR -DWIN32 -W3 -D_WINDOWS \ -DVISUAL_CPLUSPLUS -I$(ROOTSYS)/include \ -wd4244 -FIw32pragma.h LD = $(link) !if "$(CFG)" == "Win32 Release" CXXOPT = -O2 -arch:SSE2 -MD LDOPT = -opt:ref !elseif "$(CFG)" == "Win32 Debug" !if "$(RUNTIME)" == "Debug" CXXOPT = -Z7 -MDd !else CXXOPT = -Z7 -O2 -arch:SSE2 -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 -include:_G__cpp_setupG__Hist \ -include:_G__cpp_setupG__Graf -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) EVENTLIB = libEvent.lib #------------------------------------------------------------------------------ RIDES = main.$(SrcSuf) TGRootIDE.$(SrcSuf) RIDEDict.$(SrcSuf) RIDEO = main.$(ObjSuf) TGRootIDE.$(ObjSuf) RIDEDict.$(ObjSuf) RIDE = RIDE$(ExeSuf) OBJS = $(RIDEO) PROGRAMS = $(RIDE) #------------------------------------------------------------------------------ all: $(PROGRAMS) $(RIDE): $(RIDEO) $(LD) $(LDFLAGS) \ $(RIDEO) $(GLIBS) $(ROOTSYS)\lib\libGuiHtml.lib \ $(ROOTSYS)\lib\libHtml.lib $(OutPutOpt)$@ $(MT_EXE) @echo "$@ done" RIDEDict.$(SrcSuf): TGRootIDE.h LinkDef.h @echo "Generating dictionary $@..." @rootcling -f $@ -c TGRootIDE.h LinkDef.h #------------------------------------------------------------------------------ clean: @del *.obj *Dict.* *.def *.exp *.d *.log .def *.pdb *.ilk *.manifest distclean: clean @del *.exe *.root *.ps *.lib *.dll ### .$(SrcSuf).$(ObjSuf): $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) $(CXXOPT) -c $<