# PLEASE adhere to the alphabetical ordering in this Makefile! # Also indentation by a single tab SUBDIRS = Actions Exceptions Helpers LinearAlgebra Parser UIElements ATOMSOURCE = \ atom.cpp \ AtomicInfo.cpp \ atom_atominfo.cpp \ atom_bondedparticle.cpp \ atom_bondedparticleinfo.cpp \ atom_graphnode.cpp \ atom_graphnodeinfo.cpp \ atom_particleinfo.cpp \ atom_trajectoryparticle.cpp \ atom_trajectoryparticleinfo.cpp ATOMHEADER = \ atom.hpp \ AtomicInfo.hpp \ atom_atominfo.hpp \ atom_bondedparticle.hpp \ atom_bondedparticleinfo.hpp \ atom_graphnode.hpp \ atom_graphnodeinfo.hpp \ atom_particleinfo.hpp \ atom_trajectoryparticle.hpp \ atom_trajectoryparticleinfo.hpp ANALYSISSOURCE = \ analysis_bonds.cpp \ analysis_correlation.cpp ANALYSISHEADER = \ analysis_bonds.hpp \ analysis_correlation.hpp ACTIONSSOURCE = \ Actions/Action.cpp \ Actions/ActionHistory.cpp \ Actions/ActionRegistry.cpp \ Actions/ActionSequence.cpp \ Actions/ActionTraits.cpp \ Actions/ErrorAction.cpp \ Actions/MakroAction.cpp \ Actions/ManipulateAtomsProcess.cpp \ Actions/MethodAction.cpp \ Actions/OptionRegistry.cpp \ Actions/OptionTrait.cpp \ Actions/Process.cpp ACTIONSHEADER = \ Actions/Action.hpp \ Actions/ActionHistory.hpp \ Actions/ActionRegistry.hpp \ Actions/ActionSequence.hpp \ Actions/ActionTraits.hpp \ Actions/Calculation.hpp \ Actions/Calculation_impl.hpp \ Actions/ErrorAction.hpp \ Actions/MakroAction.hpp \ Actions/ManipulateAtomsProcess.hpp \ Actions/MethodAction.hpp \ Actions/OptionRegistry.hpp \ Actions/OptionTrait.hpp \ Actions/Process.hpp PATTERNSOURCE = \ Patterns/Observer.cpp PATTERNHEADER = \ Patterns/Cacheable.hpp \ Patterns/Observer.hpp \ Patterns/Singleton.hpp SHAPESOURCE = \ Shapes/BaseShapes.cpp \ Shapes/Shape.cpp \ Shapes/ShapeOps.cpp SHAPEHEADER = \ Shapes/BaseShapes.hpp \ Shapes/Shape.hpp \ Shapes/ShapeOps.hpp DESCRIPTORSOURCE = Descriptors/AtomDescriptor.cpp \ Descriptors/AtomIdDescriptor.cpp \ Descriptors/AtomSelectionDescriptor.cpp \ Descriptors/AtomShapeDescriptor.cpp \ Descriptors/AtomTypeDescriptor.cpp \ Descriptors/MoleculeDescriptor.cpp \ Descriptors/MoleculeFormulaDescriptor.cpp \ Descriptors/MoleculeIdDescriptor.cpp \ Descriptors/MoleculeNameDescriptor.cpp \ Descriptors/MoleculePtrDescriptor.cpp \ Descriptors/MoleculeSelectionDescriptor.cpp DESCRIPTORHEADER = Descriptors/AtomDescriptor.hpp \ Descriptors/AtomIdDescriptor.hpp \ Descriptors/AtomSelectionDescriptor.hpp \ Descriptors/AtomShapeDescriptor.hpp \ Descriptors/AtomTypeDescriptor.hpp \ Descriptors/MoleculeDescriptor.hpp \ Descriptors/MoleculeFormulaDescriptor.hpp \ Descriptors/MoleculeIdDescriptor.hpp \ Descriptors/MoleculeNameDescriptor.hpp \ Descriptors/MoleculePtrDescriptor.hpp \ Descriptors/MoleculeSelectionDescriptor.cpp THERMOSTATSOURCE = \ Thermostats/Berendsen.cpp \ Thermostats/GaussianThermostat.cpp \ Thermostats/Langevin.cpp \ Thermostats/NoseHoover.cpp \ Thermostats/NoThermostat.cpp \ Thermostats/Thermostat.cpp \ Thermostats/Woodcock.cpp THERMOSTATHEADER = \ Thermostats/Berendsen.hpp \ Thermostats/GaussianThermostat.hpp \ Thermostats/Langevin.hpp \ Thermostats/NoseHoover.hpp \ Thermostats/NoThermostat.hpp \ Thermostats/Thermostat.hpp \ Thermostats/Woodcock.hpp QTUIMOC_HEADER = UIElements/Qt4/QtDialog.hpp \ UIElements/Qt4/QtMainWindow.hpp \ UIElements/Menu/Qt4/QtMenu.hpp \ UIElements/Views/Qt4/QtWorldView.hpp \ UIElements/Views/Qt4/GLMoleculeView.hpp \ UIElements/Views/Qt4/QtMoleculeView.hpp \ UIElements/Views/Qt4/QtStatusBar.hpp QTUISOURCE = allmocs.moc.cpp \ UIElements/Qt4/Pipe/AtomQtQueryPipe.cpp \ UIElements/Qt4/Pipe/AtomsQtQueryPipe.cpp \ UIElements/Qt4/Pipe/BooleanQtQueryPipe.cpp \ UIElements/Qt4/Pipe/BoxQtQueryPipe.cpp \ UIElements/Qt4/Pipe/DoubleQtQueryPipe.cpp \ UIElements/Qt4/Pipe/ElementsQtQueryPipe.cpp \ UIElements/Qt4/Pipe/EmptyQtQueryPipe.cpp \ UIElements/Qt4/Pipe/ElementQtQueryPipe.cpp \ UIElements/Qt4/Pipe/FileQtQueryPipe.cpp \ UIElements/Qt4/Pipe/IntQtQueryPipe.cpp \ UIElements/Qt4/Pipe/MoleculeQtQueryPipe.cpp \ UIElements/Qt4/Pipe/MoleculesQtQueryPipe.cpp \ UIElements/Qt4/Pipe/StringQtQueryPipe.cpp \ UIElements/Qt4/Pipe/VectorQtQueryPipe.cpp \ UIElements/Qt4/Pipe/VectorsQtQueryPipe.cpp \ UIElements/Qt4/Query/AtomQtQuery.cpp \ UIElements/Qt4/Query/AtomsQtQuery.cpp \ UIElements/Qt4/Query/BooleanQtQuery.cpp \ UIElements/Qt4/Query/BoxQtQuery.cpp \ UIElements/Qt4/Query/DoubleQtQuery.cpp \ UIElements/Qt4/Query/DoublesQtQuery.cpp \ UIElements/Qt4/Query/ElementQtQuery.cpp \ UIElements/Qt4/Query/ElementsQtQuery.cpp \ UIElements/Qt4/Query/EmptyQtQuery.cpp \ UIElements/Qt4/Query/FileQtQuery.cpp \ UIElements/Qt4/Query/IntQtQuery.cpp \ UIElements/Qt4/Query/IntsQtQuery.cpp \ UIElements/Qt4/Query/MoleculeQtQuery.cpp \ UIElements/Qt4/Query/MoleculesQtQuery.cpp \ UIElements/Qt4/Query/StringQtQuery.cpp \ UIElements/Qt4/Query/StringsQtQuery.cpp \ UIElements/Qt4/Query/VectorQtQuery.cpp \ UIElements/Qt4/Query/VectorsQtQuery.cpp \ UIElements/Qt4/QtMainWindow.cpp \ UIElements/Qt4/QtDialog.cpp \ UIElements/Qt4/QtUIFactory.cpp \ UIElements/Menu/Qt4/QtMenu.cpp \ UIElements/Views/Qt4/QtWorldView.cpp \ UIElements/Views/Qt4/GLMoleculeView.cpp \ UIElements/Views/Qt4/QtMoleculeView.cpp \ UIElements/Views/Qt4/QtStatusBar.cpp QTUIHEADER = \ ${QTUIMOC_HEADER} \ UIElements/Qt4/Pipe/QtQueryListPipe.hpp \ UIElements/Qt4/QtUIFactory.hpp QTUI_DEFS = TESSELATIONSOURCE = \ BoundaryLineSet.cpp \ BoundaryPointSet.cpp \ BoundaryPolygonSet.cpp \ BoundaryTriangleSet.cpp \ CandidateForTesselation.cpp \ PointCloud.cpp \ tesselation.cpp \ tesselationhelpers.cpp \ TesselPoint.cpp TESSELATIONHEADER = \ BoundaryLineSet.hpp \ BoundaryPointSet.hpp \ BoundaryPolygonSet.hpp \ BoundaryTriangleSet.hpp \ CandidateForTesselation.hpp \ PointCloud.hpp \ tesselation.hpp \ tesselationhelpers.hpp \ TesselPoint.hpp MOLECUILDERSOURCE = \ ${ANALYSISSOURCE} \ ${ACTIONSSOURCE} \ ${ATOMSOURCE} \ ${PATTERNSOURCE} \ ${SHAPESOURCE} \ ${DESCRIPTORSOURCE} \ ${THERMOSTATSOURCE} \ ${TESSELATIONSOURCE} \ bond.cpp \ bondgraph.cpp \ boundary.cpp \ Box.cpp \ config.cpp \ ConfigFileBuffer.cpp \ defs.cpp \ element.cpp \ elements_db.cpp \ ellipsoid.cpp \ Formula.cpp \ graph.cpp \ leastsquaremin.cpp \ linkedcell.cpp \ moleculelist.cpp \ molecule.cpp \ molecule_dynamics.cpp \ molecule_fragmentation.cpp \ molecule_geometry.cpp \ molecule_graph.cpp \ molecule_pointcloud.cpp \ parser.cpp \ periodentafel.cpp \ ThermoStatContainer.cpp \ triangleintersectionlist.cpp \ UIElements/UIFactory.cpp \ World.cpp MOLECUILDERHEADER = \ ${ANALYSISHEADER} \ ${ACTIONSHEADER} \ ${ATOMHEADER} \ ${PATTERNHEADER} \ ${SHAPEHEADER} \ ${DESCRIPTORHEADER} \ ${THERMOSTATHEADER} \ ${TESSELATIONHEADER} \ bond.hpp \ bondgraph.hpp \ boundary.hpp \ Box.hpp \ config.hpp \ ConfigFileBuffer.hpp \ defs.hpp \ element.hpp \ elements_db.hpp \ ellipsoid.hpp \ Formula.hpp \ graph.hpp \ leastsquaremin.hpp \ linkedcell.hpp \ lists.hpp \ molecule.hpp \ parser.hpp \ periodentafel.hpp \ stackclass.hpp \ ThermoStatContainer.hpp \ triangleintersectionlist.hpp \ UIElements/UIFactory.hpp \ World.hpp lib_LTLIBRARIES = libMolecuilder-@MOLECUILDER_API_VERSION@.la libMolecuilder_includedir = $(includedir)/molecuilder-$(MOLECUILDER_API_VERSION)/Actions/ libMolecuilder_LIBS = \ LinearAlgebra/libMolecuilderLinearAlgebra-@MOLECUILDER_API_VERSION@.la \ ${BOOST_PROGRAM_OPTIONS_LIB} # UIElements/libMolecuilderUI.a \ Actions/libMolecuilderActions-@MOLECUILDER_API_VERSION@.la \ Parser/libMolecuilderParser-@MOLECUILDER_API_VERSION@.la \ Exceptions/libMolecuilderExceptions-@MOLECUILDER_API_VERSION@.la \ Helpers/libMolecuilderHelpers-@MOLECUILDER_API_VERSION@.la \ $(BOOST_LIB) \ ${BOOST_THREAD_LIB} nobase_libMolecuilder_include_HEADERS = ${MOLECUILDERHEADER} ## Define the source file list for the "libexample-@MOLECUILDER_API_VERSION@.la" ## target. Note that @MOLECUILDER_API_VERSION@ is not interpreted by Automake and ## will therefore be treated as if it were literally part of the target name, ## and the variable name derived from that. ## The file extension .cc is recognized by Automake, and makes it produce ## rules which invoke the C++ compiler to produce a libtool object file (.lo) ## from each source file. Note that it is not necessary to list header files ## which are already listed elsewhere in a _HEADERS variable assignment. libMolecuilder_@MOLECUILDER_API_VERSION@_la_SOURCES = ${MOLECUILDERSOURCE} $(srcdir)/version.c ## Instruct libtool to include ABI version information in the generated shared ## library file (.so). The library ABI version is defined in configure.ac, so ## that all version information is kept in one place. libMolecuilder_@MOLECUILDER_API_VERSION@_la_LDFLAGS = -version-info $(MOLECUILDER_SO_VERSION) ## The generated configuration header is installed in its own subdirectory of ## $(libdir). The reason for this is that the configuration information put ## into this header file describes the target platform the installed library ## has been built for. Thus the file must not be installed into a location ## intended for architecture-independent files, as defined by the Filesystem ## Hierarchy Standard (FHS). ## The nodist_ prefix instructs Automake to not generate rules for including ## the listed files in the distribution on 'make dist'. Files that are listed ## in _HEADERS variables are normally included in the distribution, but the ## configuration header file is generated at configure time and should not be ## shipped with the source tarball. libMolecuilder_libincludedir = $(libdir)/molecuilder-$(MOLECUILDER_API_VERSION)/include nodist_libMolecuilder_libinclude_HEADERS = $(top_builddir)/libmolecuilder_config.h ## Install the generated pkg-config file (.pc) into the expected location for ## architecture-dependent package configuration information. Occasionally, ## pkg-config files are also used for architecture-independent data packages, ## in which case the correct install location would be $(datadir)/pkgconfig. pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = $(top_builddir)/molecuilder-$(MOLECUILDER_API_VERSION).pc BOOST_LIB = $(BOOST_LDFLAGS) $(BOOST_MPL_LIB) $(BOOST_PROGRAM_OPTIONS_LIB) $(BOOST_FILESYSTEM_LIB) $(BOOST_THREAD_LIB) GUI_LIBS = ${QT_LDADD} ${QT_LIB_GUI} -lQtOpenGL ${GLU_LIBS} INCLUDES = -I$(top_srcdir)/src/unittests -I$(top_srcdir)/src/Actions -I$(top_srcdir)/src/UIElements noinst_LIBRARIES = libmenu.a bin_PROGRAMS = molecuilder molecuildergui joiner analyzer EXTRA_PROGRAMS = unity molecuilderdir = ${bindir} libmenu_a_SOURCES = ${UISOURCE} ${UIHEADER} molecuilder_DATA = elements.db valence.db orbitals.db Hbonddistance.db Hbondangle.db molecuilder_CXXFLAGS = $(BOOST_CPPFLAGS) #molecuilder_CXXFLAGS += -DNO_CACHING molecuilder_LDFLAGS = $(BOOST_LIB) molecuilder_SOURCES = builder.cpp molecuilder_LDADD = \ UIElements/libMolecuilderUI-@MOLECUILDER_API_VERSION@.la \ Actions/libMolecuilderActions-@MOLECUILDER_API_VERSION@.la \ libMolecuilder-@MOLECUILDER_API_VERSION@.la \ Parser/libMolecuilderParser-@MOLECUILDER_API_VERSION@.la \ LinearAlgebra/libMolecuilderLinearAlgebra-@MOLECUILDER_API_VERSION@.la \ Exceptions/libMolecuilderExceptions-@MOLECUILDER_API_VERSION@.la \ Helpers/libMolecuilderHelpers-@MOLECUILDER_API_VERSION@.la \ $(BOOST_LIB) #Stuff for building the GUI using Qt molecuildergui_SOURCES = ${QTUISOURCE} builder.cpp molecuildergui_CXXFLAGS = ${QT_CXXFLAGS} ${GLU_CXXFLAGS} -DUSE_GUI_QT molecuildergui_LDFLAGS = $(BOOST_LIB) ${QT_LDFLAGS} ${GLU_LDFLAGS} unity_SOURCES = unity.cpp unity_LDADD = $(BOOST_LIB) molecuildergui_LDADD = \ UIElements/libMolecuilderUI-@MOLECUILDER_API_VERSION@.la \ Actions/libMolecuilderActions-@MOLECUILDER_API_VERSION@.la \ libMolecuilder-@MOLECUILDER_API_VERSION@.la \ Parser/libMolecuilderParser-@MOLECUILDER_API_VERSION@.la \ LinearAlgebra/libMolecuilderLinearAlgebra-@MOLECUILDER_API_VERSION@.la \ Exceptions/libMolecuilderExceptions-@MOLECUILDER_API_VERSION@.la \ Helpers/libMolecuilderHelpers-@MOLECUILDER_API_VERSION@.la \ $(BOOST_LIB) \ ${GUI_LIBS} joiner_SOURCES = joiner.cpp datacreator.cpp datacreator.hpp periodentafel.hpp joiner_LDADD = \ UIElements/libMolecuilderUI-@MOLECUILDER_API_VERSION@.la \ Actions/libMolecuilderActions-@MOLECUILDER_API_VERSION@.la \ libMolecuilder-@MOLECUILDER_API_VERSION@.la \ Parser/libMolecuilderParser-@MOLECUILDER_API_VERSION@.la \ LinearAlgebra/libMolecuilderLinearAlgebra-@MOLECUILDER_API_VERSION@.la \ Exceptions/libMolecuilderExceptions-@MOLECUILDER_API_VERSION@.la \ Helpers/libMolecuilderHelpers-@MOLECUILDER_API_VERSION@.la \ $(BOOST_LIB) analyzer_SOURCES = analyzer.cpp datacreator.cpp periodentafel.hpp datacreator.hpp analyzer_LDADD = \ UIElements/libMolecuilderUI-@MOLECUILDER_API_VERSION@.la \ Actions/libMolecuilderActions-@MOLECUILDER_API_VERSION@.la \ libMolecuilder-@MOLECUILDER_API_VERSION@.la \ Parser/libMolecuilderParser-@MOLECUILDER_API_VERSION@.la \ LinearAlgebra/libMolecuilderLinearAlgebra-@MOLECUILDER_API_VERSION@.la \ Exceptions/libMolecuilderExceptions-@MOLECUILDER_API_VERSION@.la \ Helpers/libMolecuilderHelpers-@MOLECUILDER_API_VERSION@.la \ $(BOOST_LIB) #Rules needed for Qt4 # UI-Files are scattered throughout several subdirectories # Therfore `%'-rules do not seem to work #Quick fix to get it done otherwise allmocs.moc.cpp: ${QTUIMOC_HEADER} echo "" > allmocs.moc.cpp;\ list='$(QTUIMOC_HEADER)'; for header in $$list; do \ echo "Making mocfile for $$header"; \ target=`basename $$header | sed "s/\(.*\)\..*/\1.moc.cpp/"`;\ $(MOC) $(srcdir)/$$header -o $$target \ || eval $$failcom; \ echo "#include \"$$target\"" >> allmocs.moc.cpp; \ done; #EXTRA_DIST = ${molecuilder_DATA} FORCE: $(srcdir)/.git-version: FORCE @if (test -d $(top_srcdir)/.git && cd $(srcdir) \ && { git describe --dirty --always || git describe; } ) > .git-version-t 2>/dev/null \ && ! diff .git-version-t $(srcdir)/.git-version >/dev/null 2>&1; then \ mv -f .git-version-t $(srcdir)/.git-version; \ else \ rm -f .git-version-t; \ fi EXTRA_DIST = $(srcdir)/.git-version $(srcdir)/version.c: $(srcdir)/.git-version echo "const char *MOLECUILDERVERSION = \"$(PACKAGE_NAME) version "`cat $(srcdir)/.git-version`"\";" > $@ unity.cpp: ${MOLECUILDERSOURCE} ${MOLECUILDERHEADER} echo "#include \"$(srcdir)/Helpers/MemDebug.cpp\"" > unity.cpp; \ list='$(MOLECUILDERSOURCE)'; for file in $$list; do \ echo "#include \"$(srcdir)/$$file\"" >> unity.cpp; \ done; \ subdirs='$(SUBDIRS)';for directory in $$subdirs; do\ olddir=$$PWD;\ cd $$directory && make unity.cpp;\ cd $$olddir;\ echo "#include \"$$directory/unity.cpp\"" >> unity.cpp;\ done;\ echo "#include \"$(srcdir)/builder.cpp\"" >> unity.cpp; echo "#include \"$(srcdir)/version.c\"" >> unity.cpp; MOSTLYCLEANFILES = allmocs.moc.cpp unity.cpp