1 | # Makefile.msc for Pythia8 on Win32/NMAKE |
---|
2 | # Author: Bertrand Bellenot, 02/05/2007, 04/11/2009 |
---|
3 | !IF "$(CFG)" == "" |
---|
4 | CFG = Win32 Release |
---|
5 | !MESSAGE No configuration specified. Defaulting to Win32 Release. |
---|
6 | !ENDIF |
---|
7 | |
---|
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: |
---|
12 | !MESSAGE |
---|
13 | !MESSAGE NMAKE /f "Makefile.msc" CFG="Win32 Debug" |
---|
14 | !MESSAGE |
---|
15 | !MESSAGE Possible choices for configuration are: |
---|
16 | !MESSAGE |
---|
17 | !MESSAGE "Win32 Release" (based on "Win32 (x86) Static Library") |
---|
18 | !MESSAGE "Win32 Debug" (based on "Win32 (x86) Static Library") |
---|
19 | !MESSAGE |
---|
20 | !ERROR An invalid configuration is specified. |
---|
21 | !ENDIF |
---|
22 | |
---|
23 | !IF "$(OS)" == "Windows_NT" |
---|
24 | NULL= |
---|
25 | !ELSE |
---|
26 | NULL=nul |
---|
27 | !ENDIF |
---|
28 | |
---|
29 | OutPutOpt = -out: |
---|
30 | |
---|
31 | # Win32 system with Microsoft Visual C/C++ |
---|
32 | !include <win32.mak> |
---|
33 | CC = $(cc) |
---|
34 | CXX = $(cc) |
---|
35 | CXXFLAGS = -EHsc -nologo -GR -DWIN32 -W3 -FIiso646.h \ |
---|
36 | -DVISUAL_CPLUSPLUS -D_WINDOWS -Iinclude |
---|
37 | LD = $(link) |
---|
38 | |
---|
39 | !IF "$(CFG)" == "Win32 Release" |
---|
40 | CXXOPT = -O2 -MD -DNDEBUG |
---|
41 | LDOPT = |
---|
42 | OUTDIR = ./Release |
---|
43 | !ELSEIF "$(CFG)" == "Win32 Debug" |
---|
44 | CXXOPT = -Z7 -MDd |
---|
45 | LDOPT = |
---|
46 | OUTDIR = ./Debug |
---|
47 | !ENDIF |
---|
48 | |
---|
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 |
---|
55 | !else |
---|
56 | MT_EXE = |
---|
57 | MT_DLL = |
---|
58 | EXTRAFLAGS = -G5 |
---|
59 | !endif |
---|
60 | |
---|
61 | ####### Files |
---|
62 | |
---|
63 | SRCDIR = src |
---|
64 | DUMDIR = lhapdfdummy |
---|
65 | INCDIR = include |
---|
66 | LIBDIR = lib |
---|
67 | LIBRARY = libPythia8 |
---|
68 | LIBDLL = $(LIBDIR)/$(LIBRARY).dll |
---|
69 | LIBLIB = $(LIBDIR)/$(LIBRARY).lib |
---|
70 | |
---|
71 | LDFLAGS = -lib /nologo /out:$(LIBLIB) |
---|
72 | |
---|
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 \ |
---|
79 | $(OUTDIR)/Event.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 \ |
---|
88 | $(OUTDIR)/Info.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 |
---|
133 | |
---|
134 | LIBS : $(OUTDIR) $(LIBDIR) $(BINDIR) $(LIBLIB) |
---|
135 | |
---|
136 | .PHONY: $(LIBS) all |
---|
137 | |
---|
138 | all: $(LIBS) |
---|
139 | |
---|
140 | "$(OUTDIR)" : |
---|
141 | @if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" |
---|
142 | |
---|
143 | "$(LIBDIR)" : |
---|
144 | @if not exist "$(LIBDIR)/$(NULL)" mkdir "$(LIBDIR)" |
---|
145 | |
---|
146 | $(LIBLIB) : $(OBJS) |
---|
147 | $(LD) $(LDFLAGS) $(LDOPT) @<< |
---|
148 | $(OBJS) |
---|
149 | << |
---|
150 | |
---|
151 | .SUFFIXES: .h .cc .obj |
---|
152 | |
---|
153 | {$(INCDIR)}.h{$(OUTDIR)}.obj: |
---|
154 | $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) $(CXXOPT) /Fo"$(OUTDIR)/" -c $(SRCDIR)\$(@B).cc |
---|
155 | |
---|
156 | {$(SRCDIR)}.cc{$(OUTDIR)}.obj: |
---|
157 | $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) $(CXXOPT) /Fo"$(OUTDIR)/" -c $< |
---|
158 | |
---|
159 | {$(DUMDIR)}.cc{$(OUTDIR)}.obj: |
---|
160 | $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) $(CXXOPT) /Fo"$(OUTDIR)/" -c $< |
---|
161 | |
---|
162 | clean: |
---|
163 | -@erase /q /s *.obj >nul 2>&1 |
---|
164 | -@rmdir /q /s Debug >nul 2>&1 |
---|
165 | -@rmdir /q /s Release >nul 2>&1 |
---|
166 | |
---|
167 | distclean: clean |
---|
168 | -@erase /q "$(LIBDIR)\*.*" >nul 2>&1 |
---|
169 | -@rmdir /q /s lib >nul 2>&1 |
---|
170 | |
---|
171 | |
---|