source: src/Makefile.am@ 861874

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 861874 was 861874, checked in by Frederik Heber <heber@…>, 14 years ago

libMolecuilderAction is now a shared lib via libtool.

This is all taken from the example available at http://www.openismus.com/documents/linux/building_libraries/building_libraries/building_libraries.shtml.

Necessary changes:

  • ValueStorage is now part of Actions, not of UIElements anymore (which is actually as it should have been right away, only Dialog uses ValueStorage and for all Actions ValueStorage is the simple adapter pattern to MapOfActions needed the relax (compilation) dependencies).
  • new files:
    • config/ltmain.sh (scipt for libtool)
    • libmolecuilder_config.h.in (extra config.h which is copied along with lib to contain how it has been compiled)
    • molecuilder.pc.in (package config information
  • BUGFIX: m4/gwqt4.m4 added -L$X_libraries, however $X_libraries was nowhere set and libtool admonished the empty "-L"
  • libMolecuilderUI now depends on libMolecuilderAction
  • all unit tests now have libMolecuilderAction and libMolecuilderUI due to non-interactive calls of actions
  • Property mode set to 100644
File size: 9.4 KB
Line 
1# PLEASE adhere to the alphabetical ordering in this Makefile!
2# Also indentation by a single tab
3
4SUBDIRS = Actions Parser UIElements
5
6# this includes source files that need to be present at multiple points
7HELPERSOURCE = \
8 Helpers/Assert.cpp \
9 Helpers/MemDebug.cpp
10
11ATOMSOURCE = \
12 atom.cpp \
13 atom_atominfo.cpp \
14 atom_bondedparticle.cpp \
15 atom_bondedparticleinfo.cpp \
16 atom_graphnode.cpp \
17 atom_graphnodeinfo.cpp \
18 atom_particleinfo.cpp \
19 atom_trajectoryparticle.cpp \
20 atom_trajectoryparticleinfo.cpp
21ATOMHEADER = \
22 atom.hpp \
23 atom_atominfo.hpp \
24 atom_bondedparticle.hpp \
25 atom_bondedparticleinfo.hpp \
26 atom_graphnode.hpp \
27 atom_graphnodeinfo.hpp \
28 atom_particleinfo.hpp \
29 atom_trajectoryparticle.hpp \
30 atom_trajectoryparticleinfo.hpp
31
32LINALGSOURCE = \
33 ${HELPERSOURCE} \
34 gslmatrix.cpp \
35 gslvector.cpp \
36 linearsystemofequations.cpp \
37 Space.cpp \
38 vector.cpp
39
40LINALGHEADER = \
41 gslmatrix.hpp \
42 gslvector.hpp \
43 linearsystemofequations.hpp \
44 Space.hpp \
45 vector.hpp
46
47ANALYSISSOURCE = \
48 analysis_bonds.cpp \
49 analysis_correlation.cpp
50ANALYSISHEADER = \
51 analysis_bonds.hpp \
52 analysis_correlation.hpp
53
54ACTIONSSOURCE = \
55 Actions/Action.cpp \
56 Actions/ActionHistory.cpp \
57 Actions/ActionRegistry.cpp \
58 Actions/ActionSequence.cpp \
59 Actions/ErrorAction.cpp \
60 Actions/MakroAction.cpp \
61 Actions/ManipulateAtomsProcess.cpp \
62 Actions/MethodAction.cpp \
63 Actions/Process.cpp
64
65ACTIONSHEADER = \
66 Actions/Action.hpp \
67 Actions/ActionHistory.hpp \
68 Actions/ActionRegistry.hpp \
69 Actions/ActionSequence.hpp \
70 Actions/Calculation.hpp \
71 Actions/Calculation_impl.hpp \
72 Actions/ErrorAction.hpp \
73 Actions/MakroAction.hpp \
74 Actions/ManipulateAtomsProcess.hpp \
75 Actions/MapOfActions.hpp \
76 Actions/MethodAction.hpp \
77 Actions/Process.hpp
78
79EXCEPTIONSOURCE = \
80 Exceptions/CustomException.cpp \
81 Exceptions/IllegalTypeException.cpp \
82 Exceptions/LinearDependenceException.cpp \
83 Exceptions/MathException.cpp \
84 Exceptions/MissingValueException.cpp \
85 Exceptions/NotInvertibleException.cpp \
86 Exceptions/ParseError.cpp \
87 Exceptions/SkewException.cpp \
88 Exceptions/ZeroVectorException.cpp
89
90EXCEPTIONHEADER = \
91 Exceptions/CustomException.hpp \
92 Exceptions/IllegalTypeException.hpp \
93 Exceptions/LinearDependenceException.hpp \
94 Exceptions/MathException.hpp \
95 Exceptions/MissingValueException.hpp \
96 Exceptions/NotInvertibleException.hpp \
97 Exceptions/ParseError.hpp \
98 Exceptions/SkewException.hpp \
99 Exceptions/ZeroVectorException.hpp
100
101PATTERNSOURCE = \
102 Patterns/Observer.cpp
103PATTERNHEADER = \
104 Patterns/Cacheable.hpp \
105 Patterns/Observer.hpp \
106 Patterns/Singleton.hpp
107
108SHAPESOURCE = \
109 Shapes/BaseShapes.cpp \
110 Shapes/Shape.cpp \
111 Shapes/ShapeOps.cpp
112SHAPEHEADER = \
113 Shapes/BaseShapes.hpp \
114 Shapes/Shape.hpp \
115 Shapes/ShapeOps.hpp
116
117
118QTUIMOC_HEADER = UIElements/QT4/QTDialog.hpp \
119 UIElements/QT4/QTMainWindow.hpp \
120 UIElements/Menu/QT4/QTMenu.hpp \
121 UIElements/Views/QT4/QTWorldView.hpp \
122 UIElements/Views/QT4/GLMoleculeView.hpp \
123 UIElements/Views/QT4/QTMoleculeView.hpp \
124 UIElements/Views/QT4/QTStatusBar.hpp
125
126QTUIMOC_TARGETS = QTMainWindow.moc.cpp \
127 QTMenu.moc.cpp\
128 QTDialog.moc.cpp \
129 QTWorldView.moc.cpp \
130 GLMoleculeView.moc.cpp \
131 QTMoleculeView.moc.cpp \
132 QTStatusBar.moc.cpp
133
134DESCRIPTORSOURCE = Descriptors/AtomDescriptor.cpp \
135 Descriptors/AtomIdDescriptor.cpp \
136 Descriptors/AtomSelectionDescriptor.cpp \
137 Descriptors/AtomTypeDescriptor.cpp \
138 Descriptors/MoleculeDescriptor.cpp \
139 Descriptors/MoleculeFormulaDescriptor.cpp \
140 Descriptors/MoleculeIdDescriptor.cpp \
141 Descriptors/MoleculeNameDescriptor.cpp \
142 Descriptors/MoleculePtrDescriptor.cpp \
143 Descriptors/MoleculeSelectionDescriptor.cpp
144
145
146DESCRIPTORHEADER = Descriptors/AtomDescriptor.hpp \
147 Descriptors/AtomIdDescriptor.hpp \
148 Descriptors/AtomSelectionDescriptor.hpp \
149 Descriptors/AtomTypeDescriptor.hpp \
150 Descriptors/MoleculeDescriptor.hpp \
151 Descriptors/MoleculeFormulaDescriptor.hpp \
152 Descriptors/MoleculeIdDescriptor.hpp \
153 Descriptors/MoleculeNameDescriptor.hpp \
154 Descriptors/MoleculePtrDescriptor.hpp \
155 Descriptors/MoleculeSelectionDescriptor.cpp
156
157QTUISOURCE = ${QTUIMOC_TARGETS} \
158 UIElements/QT4/QTMainWindow.cpp \
159 UIElements/QT4/QTDialog.cpp \
160 UIElements/QT4/QTUIFactory.cpp \
161 UIElements/Menu/QT4/QTMenu.cpp \
162 UIElements/Views/QT4/QTWorldView.cpp \
163 UIElements/Views/QT4/GLMoleculeView.cpp \
164 UIElements/Views/QT4/QTMoleculeView.cpp \
165 UIElements/Views/QT4/QTStatusBar.cpp
166
167QTUIHEADER = ${QTUIMOC_HEADER} UIElements/QT4/QTUIFactory.hpp
168
169QTUI_DEFS =
170
171SOURCE = \
172 ${ANALYSISSOURCE} \
173 ${ACTIONSSOURCE} \
174 ${ATOMSOURCE} \
175 ${EXCEPTIONSOURCE} \
176 ${PATTERNSOURCE} \
177 ${PARSERSOURCE} \
178 ${SHAPESOURCE} \
179 ${DESCRIPTORSOURCE} \
180 ${HELPERSOURCE} \
181 bond.cpp \
182 bondgraph.cpp \
183 boundary.cpp \
184 Box.cpp \
185 CommandLineParser.cpp \
186 config.cpp \
187 ConfigFileBuffer.cpp \
188 element.cpp \
189 elements_db.cpp \
190 ellipsoid.cpp \
191 errorlogger.cpp \
192 Formula.cpp \
193 graph.cpp \
194 helpers.cpp \
195 info.cpp \
196 leastsquaremin.cpp \
197 Line.cpp \
198 linkedcell.cpp \
199 log.cpp \
200 logger.cpp \
201 Matrix.cpp \
202 moleculelist.cpp \
203 molecule.cpp \
204 molecule_dynamics.cpp \
205 molecule_fragmentation.cpp \
206 molecule_geometry.cpp \
207 molecule_graph.cpp \
208 molecule_pointcloud.cpp \
209 parser.cpp \
210 periodentafel.cpp \
211 Plane.cpp \
212 Space.cpp \
213 tesselation.cpp \
214 tesselationhelpers.cpp \
215 ThermoStatContainer.cpp \
216 triangleintersectionlist.cpp \
217 UIElements/UIFactory.cpp \
218 vector.cpp \
219 vector_ops.cpp \
220 verbose.cpp \
221 World.cpp
222
223HEADER = \
224 ${ANALYSISHEADER} \
225 ${ACTIONSHEADER} \
226 ${ATOMHEADER} \
227 ${EXCEPTIONHEADER} \
228 ${PARSERHEADER} \
229 ${PATTERNHEADER} \
230 ${SHAPEHEADER} \
231 ${DESCRIPTORHEADER} \
232 bond.hpp \
233 bondgraph.hpp \
234 boundary.hpp \
235 Box.hpp \
236 CommandLineParser.hpp \
237 config.hpp \
238 ConfigFileBuffer.hpp \
239 defs.hpp \
240 element.hpp \
241 elements_db.hpp \
242 ellipsoid.hpp \
243 errorlogger.hpp \
244 Formula.hpp \
245 graph.hpp \
246 helpers.hpp \
247 info.hpp \
248 leastsquaremin.hpp \
249 Line.hpp \
250 linkedcell.hpp \
251 lists.hpp \
252 log.hpp \
253 logger.hpp \
254 Matrix.hpp \
255 molecule.hpp \
256 molecule_template.hpp \
257 parser.hpp \
258 periodentafel.hpp \
259 Plane.hpp \
260 stackclass.hpp \
261 tesselation.hpp \
262 tesselationhelpers.hpp \
263 ThermoStatContainer.hpp \
264 triangleintersectionlist.hpp \
265 UIElements/UIFactory.hpp \
266 verbose.hpp \
267 vector_ops.hpp \
268 World.hpp
269
270# the following files are no longer used:
271# memoryallocator.hpp \
272# memoryallocator.cpp \
273# memoryusageobserver.hpp \
274# memoryusageobserver.cpp
275
276BOOST_LIB = $(BOOST_LDFLAGS) $(BOOST_MPL_LIB)
277GUI_LIBS = ${QT_LDADD} ${QT_LIB_GUI} -lQtOpenGL ${GLU_LIBS}
278INCLUDES = -I$(top_srcdir)/src/unittests -I$(top_srcdir)/src/Actions -I$(top_srcdir)/src/UIElements
279
280noinst_LIBRARIES = libmolecuilder.a libgslwrapper.a libmenu.a
281bin_PROGRAMS = molecuilder molecuildergui joiner analyzer
282
283molecuilderdir = ${bindir}
284
285libmolecuilder_a_SOURCES = ${SOURCE} ${HEADER} $(srcdir)/version.c
286
287libmenu_a_SOURCES = ${UISOURCE} ${UIHEADER}
288libgslwrapper_a_SOURCES = ${LINALGSOURCE} ${LINALGHEADER}
289
290molecuilder_DATA = elements.db valence.db orbitals.db Hbonddistance.db Hbondangle.db
291
292molecuilder_CXXFLAGS = $(BOOST_CPPFLAGS)
293#molecuilder_CXXFLAGS += -DNO_CACHING
294molecuilder_LDFLAGS = $(BOOST_LIB)
295molecuilder_SOURCES = builder.cpp
296molecuilder_LDADD = UIElements/libMolecuilderUI.a Actions/libMolecuilderActions-@MOLECUILDER_API_VERSION@.la libmolecuilder.a Parser/libMolecuilderParser-@MOLECUILDER_API_VERSION@.la libgslwrapper.a $(BOOST_LIB) ${BOOST_THREAD_LIB} ${BOOST_PROGRAM_OPTIONS_LIB}
297
298#Stuff for building the GUI using QT
299molecuildergui_SOURCES = ${QTUISOURCE} builder.cpp
300molecuildergui_SOURCES += $(srcdir)/version.c
301molecuildergui_CXXFLAGS = ${QT_CXXFLAGS} ${GLU_CXXFLAGS} -DUSE_GUI_QT
302molecuildergui_LDFLAGS = $(BOOST_LIB) ${QT_LDFLAGS} ${GLU_LDFLAGS}
303molecuildergui_LDADD = UIElements/libMolecuilderUI.a Actions/libMolecuilderActions-@MOLECUILDER_API_VERSION@.la libmolecuilder.a Parser/libMolecuilderParser-@MOLECUILDER_API_VERSION@.la libgslwrapper.a $(BOOST_LIB) ${BOOST_THREAD_LIB} ${BOOST_PROGRAM_OPTIONS_LIB} ${GUI_LIBS}
304
305joiner_SOURCES = joiner.cpp datacreator.cpp parser.cpp datacreator.hpp helpers.hpp parser.hpp periodentafel.hpp
306joiner_LDADD = libmolecuilder.a $(BOOST_LIB) ${BOOST_THREAD_LIB}
307
308analyzer_SOURCES = analyzer.cpp datacreator.cpp parser.cpp helpers.hpp periodentafel.hpp parser.hpp datacreator.hpp
309analyzer_LDADD = libmolecuilder.a $(BOOST_LIB) ${BOOST_THREAD_LIB}
310
311#Rules needed for QT4
312# UI-Files are scattered throughout several subdirectories
313# Therfore `%'-rules do not seem to work
314#Quick fix to get it done otherwise
315${QTUIMOC_TARGETS}: ${QTUIMOC_HEADER}
316 list='$(QTUIMOC_HEADER)'; for header in $$list; do \
317 echo "Making mocfile for $$header"; \
318 target=`basename $$header | sed "s/\(.*\)\..*/\1.moc.cpp/"`;\
319 $(MOC) $(srcdir)/$$header -o $$target \
320 || eval $$failcom; \
321 done;
322
323MOSTLYCLEANFILES = ${QTUIMOC_TARGETS}
324
325#EXTRA_DIST = ${molecuilder_DATA}
326
327FORCE:
328$(srcdir)/.git-version: FORCE
329 @if (test -d $(top_srcdir)/.git && cd $(srcdir) \
330 && { git describe --dirty --always || git describe; } ) > .git-version-t 2>/dev/null \
331 && ! diff .git-version-t $(srcdir)/.git-version >/dev/null 2>&1; then \
332 mv -f .git-version-t $(srcdir)/.git-version; \
333 else \
334 rm -f .git-version-t; \
335 fi
336
337EXTRA_DIST = $(srcdir)/.git-version
338
339$(srcdir)/version.c: $(srcdir)/.git-version
340 echo "const char *ESPACKVersion = \"$(PACKAGE_NAME) -- git version: "`cat $(srcdir)/.git-version`"\";" > $@
341
342
Note: See TracBrowser for help on using the repository browser.