source: src/Makefile.am@ fbf005

Action_Thermostats Add_AtomRandomPerturbation Add_RotateAroundBondAction Add_SelectAtomByNameAction Adding_Graph_to_ChangeBondActions Adding_MD_integration_tests Adding_StructOpt_integration_tests AutomationFragmentation_failures Candidate_v1.6.0 Candidate_v1.6.1 ChangeBugEmailaddress ChangingTestPorts ChemicalSpaceEvaluator Combining_Subpackages Debian_Package_split Debian_package_split_molecuildergui_only Disabling_MemDebug Docu_Python_wait EmpiricalPotential_contain_HomologyGraph_documentation Enable_parallel_make_install Enhance_userguide Enhanced_StructuralOptimization Enhanced_StructuralOptimization_continued Example_ManyWaysToTranslateAtom Exclude_Hydrogens_annealWithBondGraph FitPartialCharges_GlobalError Fix_ChronosMutex Fix_StatusMsg Fix_StepWorldTime_single_argument Fix_Verbose_Codepatterns ForceAnnealing_goodresults ForceAnnealing_oldresults ForceAnnealing_tocheck ForceAnnealing_with_BondGraph ForceAnnealing_with_BondGraph_continued ForceAnnealing_with_BondGraph_continued_betteresults ForceAnnealing_with_BondGraph_contraction-expansion GeometryObjects Gui_displays_atomic_force_velocity IndependentFragmentGrids_IntegrationTest JobMarket_RobustOnKillsSegFaults JobMarket_StableWorkerPool JobMarket_unresolvable_hostname_fix PartialCharges_OrthogonalSummation PythonUI_with_named_parameters QtGui_reactivate_TimeChanged_changes Recreated_GuiChecks RotateToPrincipalAxisSystem_UndoRedo StoppableMakroAction TremoloParser_IncreasedPrecision TremoloParser_MultipleTimesteps Ubuntu_1604_changes stable
Last change on this file since fbf005 was fbf005, checked in by Frederik Heber <heber@…>, 8 years ago

HUGE: Extracted libmolecuilder_mpqc that is now linked to poolworker.

  • This stops the problems with MemDebug and mpqc when linking against libLinearAlgebra in debug mode: static global variables in libLinAlg are allocated using MemDebug (prefixed with a checksum) but are deallocated using normal libc's free() on exit. This causes an invalid free() as the ptr given to free points inside the block and not at its start. The problem comes from mpqc's use of own new and delete implementation. I'm guessing its reference counting is the culprit. Hence, we need to separate these two compilations from another in different units/libraries. Therefore, we have split off libmolecuilder_mpqc, .._mpqc_extract and additionally place the MPQCJob::Work() implementation inside libMolecuilderJobs_Work.
  • libmolecuilder_mpqc contains all MPQC's code in mpqc.cc (and linked libraries) that is not the main() function.
  • libmolecuilder_mpqc_extract contains functions that extract results such as energies, forces, charge grids from the obtained mpqc solution. These were added by myself to the mpqc code before.
  • molecuilder_mpqc is then linked against a NoOp .._extract library version. Thereby, it does not use any of the Molecuilder or related libraries and does not come in contact with MemDebug.
  • molecuilder_poolworker however is linked with the full .._extract library and hence performs these extractions.
  • poolworker now executes MPQCJob, MPQCCommandJob, and VMGJob and therefore needs to enforce binding to all of them.
  • TESTS: renamed molecuilder_mpqc.in to molecuilder_poolworker.in.
  • Property mode set to 100644
