source: src/Makefile.am@ c66537

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 c66537 was 9ee38b, checked in by Frederik Heber <heber@…>, 15 years ago

Extended macro framework.

Extensions:

  • all central definitions reside in .def files
    • This if file is necessary because we need the definitions at two places: hpp and cpp
    • And as we always use the same define names, we have to undefine them at the end of both (otherwise we get compiler warnings and are prone to dumb mistakes of forgotten defines seeming present)
  • the .hpp is just a very tiny header, that should be possible to batch- construct inside Makefile as well
  • .cpp includes some Action_...hpp files and implements the function

For later (i.e. when ActionRegistry becomes prototype copier)

  • instead of waiting for clone(), for now we simply call the prototype.
  • in the action command we must not yet prefix paramreferences with "params."

Changes:

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