source: src/Makefile.am@ 88b400

Action_Thermostats Add_AtomRandomPerturbation Add_FitFragmentPartialChargesAction Add_RotateAroundBondAction Add_SelectAtomByNameAction Added_ParseSaveFragmentResults AddingActions_SaveParseParticleParameters Adding_Graph_to_ChangeBondActions Adding_MD_integration_tests Adding_ParticleName_to_Atom Adding_StructOpt_integration_tests AtomFragments Automaking_mpqc_open AutomationFragmentation_failures Candidate_v1.5.4 Candidate_v1.6.0 Candidate_v1.6.1 ChangeBugEmailaddress ChangingTestPorts ChemicalSpaceEvaluator CombiningParticlePotentialParsing Combining_Subpackages Debian_Package_split Debian_package_split_molecuildergui_only Disabling_MemDebug Docu_Python_wait EmpiricalPotential_contain_HomologyGraph EmpiricalPotential_contain_HomologyGraph_documentation Enable_parallel_make_install Enhance_userguide Enhanced_StructuralOptimization Enhanced_StructuralOptimization_continued Example_ManyWaysToTranslateAtom Exclude_Hydrogens_annealWithBondGraph FitPartialCharges_GlobalError Fix_BoundInBox_CenterInBox_MoleculeActions Fix_ChargeSampling_PBC Fix_ChronosMutex Fix_FitPartialCharges Fix_FitPotential_needs_atomicnumbers Fix_ForceAnnealing Fix_IndependentFragmentGrids Fix_ParseParticles Fix_ParseParticles_split_forward_backward_Actions Fix_PopActions Fix_QtFragmentList_sorted_selection Fix_Restrictedkeyset_FragmentMolecule Fix_StatusMsg Fix_StepWorldTime_single_argument Fix_Verbose_Codepatterns Fix_fitting_potentials Fixes ForceAnnealing_goodresults ForceAnnealing_oldresults ForceAnnealing_tocheck ForceAnnealing_with_BondGraph ForceAnnealing_with_BondGraph_continued ForceAnnealing_with_BondGraph_continued_betteresults ForceAnnealing_with_BondGraph_contraction-expansion FragmentAction_writes_AtomFragments FragmentMolecule_checks_bonddegrees GeometryObjects Gui_Fixes Gui_displays_atomic_force_velocity ImplicitCharges IndependentFragmentGrids IndependentFragmentGrids_IndividualZeroInstances IndependentFragmentGrids_IntegrationTest IndependentFragmentGrids_Sole_NN_Calculation JobMarket_RobustOnKillsSegFaults JobMarket_StableWorkerPool JobMarket_unresolvable_hostname_fix MoreRobust_FragmentAutomation ODR_violation_mpqc_open PartialCharges_OrthogonalSummation PdbParser_setsAtomName PythonUI_with_named_parameters QtGui_reactivate_TimeChanged_changes Recreated_GuiChecks Rewrite_FitPartialCharges RotateToPrincipalAxisSystem_UndoRedo SaturateAtoms_findBestMatching SaturateAtoms_singleDegree StoppableMakroAction Subpackage_CodePatterns Subpackage_JobMarket Subpackage_LinearAlgebra Subpackage_levmar Subpackage_mpqc_open Subpackage_vmg Switchable_LogView ThirdParty_MPQC_rebuilt_buildsystem TrajectoryDependenant_MaxOrder TremoloParser_IncreasedPrecision TremoloParser_MultipleTimesteps TremoloParser_setsAtomName Ubuntu_1604_changes stable
Last change on this file since 88b400 was 88b400, checked in by Frederik Heber <heber@…>, 14 years ago

converted #define's to enums, consts and typedefs [Meyers, "Effective C++", item 1].

basic changes:

  • #define bla 1.3 -> const double bla = 1.3
  • #define bla "test" -> const char * const bla = "test
  • use class specific constants! (HULLEPSILON)

const int Class::bla = 1.3; (in .cpp)
static const int bla; (in .hpp inside class private section)

  • "enum hack": #define bla 5 -> enum { bla = 5 };
    • if const int bla=5; impossible
    • e.g. necessary if constant is used in array declaration (int blabla[bla];)

