]>
Commit | Line | Data |
---|---|---|
63ba5337 | 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 |