1 # Makefile.msc for Pythia8 on Win32/NMAKE
2 # Author: Bertrand Bellenot, 02/05/2007, 04/11/2009
5 !MESSAGE No configuration specified. Defaulting to Win32 Release.
8 !IF "$(CFG)" != "Win32 Release" && "$(CFG)" != "Win32 Debug"
9 !MESSAGE Invalid configuration "$(CFG)" specified.
10 !MESSAGE You can specify a configuration when running NMAKE
11 !MESSAGE by defining the macro CFG on the command line. For example:
13 !MESSAGE NMAKE /f "Makefile.msc" CFG="Win32 Debug"
15 !MESSAGE Possible choices for configuration are:
17 !MESSAGE "Win32 Release" (based on "Win32 (x86) Static Library")
18 !MESSAGE "Win32 Debug" (based on "Win32 (x86) Static Library")
20 !ERROR An invalid configuration is specified.
23 !IF "$(OS)" == "Windows_NT"
31 # Win32 system with Microsoft Visual C/C++
35 CXXFLAGS = -EHsc -nologo -GR -DWIN32 -W3 -FIiso646.h \
36 -DVISUAL_CPLUSPLUS -D_WINDOWS -Iinclude
39 !IF "$(CFG)" == "Win32 Release"
40 CXXOPT = -O2 -MD -DNDEBUG
43 !ELSEIF "$(CFG)" == "Win32 Debug"
49 # Check if nmake version is 8.xx or 9.xx
50 !if ([nmake /? 2>&1 | findstr /c:"Version 8\." > nul ] == 0) || \
51 ([nmake /? 2>&1 | findstr /c:"Version 9\." > nul ] == 0)
52 MT_EXE = mt -nologo -manifest $@.manifest -outputresource:$@;1
53 MT_DLL = mt -nologo -manifest $@.manifest -outputresource:$@;2
54 EXTRAFLAGS = -D_CRT_SECURE_NO_DEPRECATE
68 LIBDLL = $(LIBDIR)/$(LIBRARY).dll
69 LIBLIB = $(LIBDIR)/$(LIBRARY).lib
71 LDFLAGS = -lib /nologo /out:$(LIBLIB)
73 OBJS = $(OUTDIR)/Analysis.obj \
74 $(OUTDIR)/Basics.obj \
75 $(OUTDIR)/BeamParticle.obj \
76 $(OUTDIR)/BeamRemnants.obj \
77 $(OUTDIR)/BeamShape.obj \
78 $(OUTDIR)/BoseEinstein.obj \
80 $(OUTDIR)/FragmentationFlavZpT.obj \
81 $(OUTDIR)/FragmentationSystems.obj \
82 $(OUTDIR)/HadronLevel.obj \
83 $(OUTDIR)/HadronScatter.obj \
84 $(OUTDIR)/HelicityBasics.obj \
85 $(OUTDIR)/HelicityMatrixElements.obj \
86 $(OUTDIR)/HiddenValleyFragmentation.obj \
87 $(OUTDIR)/History.obj \
89 $(OUTDIR)/LesHouches.obj \
90 $(OUTDIR)/MergingHooks.obj \
91 $(OUTDIR)/MiniStringFragmentation.obj \
92 $(OUTDIR)/MultipartonInteractions.obj \
93 $(OUTDIR)/ParticleData.obj \
94 $(OUTDIR)/ParticleDecays.obj \
95 $(OUTDIR)/PartonDistributions.obj \
96 $(OUTDIR)/PartonLevel.obj \
97 $(OUTDIR)/PartonSystems.obj \
98 $(OUTDIR)/PhaseSpace.obj \
99 $(OUTDIR)/ProcessContainer.obj \
100 $(OUTDIR)/ProcessLevel.obj \
101 $(OUTDIR)/Pythia.obj \
102 $(OUTDIR)/PythiaStdlib.obj \
103 $(OUTDIR)/ResonanceDecays.obj \
104 $(OUTDIR)/ResonanceWidths.obj \
105 $(OUTDIR)/RHadrons.obj \
106 $(OUTDIR)/Settings.obj \
107 $(OUTDIR)/SigmaCompositeness.obj \
108 $(OUTDIR)/SigmaEW.obj \
109 $(OUTDIR)/SigmaExtraDim.obj \
110 $(OUTDIR)/SigmaGeneric.obj \
111 $(OUTDIR)/SigmaHiggs.obj \
112 $(OUTDIR)/SigmaLeftRightSym.obj \
113 $(OUTDIR)/SigmaLeptoquark.obj \
114 $(OUTDIR)/SigmaNewGaugeBosons.obj \
115 $(OUTDIR)/SigmaOnia.obj \
116 $(OUTDIR)/SigmaProcess.obj \
117 $(OUTDIR)/SigmaQCD.obj \
118 $(OUTDIR)/SigmaSUSY.obj \
119 $(OUTDIR)/SigmaTotal.obj \
120 $(OUTDIR)/SpaceShower.obj \
121 $(OUTDIR)/StandardModel.obj \
122 $(OUTDIR)/StringFragmentation.obj \
123 $(OUTDIR)/SusyCouplings.obj \
124 $(OUTDIR)/SusyLesHouches.obj \
125 $(OUTDIR)/SusyResonanceWidths.obj \
126 $(OUTDIR)/TauDecays.obj \
127 $(OUTDIR)/TimeShower.obj \
128 $(OUTDIR)/UserHooks.obj \
129 # If you link to HepMC you also need HepMCInterface
130 # $(OUTDIR)/HepMCInterface.obj \
131 # If you link to LHAPDF you don't want the last line
132 $(OUTDIR)/LHAPDFDummy.obj
134 LIBS : $(OUTDIR) $(LIBDIR) $(BINDIR) $(LIBLIB)
141 @if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
144 @if not exist "$(LIBDIR)/$(NULL)" mkdir "$(LIBDIR)"
147 $(LD) $(LDFLAGS) $(LDOPT) @<<
151 .SUFFIXES: .h .cc .obj
153 {$(INCDIR)}.h{$(OUTDIR)}.obj:
154 $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) $(CXXOPT) /Fo"$(OUTDIR)/" -c $(SRCDIR)\$(@B).cc
156 {$(SRCDIR)}.cc{$(OUTDIR)}.obj:
157 $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) $(CXXOPT) /Fo"$(OUTDIR)/" -c $<
159 {$(DUMDIR)}.cc{$(OUTDIR)}.obj:
160 $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) $(CXXOPT) /Fo"$(OUTDIR)/" -c $<
163 -@erase /q /s *.obj >nul 2>&1
164 -@rmdir /q /s Debug >nul 2>&1
165 -@rmdir /q /s Release >nul 2>&1
168 -@erase /q "$(LIBDIR)\*.*" >nul 2>&1
169 -@rmdir /q /s lib >nul 2>&1