details:

  • new file defs.cpp where const double reside in and are referenced by extern "C" const double
  • joiner.cpp: main() had to be changed due to concatenation of two #define possible, of two const char * not
  • class specific constants: HULLEPSILON, BONDTHRESHOLD, SPHERERADIUS
  • extended GetPathLengthonCircumCircle to additional parameter HULLEPSILON
  • Property mode set to 100644
File size: 12.7 KB
Line 
1# PLEASE adhere to the alphabetical ordering in this Makefile!
2# Also indentation by a single tab
3
4SUBDIRS = Actions Exceptions Helpers LinearAlgebra Parser UIElements
5
6ATOMSOURCE = \
7 atom.cpp \
8 atom_atominfo.cpp \
9 atom_bondedparticle.cpp \
10 atom_bondedparticleinfo.cpp \
11 atom_graphnode.cpp \
12 atom_graphnodeinfo.cpp \
13 atom_particleinfo.cpp \
14 atom_trajectoryparticle.cpp \
15 atom_trajectoryparticleinfo.cpp
16ATOMHEADER = \
17 atom.hpp \
18 atom_atominfo.hpp \
19 atom_bondedparticle.hpp \
20 atom_bondedparticleinfo.hpp \
21 atom_graphnode.hpp \
22 atom_graphnodeinfo.hpp \
23 atom_particleinfo.hpp \
24 atom_trajectoryparticle.hpp \
25 atom_trajectoryparticleinfo.hpp
26
27ANALYSISSOURCE = \
28 analysis_bonds.cpp \
29 analysis_correlation.cpp
30ANALYSISHEADER = \
31 analysis_bonds.hpp \
32 analysis_correlation.hpp
33
34ACTIONSSOURCE = \
35 Actions/Action.cpp \
36 Actions/ActionHistory.cpp \
37 Actions/ActionRegistry.cpp \
38 Actions/ActionSequence.cpp \
39 Actions/ErrorAction.cpp \
40 Actions/MakroAction.cpp \
41 Actions/ManipulateAtomsProcess.cpp \
42 Actions/MethodAction.cpp \
43 Actions/Process.cpp
44
45ACTIONSHEADER = \
46 Actions/Action.hpp \
47 Actions/ActionHistory.hpp \
48 Actions/ActionRegistry.hpp \
49 Actions/ActionSequence.hpp \
50 Actions/Calculation.hpp \
51 Actions/Calculation_impl.hpp \
52 Actions/ErrorAction.hpp \
53 Actions/MakroAction.hpp \
54 Actions/ManipulateAtomsProcess.hpp \
55 Actions/MapOfActions.hpp \
56 Actions/MethodAction.hpp \
57 Actions/Process.hpp
58
59PATTERNSOURCE = \
60 Patterns/Observer.cpp
61PATTERNHEADER = \
62 Patterns/Cacheable.hpp \
63 Patterns/Observer.hpp \
64 Patterns/Singleton.hpp
65
66SHAPESOURCE = \
67 Shapes/BaseShapes.cpp \
68 Shapes/Shape.cpp \
69 Shapes/ShapeOps.cpp
70SHAPEHEADER = \
71 Shapes/BaseShapes.hpp \
72 Shapes/Shape.hpp \
73 Shapes/ShapeOps.hpp
74
75
76DESCRIPTORSOURCE = Descriptors/AtomDescriptor.cpp \
77 Descriptors/AtomIdDescriptor.cpp \
78 Descriptors/AtomSelectionDescriptor.cpp \
79 Descriptors/AtomTypeDescriptor.cpp \
80 Descriptors/MoleculeDescriptor.cpp \
81 Descriptors/MoleculeFormulaDescriptor.cpp \
82 Descriptors/MoleculeIdDescriptor.cpp \
83 Descriptors/MoleculeNameDescriptor.cpp \
84 Descriptors/MoleculePtrDescriptor.cpp \
85 Descriptors/MoleculeSelectionDescriptor.cpp
86
87
88DESCRIPTORHEADER = Descriptors/AtomDescriptor.hpp \
89 Descriptors/AtomIdDescriptor.hpp \
90 Descriptors/AtomSelectionDescriptor.hpp \
91 Descriptors/AtomTypeDescriptor.hpp \
92 Descriptors/MoleculeDescriptor.hpp \
93 Descriptors/MoleculeFormulaDescriptor.hpp \
94 Descriptors/MoleculeIdDescriptor.hpp \
95 Descriptors/MoleculeNameDescriptor.hpp \
96 Descriptors/MoleculePtrDescriptor.hpp \
97 Descriptors/MoleculeSelectionDescriptor.cpp
98
99
100QTUIMOC_HEADER = UIElements/QT4/QTDialog.hpp \
101 UIElements/QT4/QTMainWindow.hpp \
102 UIElements/Menu/QT4/QTMenu.hpp \
103 UIElements/Views/QT4/QTWorldView.hpp \
104 UIElements/Views/QT4/GLMoleculeView.hpp \
105 UIElements/Views/QT4/QTMoleculeView.hpp \
106 UIElements/Views/QT4/QTStatusBar.hpp
107
108QTUISOURCE = allmocs.moc.cpp \
109 UIElements/QT4/QTMainWindow.cpp \
110 UIElements/QT4/QTDialog.cpp \
111 UIElements/QT4/QTUIFactory.cpp \
112 UIElements/Menu/QT4/QTMenu.cpp \
113 UIElements/Views/QT4/QTWorldView.cpp \
114 UIElements/Views/QT4/GLMoleculeView.cpp \
115 UIElements/Views/QT4/QTMoleculeView.cpp \
116 UIElements/Views/QT4/QTStatusBar.cpp
117
118QTUIHEADER = ${QTUIMOC_HEADER} UIElements/QT4/QTUIFactory.hpp
119
120QTUI_DEFS =
121
122TESSELATIONSOURCE = \
123 BoundaryLineSet.cpp \
124 BoundaryPointSet.cpp \
125 BoundaryPolygonSet.cpp \
126 BoundaryTriangleSet.cpp \
127 CandidateForTesselation.cpp \
128 PointCloud.cpp \
129 tesselation.cpp \
130 tesselationhelpers.cpp \
131 TesselPoint.cpp
132
133TESSELATIONHEADER = \
134 BoundaryLineSet.hpp \
135 BoundaryPointSet.hpp \
136 BoundaryPolygonSet.hpp \
137 BoundaryTriangleSet.hpp \
138 CandidateForTesselation.hpp \
139 PointCloud.hpp \
140 tesselation.hpp \
141 tesselationhelpers.hpp \
142 TesselPoint.hpp
143
144MOLECUILDERSOURCE = \
145 ${ANALYSISSOURCE} \
146 ${ACTIONSSOURCE} \
147 ${ATOMSOURCE} \
148 ${PATTERNSOURCE} \
149 ${SHAPESOURCE} \
150 ${DESCRIPTORSOURCE} \
151 ${TESSELATIONSOURCE} \
152 bond.cpp \
153 bondgraph.cpp \
154 boundary.cpp \
155 Box.cpp \
156 CommandLineParser.cpp \
157 config.cpp \
158 ConfigFileBuffer.cpp \
159 defs.cpp \
160 element.cpp \
161 elements_db.cpp \
162 ellipsoid.cpp \
163 Formula.cpp \
164 graph.cpp \
165 leastsquaremin.cpp \
166 linkedcell.cpp \
167 moleculelist.cpp \
168 molecule.cpp \
169 molecule_dynamics.cpp \
170 molecule_fragmentation.cpp \
171 molecule_geometry.cpp \
172 molecule_graph.cpp \
173 molecule_pointcloud.cpp \
174 parser.cpp \
175 periodentafel.cpp \
176 ThermoStatContainer.cpp \
177 triangleintersectionlist.cpp \
178 UIElements/UIFactory.cpp \
179 World.cpp
180
181MOLECUILDERHEADER = \
182 ${ANALYSISHEADER} \
183 ${ACTIONSHEADER} \
184 ${ATOMHEADER} \
185 ${PATTERNHEADER} \
186 ${SHAPEHEADER} \
187 ${DESCRIPTORHEADER} \
188 ${TESSELATIONHEADER} \
189 bond.hpp \
190 bondgraph.hpp \
191 boundary.hpp \
192 Box.hpp \
193 CommandLineParser.hpp \
194 config.hpp \
195 ConfigFileBuffer.hpp \
196 defs.hpp \
197 element.hpp \
198 elements_db.hpp \
199 ellipsoid.hpp \
200 Formula.hpp \
201 graph.hpp \
202 leastsquaremin.hpp \
203 linkedcell.hpp \
204 lists.hpp \
205 molecule.hpp \
206 molecule_template.hpp \
207 parser.hpp \
208 periodentafel.hpp \
209 stackclass.hpp \
210 ThermoStatContainer.hpp \
211 triangleintersectionlist.hpp \
212 UIElements/UIFactory.hpp \
213 World.hpp
214
215lib_LTLIBRARIES = libMolecuilder-@MOLECUILDER_API_VERSION@.la
216libMolecuilder_includedir = $(includedir)/molecuilder-$(MOLECUILDER_API_VERSION)/Actions/
217libMolecuilder_LIBS = \
218 LinearAlgebra/libMolecuilderLinearAlgebra-@MOLECUILDER_API_VERSION@.la \
219 ${BOOST_PROGRAM_OPTIONS_LIB}
220
221# UIElements/libMolecuilderUI.a \
222 Actions/libMolecuilderActions-@MOLECUILDER_API_VERSION@.la \
223 Parser/libMolecuilderParser-@MOLECUILDER_API_VERSION@.la \
224 Exceptions/libMolecuilderExceptions-@MOLECUILDER_API_VERSION@.la \
225 Helpers/libMolecuilderHelpers-@MOLECUILDER_API_VERSION@.la \
226 $(BOOST_LIB) \
227 ${BOOST_THREAD_LIB}
228
229nobase_libMolecuilder_include_HEADERS = ${MOLECUILDERHEADER}
230
231## Define the source file list for the "libexample-@MOLECUILDER_API_VERSION@.la"
232## target. Note that @MOLECUILDER_API_VERSION@ is not interpreted by Automake and
233## will therefore be treated as if it were literally part of the target name,
234## and the variable name derived from that.
235## The file extension .cc is recognized by Automake, and makes it produce
236## rules which invoke the C++ compiler to produce a libtool object file (.lo)
237## from each source file. Note that it is not necessary to list header files
238## which are already listed elsewhere in a _HEADERS variable assignment.
239libMolecuilder_@MOLECUILDER_API_VERSION@_la_SOURCES = ${MOLECUILDERSOURCE} $(srcdir)/version.c
240
241## Instruct libtool to include ABI version information in the generated shared
242## library file (.so). The library ABI version is defined in configure.ac, so
243## that all version information is kept in one place.
244libMolecuilder_@MOLECUILDER_API_VERSION@_la_LDFLAGS = -version-info $(MOLECUILDER_SO_VERSION)
245
246## The generated configuration header is installed in its own subdirectory of
247## $(libdir). The reason for this is that the configuration information put
248## into this header file describes the target platform the installed library
249## has been built for. Thus the file must not be installed into a location
250## intended for architecture-independent files, as defined by the Filesystem
251## Hierarchy Standard (FHS).
252## The nodist_ prefix instructs Automake to not generate rules for including
253## the listed files in the distribution on 'make dist'. Files that are listed
254## in _HEADERS variables are normally included in the distribution, but the
255## configuration header file is generated at configure time and should not be
256## shipped with the source tarball.
257libMolecuilder_libincludedir = $(libdir)/molecuilder-$(MOLECUILDER_API_VERSION)/include
258nodist_libMolecuilder_libinclude_HEADERS = $(top_builddir)/libmolecuilder_config.h
259
260## Install the generated pkg-config file (.pc) into the expected location for
261## architecture-dependent package configuration information. Occasionally,
262## pkg-config files are also used for architecture-independent data packages,
263## in which case the correct install location would be $(datadir)/pkgconfig.
264pkgconfigdir = $(libdir)/pkgconfig
265pkgconfig_DATA = $(top_builddir)/molecuilder-$(MOLECUILDER_API_VERSION).pc
266
267
268BOOST_LIB = $(BOOST_LDFLAGS) $(BOOST_MPL_LIB)
269GUI_LIBS = ${QT_LDADD} ${QT_LIB_GUI} -lQtOpenGL ${GLU_LIBS}
270INCLUDES = -I$(top_srcdir)/src/unittests -I$(top_srcdir)/src/Actions -I$(top_srcdir)/src/UIElements
271
272noinst_LIBRARIES = libmenu.a
273bin_PROGRAMS = molecuilder molecuildergui joiner analyzer
274EXTRA_PROGRAMS = unity
275
276molecuilderdir = ${bindir}
277
278libmenu_a_SOURCES = ${UISOURCE} ${UIHEADER}
279
280molecuilder_DATA = elements.db valence.db orbitals.db Hbonddistance.db Hbondangle.db
281
282molecuilder_CXXFLAGS = $(BOOST_CPPFLAGS)
283#molecuilder_CXXFLAGS += -DNO_CACHING
284molecuilder_LDFLAGS = $(BOOST_LIB)
285molecuilder_SOURCES = builder.cpp
286molecuilder_LDADD = \
287 UIElements/libMolecuilderUI-@MOLECUILDER_API_VERSION@.la \
288 Actions/libMolecuilderActions-@MOLECUILDER_API_VERSION@.la \
289 libMolecuilder-@MOLECUILDER_API_VERSION@.la \
290 Parser/libMolecuilderParser-@MOLECUILDER_API_VERSION@.la \
291 LinearAlgebra/libMolecuilderLinearAlgebra-@MOLECUILDER_API_VERSION@.la \
292 Exceptions/libMolecuilderExceptions-@MOLECUILDER_API_VERSION@.la \
293 Helpers/libMolecuilderHelpers-@MOLECUILDER_API_VERSION@.la \
294 $(BOOST_LIB) \
295 ${BOOST_THREAD_LIB} \
296 ${BOOST_PROGRAM_OPTIONS_LIB}
297
298
299#Stuff for building the GUI using QT
300molecuildergui_SOURCES = ${QTUISOURCE} builder.cpp
301molecuildergui_CXXFLAGS = ${QT_CXXFLAGS} ${GLU_CXXFLAGS} -DUSE_GUI_QT
302molecuildergui_LDFLAGS = $(BOOST_LIB) ${QT_LDFLAGS} ${GLU_LDFLAGS}
303
304unity_SOURCES = unity.cpp
305unity_LDADD = $(BOOST_LIB) ${BOOST_THREAD_LIB} ${BOOST_PROGRAM_OPTIONS_LIB}
306
307molecuildergui_LDADD = \
308 UIElements/libMolecuilderUI-@MOLECUILDER_API_VERSION@.la \
309 Actions/libMolecuilderActions-@MOLECUILDER_API_VERSION@.la \
310 libMolecuilder-@MOLECUILDER_API_VERSION@.la \
311 Parser/libMolecuilderParser-@MOLECUILDER_API_VERSION@.la \
312 LinearAlgebra/libMolecuilderLinearAlgebra-@MOLECUILDER_API_VERSION@.la \
313 Exceptions/libMolecuilderExceptions-@MOLECUILDER_API_VERSION@.la \
314 Helpers/libMolecuilderHelpers-@MOLECUILDER_API_VERSION@.la \
315 $(BOOST_LIB) \
316 ${BOOST_THREAD_LIB} \
317 ${BOOST_PROGRAM_OPTIONS_LIB} \
318 ${GUI_LIBS}
319
320joiner_SOURCES = joiner.cpp datacreator.cpp datacreator.hpp periodentafel.hpp
321joiner_LDADD = \
322 Actions/libMolecuilderActions-@MOLECUILDER_API_VERSION@.la \
323 libMolecuilder-@MOLECUILDER_API_VERSION@.la \
324 Parser/libMolecuilderParser-@MOLECUILDER_API_VERSION@.la \
325 LinearAlgebra/libMolecuilderLinearAlgebra-@MOLECUILDER_API_VERSION@.la \
326 Exceptions/libMolecuilderExceptions-@MOLECUILDER_API_VERSION@.la \
327 Helpers/libMolecuilderHelpers-@MOLECUILDER_API_VERSION@.la \
328 $(BOOST_LIB) \
329 ${BOOST_THREAD_LIB} \
330 ${BOOST_PROGRAM_OPTIONS_LIB}
331
332analyzer_SOURCES = analyzer.cpp datacreator.cpp periodentafel.hpp datacreator.hpp
333analyzer_LDADD = \
334 Actions/libMolecuilderActions-@MOLECUILDER_API_VERSION@.la \
335 libMolecuilder-@MOLECUILDER_API_VERSION@.la \
336 Parser/libMolecuilderParser-@MOLECUILDER_API_VERSION@.la \
337 LinearAlgebra/libMolecuilderLinearAlgebra-@MOLECUILDER_API_VERSION@.la \
338 Exceptions/libMolecuilderExceptions-@MOLECUILDER_API_VERSION@.la \
339 Helpers/libMolecuilderHelpers-@MOLECUILDER_API_VERSION@.la \
340 $(BOOST_LIB) \
341 ${BOOST_THREAD_LIB} \
342 ${BOOST_PROGRAM_OPTIONS_LIB}
343
344#Rules needed for QT4
345# UI-Files are scattered throughout several subdirectories
346# Therfore `%'-rules do not seem to work
347#Quick fix to get it done otherwise
348allmocs.moc.cpp: ${QTUIMOC_HEADER}
349 echo "" > allmocs.moc.cpp;\
350 list='$(QTUIMOC_HEADER)'; for header in $$list; do \
351 echo "Making mocfile for $$header"; \
352 target=`basename $$header | sed "s/\(.*\)\..*/\1.moc.cpp/"`;\
353 $(MOC) $(srcdir)/$$header -o $$target \
354 || eval $$failcom; \
355 echo "#include \"$$target\"" >> allmocs.moc.cpp; \
356 done;
357
358#EXTRA_DIST = ${molecuilder_DATA}
359
360FORCE:
361$(srcdir)/.git-version: FORCE
362 @if (test -d $(top_srcdir)/.git && cd $(srcdir) \
363 && { git describe --dirty --always || git describe; } ) > .git-version-t 2>/dev/null \
364 && ! diff .git-version-t $(srcdir)/.git-version >/dev/null 2>&1; then \
365 mv -f .git-version-t $(srcdir)/.git-version; \
366 else \
367 rm -f .git-version-t; \
368 fi
369
370EXTRA_DIST = $(srcdir)/.git-version
371
372$(srcdir)/version.c: $(srcdir)/.git-version
373 echo "const char *ESPACKVersion = \"$(PACKAGE_NAME) -- git version: "`cat $(srcdir)/.git-version`"\";" > $@
374
375
376unity.cpp: ${MOLECUILDERSOURCE} ${MOLECUILDERHEADER}
377 echo "" > unity.cpp; \
378 list='$(MOLECUILDERSOURCE)'; for file in $$list; do \
379 echo "#include \"$(srcdir)/$$file\"" >> unity.cpp; \
380 done; \
381 subdirs='$(SUBDIRS)';for directory in $$subdirs; do\
382 olddir=$$PWD;\
383 cd $$directory && make unity.cpp;\
384 cd $$olddir;\
385 echo "#include \"$$directory/unity.cpp\"" >> unity.cpp;\
386 done;\
387 echo "#include \"$(srcdir)/builder.cpp\"" >> unity.cpp;
388 echo "#include \"$(srcdir)/version.c\"" >> unity.cpp;
389
390MOSTLYCLEANFILES = allmocs.moc.cpp unity.cpp
391
Note: See TracBrowser for help on using the repository browser.