File size: 16.2 KB
Line 
1# PLEASE adhere to the alphabetical ordering in this Makefile!
2# Also indentation by a single tab
3
4MOSTLYCLEANFILES =
5lib_LTLIBRARIES =
6noinst_LTLIBRARIES =
7pyexec_LTLIBRARIES =
8BUILT_SOURCES =
9bin_PROGRAMS =
10EXTRA_DIST =
11
12# libMolecuilder.la requires the libraries listed below
13
14include Helpers/Makefile.am
15include Shapes/Makefile.am
16include Tesselation/Makefile.am
17
18# then comes the library itself
19
20AM_LDFLAGS = -ldl ${BOOST_LDFLAGS} ${CodePatterns_LDFLAGS} ${JobMarket_LDFLAGS}
21AM_CPPFLAGS = \
22 -I$(top_srcdir)/src/unittests \
23 -I$(top_srcdir)/src/Actions \
24 -I$(top_srcdir)/src/UIElements \
25 -I$(top_srcdir)/ThirdParty/LinearAlgebra/src \
26 ${BOOST_CPPFLAGS} \
27 ${CodePatterns_CFLAGS}
28
29
30BONDSOURCE = \
31 Bond/bond.cpp \
32 Bond/bond_observable.cpp \
33 Bond/BondInfo.cpp \
34 Bond/GraphEdge.cpp
35
36BONDHEADER = \
37 Bond/bond.hpp \
38 Bond/bond_observable.hpp \
39 Bond/BondInfo.hpp \
40 Bond/GraphEdge.hpp
41
42DESCRIPTORSOURCE = \
43 Descriptors/AtomDescriptor.cpp \
44 Descriptors/AtomIdDescriptor.cpp \
45 Descriptors/AtomNameDescriptor.cpp \
46 Descriptors/AtomOfMoleculeDescriptor.cpp \
47 Descriptors/AtomOfMoleculeSelectionDescriptor.cpp \
48 Descriptors/AtomOrderDescriptor.cpp \
49 Descriptors/AtomSelectionDescriptor.cpp \
50 Descriptors/AtomShapeDescriptor.cpp \
51 Descriptors/AtomTypeDescriptor.cpp \
52 Descriptors/AtomsWithinDistanceOfDescriptor.cpp \
53 Descriptors/MoleculeDescriptor.cpp \
54 Descriptors/MoleculeFormulaDescriptor.cpp \
55 Descriptors/MoleculeIdDescriptor.cpp \
56 Descriptors/MoleculeNameDescriptor.cpp \
57 Descriptors/MoleculeOfAtomSelectionDescriptor.cpp \
58 Descriptors/MoleculeOrderDescriptor.cpp \
59 Descriptors/MoleculePtrDescriptor.cpp \
60 Descriptors/MoleculeSelectionDescriptor.cpp
61
62
63DESCRIPTORHEADER = \
64 Descriptors/AtomDescriptor.hpp \
65 Descriptors/AtomIdDescriptor.hpp \
66 Descriptors/AtomNameDescriptor.hpp \
67 Descriptors/AtomOfMoleculeDescriptor.hpp \
68 Descriptors/AtomOfMoleculeSelectionDescriptor.hpp \
69 Descriptors/AtomOrderDescriptor.hpp \
70 Descriptors/AtomSelectionDescriptor.hpp \
71 Descriptors/AtomShapeDescriptor.hpp \
72 Descriptors/AtomTypeDescriptor.hpp \
73 Descriptors/AtomsWithinDistanceOfDescriptor.hpp \
74 Descriptors/DescriptorBase.hpp \
75 Descriptors/MoleculeDescriptor.hpp \
76 Descriptors/MoleculeFormulaDescriptor.hpp \
77 Descriptors/MoleculeIdDescriptor.hpp \
78 Descriptors/MoleculeNameDescriptor.hpp \
79 Descriptors/MoleculeOfAtomSelectionDescriptor.hpp \
80 Descriptors/MoleculeOrderDescriptor.hpp \
81 Descriptors/MoleculePtrDescriptor.hpp \
82 Descriptors/MoleculeSelectionDescriptor.hpp \
83 Descriptors/SelectiveConstIterator.hpp \
84 Descriptors/SelectiveIterator.hpp
85
86DESCRIPTORIMPLHEADER = \
87 Descriptors/AtomDescriptor_impl.hpp \
88 Descriptors/AtomIdDescriptor_impl.hpp \
89 Descriptors/AtomNameDescriptor_impl.hpp \
90 Descriptors/AtomOfMoleculeDescriptor_impl.hpp \
91 Descriptors/AtomOfMoleculeSelectionDescriptor_impl.hpp \
92 Descriptors/AtomOrderDescriptor_impl.hpp \
93 Descriptors/AtomSelectionDescriptor_impl.hpp \
94 Descriptors/AtomShapeDescriptor_impl.hpp \
95 Descriptors/AtomTypeDescriptor_impl.hpp \
96 Descriptors/AtomsWithinDistanceOfDescriptor_impl.hpp \
97 Descriptors/DescriptorBase_impl.hpp \
98 Descriptors/MoleculeDescriptor_impl.hpp \
99 Descriptors/MoleculeFormulaDescriptor_impl.hpp \
100 Descriptors/MoleculeIdDescriptor_impl.hpp \
101 Descriptors/MoleculeNameDescriptor_impl.hpp \
102 Descriptors/MoleculeOfAtomSelectionDescriptor_impl.hpp \
103 Descriptors/MoleculeOrderDescriptor_impl.hpp \
104 Descriptors/MoleculePtrDescriptor_impl.hpp \
105 Descriptors/MoleculeSelectionDescriptor_impl.hpp \
106 Descriptors/SelectiveConstIterator_impl.hpp \
107 Descriptors/SelectiveIterator_impl.hpp
108
109DYNAMICSSOURCE = \
110 Dynamics/MinimiseConstrainedPotential.cpp
111
112DYNAMICSHEADER = \
113 Dynamics/AtomicForceManipulator.hpp \
114 Dynamics/ForceAnnealing.hpp \
115 Dynamics/LinearInterpolationBetweenSteps.hpp \
116 Dynamics/MinimiseConstrainedPotential.hpp \
117 Dynamics/OutputTemperature.hpp \
118 Dynamics/VerletForceIntegration.hpp
119
120THERMOSTATSOURCE = \
121 Thermostats/Berendsen.cpp \
122 Thermostats/GaussianThermostat.cpp \
123 Thermostats/Langevin.cpp \
124 Thermostats/NoseHoover.cpp \
125 Thermostats/NoThermostat.cpp \
126 Thermostats/Thermostat.cpp \
127 Thermostats/ThermoStatContainer.cpp \
128 Thermostats/Woodcock.cpp
129
130THERMOSTATHEADER = \
131 Thermostats/Berendsen.hpp \
132 Thermostats/GaussianThermostat.hpp \
133 Thermostats/Langevin.hpp \
134 Thermostats/NoseHoover.hpp \
135 Thermostats/NoThermostat.hpp \
136 Thermostats/Thermostat.hpp \
137 Thermostats/ThermoStatContainer.hpp \
138 Thermostats/Woodcock.hpp
139
140MOLECUILDERSOURCE = \
141 ${BONDSOURCE} \
142 ${DESCRIPTORSOURCE} \
143 ${DYNAMICSSOURCE} \
144 ${THERMOSTATSOURCE} \
145 Shapes/ShapeFactory.cpp \
146 AtomIdSet.cpp \
147 Box.cpp \
148 Box_BoundaryConditions.cpp \
149 config.cpp \
150 Formula.cpp \
151 MoleculeLeafClass.cpp \
152 MoleculeObserver.cpp \
153 molecule.cpp \
154 molecule_geometry.cpp \
155 molecule_graph.cpp \
156 UIElements/UIFactory.cpp \
157 version.c \
158 World.cpp \
159 WorldTime.cpp
160
161MOLECUILDERHEADER = \
162 ${BONDHEADER} \
163 ${DESCRIPTORHEADER} \
164 ${DESCRIPTORIMPLHEADER} \
165 ${DYNAMICSHEADER} \
166 ${THERMOSTATHEADER} \
167 Shapes/ShapeFactory.hpp \
168 AtomIdSet.hpp \
169 Box.hpp \
170 Box_BoundaryConditions.hpp \
171 config.hpp \
172 EntityObserver.hpp \
173 EntityObserver_impl.hpp \
174 Formula.hpp \
175 IdPool.hpp \
176 IdPool_impl.hpp \
177 IdPool_policy.hpp \
178 MoleculeLeafClass.hpp \
179 MoleculeObserver.hpp \
180 molecule.hpp \
181 types.hpp \
182 ThreadGuard.hpp \
183 UIElements/UIFactory.hpp \
184 version.h \
185 World.hpp \
186 World_calculations.hpp \
187 WorldTime.hpp
188
189lib_LTLIBRARIES += libMolecuilder.la
190libMolecuilder_la_includedir = $(includedir)/MoleCuilder/
191libMolecuilder_la_LDFLAGS = \
192 $(AM_LDFLAGS) \
193 $(BOOST_SYSTEM_LDFLAGS) \
194 $(BOOST_THREAD_LDFLAGS)
195libMolecuilder_la_LIBADD = \
196 libMolecuilderTesselation.la \
197 libMolecuilderShapes.la \
198 libMolecuilderHelpers.la \
199 $(top_builddir)/ThirdParty/LinearAlgebra/src/LinearAlgebra/libLinearAlgebra.la \
200 ${CodePatterns_LIBS} \
201 $(BOOST_SERIALIZATION_LIBS) \
202 $(BOOST_PROGRAM_OPTIONS_LIBS) \
203 $(BOOST_FILESYSTEM_LIBS) \
204 $(BOOST_SYSTEM_LIBS) \
205 $(BOOST_THREAD_LIBS)
206
207nobase_libMolecuilder_la_include_HEADERS = ${MOLECUILDERHEADER}
208
209## Define the source file list for the "libexample-@MOLECUILDER_API_VERSION@.la"
210## target. Note that @MOLECUILDER_API_VERSION@ is not interpreted by Automake and
211## will therefore be treated as if it were literally part of the target name,
212## and the variable name derived from that.
213## The file extension .cc is recognized by Automake, and makes it produce
214## rules which invoke the C++ compiler to produce a libtool object file (.lo)
215## from each source file. Note that it is not necessary to list header files
216## which are already listed elsewhere in a _HEADERS variable assignment.
217libMolecuilder_la_SOURCES = ${MOLECUILDERSOURCE}
218
219## Instruct libtool to include ABI version information in the generated shared
220## library file (.so). The library ABI version is defined in configure.ac, so
221## that all version information is kept in one place.
222libMolecuilder_la_LDFLAGS += -version-info $(MOLECUILDER_SO_VERSION)
223
224## The generated configuration header is installed in its own subdirectory of
225## $(libdir). The reason for this is that the configuration information put
226## into this header file describes the target platform the installed library
227## has been built for. Thus the file must not be installed into a location
228## intended for architecture-independent files, as defined by the Filesystem
229## Hierarchy Standard (FHS).
230## The nodist_ prefix instructs Automake to not generate rules for including
231## the listed files in the distribution on 'make dist'. Files that are listed
232## in _HEADERS variables are normally included in the distribution, but the
233## configuration header file is generated at configure time and should not be
234## shipped with the source tarball.
235libMolecuilder_la_libincludedir = $(libdir)/MoleCuilder/include
236nodist_libMolecuilder_la_libinclude_HEADERS = $(top_builddir)/libmolecuilder_config.h
237
238## Install the generated pkg-config file (.pc) into the expected location for
239## architecture-dependent package configuration information. Occasionally,
240## pkg-config files are also used for architecture-independent data packages,
241## in which case the correct install location would be $(datadir)/pkgconfig.
242pkgconfigdir = $(libdir)/pkgconfig
243pkgconfig_DATA = $(top_builddir)/MoleCuilder.pc
244
245# then we compile the remainder of all other libraries, especially
246# libMolecuilderUI.la, which requires libMolecuilder.la on install
247
248include Actions/Makefile.am
249include Analysis/Makefile.am
250include Atom/Makefile.am
251include Element/Makefile.am
252include Filling/Makefile.am
253include Fragmentation/Makefile.am
254include Fragmentation/Automation/Makefile.am
255include Fragmentation/Summation/Containers/Makefile.am
256include Fragmentation/Summation/Converter/Makefile.am
257include Fragmentation/Summation/Makefile.am
258include Fragmentation/Summation/SetValues/Makefile.am
259include FunctionApproximation/Makefile.am
260include Graph/Makefile.am
261include Jobs/Makefile.am
262
263if CONDPYTHON
264include Python/Makefile.am
265endif
266
267include LinkedCell/Makefile.am
268include Parameters/Makefile.am
269include Parser/Makefile.am
270include Potentials/Makefile.am
271include RandomNumbers/Makefile.am
272include UIElements/Makefile.am
273
274bin_PROGRAMS += molecuilder
275EXTRA_PROGRAMS = unity
276
277
278extrastuffdir = $(datadir)/@PACKAGE@/data
279databasedir = $(extrastuffdir)/databases
280database_DATA = \
281 ${top_srcdir}/data/databases/*.db
282
283bondtabledir = $(extrastuffdir)/bondtables
284bondtable_DATA = \
285 ${top_srcdir}/data/bondtables/*.dat
286
287moleculedir = $(extrastuffdir)/molecules
288molecule_DATA = \
289 ${top_srcdir}/data/molecules/*.pdb
290
291if CONDPYTHON
292pyexec_LTLIBRARIES += pyMoleCuilder.la
293pyMoleCuilder_la_SOURCES = \
294 cleanUp.cpp \
295 cleanUp.hpp \
296 Actions/Action_impl_python.hpp \
297 Actions/GlobalListOfActions.hpp \
298 Actions/ActionHistory.hpp
299pyMoleCuilder_la_CPPFLAGS = $(AM_CPPFLAGS) ${BOOST_CPPFLAGS} ${CodePatterns_CFLAGS} $(JobMarket_CFLAGS) -I$(PYTHON_INCLUDE_DIR)
300pyMoleCuilder_la_LDFLAGS = $(AM_LDFLAGS) -module -version-info $(MOLECUILDER_SO_VERSION) -shared $(BOOST_PYTHON_LDFLAGS)
301pyMoleCuilder_la_LIBADD = \
302 libMolecuilderUI.la
303pyMoleCuilder_la_LIBADD += \
304 $(BOOST_PYTHON_LIBS) \
305 ${CodePatterns_LIBS} \
306 -l$(PYTHON_LIB)
307endif
308
309
310
311molecuilder_CPPFLAGS = $(AM_CPPFLAGS)
312#molecuilder_CPPFLAGS += -DNO_CACHING
313molecuilder_LDFLAGS = \
314 $(AM_LDFLAGS) \
315 $(BOOST_FILESYSTEM_LDFLAGS) \
316 $(BOOST_PROGRAM_OPTIONS_LDFLAGS) \
317 $(BOOST_RANDOM_LDFLAGS) \
318 $(BOOST_SYSTEM_LDFLAGS) \
319 $(BOOST_THREAD_LDFLAGS)
320molecuilder_SOURCES = \
321 builder.cpp \
322 builder_init.cpp \
323 builder_init.hpp \
324 Python/PythonScripting.hpp
325molecuilder_LDADD = \
326 libMolecuilder.la \
327 libMolecuilderUI.la
328molecuilder_LDADD += \
329 ${CodePatterns_LIBS} \
330 $(BOOST_THREAD_LIBS) \
331 $(BOOST_PROGRAM_OPTIONS_LIBS) \
332 $(BOOST_RANDOM_LIBS) \
333 $(BOOST_FILESYSTEM_LIBS) \
334 $(BOOST_SYSTEM_LIBS)
335
336if CONDPYTHON
337molecuilder_SOURCES += \
338 Actions/Action_impl_python.hpp \
339 Actions/GlobalListOfActions.hpp
340molecuilder_CPPFLAGS += -I$(PYTHON_INCLUDE_DIR)
341molecuilder_LDFLAGS += $(BOOST_PYTHON_LDFLAGS)
342molecuilder_LDADD += \
343 $(BOOST_PYTHON_LIBS) \
344 ${CodePatterns_LIBS} \
345 -l$(PYTHON_LIB)
346endif
347
348#Stuff for building the GUI using Qt
349if CONDQTGUI
350bin_PROGRAMS += molecuildergui
351molecuildergui_SOURCES = \
352 builder.cpp \
353 builder_init.cpp \
354 builder_init.hpp \
355 Python/PythonScripting.hpp
356molecuildergui_CPPFLAGS = $(AM_CPPFLAGS) -DUSE_GUI_QT
357molecuildergui_LDFLAGS = \
358 $(AM_LDFLAGS) \
359 $(BOOST_FILESYSTEM_LDFLAGS) \
360 $(BOOST_PROGRAM_OPTIONS_LDFLAGS) \
361 $(BOOST_SYSTEM_LDFLAGS) \
362 $(BOOST_THREAD_LDFLAGS)
363molecuildergui_LDADD = \
364 libMolecuilder.la \
365 libMolecuilderQtUI.la \
366 libMolecuilderUI.la
367molecuildergui_LDADD += \
368 ${CodePatterns_LIBS} \
369 $(BOOST_THREAD_LIBS) \
370 $(BOOST_PROGRAM_OPTIONS_LIBS) \
371 $(BOOST_RANDOM_LIBS) \
372 $(BOOST_FILESYSTEM_LIBS) \
373 $(BOOST_SYSTEM_LIBS) \
374 $(GUI_LIBS)
375
376if CONDPYTHON
377molecuildergui_SOURCES += \
378 Actions/Action_impl_python.hpp \
379 Actions/GlobalListOfActions.hpp
380molecuildergui_CPPFLAGS += -I$(PYTHON_INCLUDE_DIR)
381molecuildergui_LDFLAGS += $(BOOST_PYTHON_LDFLAGS)
382molecuildergui_LDADD += \
383 $(BOOST_PYTHON_LIBS) \
384 ${CodePatterns_LIBS} \
385 -l$(PYTHON_LIB)
386endif
387
388endif
389
390if CONDJOBMARKET
391CONTROLLERSOURCE = \
392 controller_MPQCCommandJob.cpp \
393 ControllerOptions_MPQCCommandJob.cpp
394
395CONTROLLERHEADER = \
396 controller_MPQCCommandJob.hpp \
397 ControllerOptions_MPQCCommandJob.hpp
398
399
400noinst_LTLIBRARIES += libFragmentationAutomationController.la
401libFragmentationAutomationController_la_includedir = $(includedir)/MoleCuilder/JobMarket
402nobase_libFragmentationAutomationController_la_include_HEADERS = $(CONTROLLERHEADER)
403libFragmentationAutomationController_la_SOURCES = $(CONTROLLERSOURCE)
404 libFragmentationAutomationController_la_CPPFLAGS = $(AM_CPPFLAGS) $(JobMarket_CFLAGS)
405libFragmentationAutomationController_la_LIBADD = \
406 ${JobMarket_Controller_LIBS} \
407 $(JobMarket_LIBS)
408
409bin_PROGRAMS += molecuilder_controller molecuilder_poolworker molecuilder_server
410
411molecuilder_controller_SOURCES = controller.cpp controller_AddOn_MPQCCommandJob.cpp
412molecuilder_controller_LDFLAGS = $(AM_LDFLAGS) $(BOOST_SERIALIZATION_LDFLAGS) $(BOOST_PROGRAM_OPTIONS_LDFLAGS)
413molecuilder_controller_CPPFLAGS = $(AM_CPPFLAGS) $(JobMarket_CFLAGS)
414molecuilder_controller_LDADD = \
415 libFragmentationAutomationController.la \
416 libMolecuilderFragmentation_getFromKeysetStub.la \
417 libMolecuilderFragmentation.la \
418 libMolecuilderJobs.la \
419 libMolecuilderJobs_Work.la \
420 libMolecuilderFragmentationSummation.la \
421 libMolecuilderFragmentation_KeysetsContainer.la \
422 libMolecuilderHelpers.la \
423 $(JobMarket_Controller_LIBS) \
424 $(top_builddir)/ThirdParty/LinearAlgebra/src/LinearAlgebra/libLinearAlgebra.la \
425 $(BOOST_SERIALIZATION_LIBS) \
426 $(BOOST_PROGRAM_OPTIONS_LIBS) \
427 ${CodePatterns_LIBS}
428
429molecuilder_poolworker_SOURCES = poolworker.cpp
430molecuilder_poolworker_LDFLAGS = $(AM_LDFLAGS) $(BOOST_SERIALIZATION_LDFLAGS) $(BOOST_PROGRAM_OPTIONS_LDFLAGS)
431molecuilder_poolworker_CPPFLAGS = \
432 $(AM_CPPFLAGS) $(JobMarket_CFLAGS) \
433 -I$(top_builddir)/ThirdParty/mpqc_open/src/lib \
434 -I$(top_srcdir)/ThirdParty/mpqc_open/src/lib \
435 -I$(top_srcdir)/ThirdParty/mpqc_open/src/bin/mpqc
436
437molecuilder_poolworker_LDADD = \
438 libMolecuilderJobs.la \
439 libMolecuilderJobs_Work.la \
440 libMolecuilderFragmentationSummation.la \
441 ${JobMarket_PoolWorker_LIBS} \
442 $(top_builddir)/ThirdParty/LinearAlgebra/src/LinearAlgebra/libLinearAlgebra.la \
443 $(BOOST_SERIALIZATION_LIBS) \
444 $(BOOST_PROGRAM_OPTIONS_LIBS) \
445 ${CodePatterns_LIBS}
446
447molecuilder_server_SOURCES = Server.cpp
448molecuilder_server_LDFLAGS = $(AM_LDFLAGS) $(BOOST_SERIALIZATION_LDFLAGS) $(BOOST_PROGRAM_OPTIONS_LDFLAGS)
449molecuilder_server_CPPFLAGS = $(AM_CPPFLAGS) $(JobMarket_CFLAGS)
450molecuilder_server_LDADD = \
451 libMolecuilderJobs.la \
452 libMolecuilderJobs_Work.la \
453 libMolecuilderFragmentationSummation.la \
454 ${JobMarket_Server_LIBS} \
455 $(top_builddir)/ThirdParty/LinearAlgebra/src/LinearAlgebra/libLinearAlgebra.la \
456 $(BOOST_SERIALIZATION_LIBS) \
457 $(BOOST_PROGRAM_OPTIONS_LIBS) \
458 ${CodePatterns_LIBS}
459endif
460
461unity_SOURCES = unity.cpp
462unity_CPPFLAGS = $(AM_CPPFLAGS)
463unity_LDFLAGS = $(AM_LDFLAGS) $(BOOST_FILESYSTEM_LDFLAGS) $(BOOST_PROGRAM_OPTIONS_LDFLAGS) $(BOOST_RANDOM_LDFLAGS) $(BOOST_SYSTEM_LDFLAGS) $(BOOST_THREAD_LDFLAGS)
464unity_LDADD = \
465 ${CodePatterns_LIBS} \
466 $(BOOST_THREAD_LIBS) \
467 $(BOOST_PROGRAM_OPTIONS_LIBS) \
468 $(BOOST_RANDOM_LIBS) \
469 $(BOOST_FILESYSTEM_LIBS) \
470 $(BOOST_SYSTEM_LIBS)
471
472
473FORCE:
474$(srcdir)/.git-version: FORCE
475 @if (test -d $(top_srcdir)/.git && cd $(srcdir) \
476 && { git describe --dirty --always || git describe; } ) > .git-version-t 2>/dev/null \
477 && ! diff .git-version-t $(srcdir)/.git-version >/dev/null 2>&1; then \
478 mv -f .git-version-t $(srcdir)/.git-version; \
479 else \
480 rm -f .git-version-t; \
481 fi
482
483EXTRA_DIST += \
484 $(srcdir)/.git-version \
485 $(bondtable_DATA) \
486 $(database_DATA) \
487 $(molecule_DATA)
488
489$(srcdir)/version.c: $(srcdir)/.git-version
490 echo "const char *MOLECUILDERVERSION = \"$(PACKAGE_NAME) version "`cat $(srcdir)/.git-version`"\";" > $@
491
492
493unity.cpp: ${MOLECUILDERSOURCE} ${MOLECUILDERHEADER}
494 list='$(MOLECUILDERSOURCE)'; for file in $$list; do \
495 echo "#include \"$(srcdir)/$$file\"" >> unity.cpp; \
496 done; \
497 subdirs='$(SUBDIRS)';for directory in $$subdirs; do\
498 olddir=$$PWD;\
499 cd $$directory && make unity.cpp;\
500 cd $$olddir;\
501 echo "#include \"$$directory/unity.cpp\"" >> unity.cpp;\
502 done;\
503 echo "#include \"$(srcdir)/builder.cpp\"" >> unity.cpp;
504 echo "#include \"$(srcdir)/version.c\"" >> unity.cpp;
505
506MOSTLYCLEANFILES += unity.cpp
507
Note: See TracBrowser for help on using the repository browser.