source: branches/sandbox/Cbc/src/Makefile.am @ 1344

Last change on this file since 1344 was 1344, checked in by EdwinStraver, 10 years ago

Combined CbcClique? with CbcCliqueBranchingObject? and CbcLongCliqueBranchingObject?.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 14.6 KB
Line 
1# Copyright (C) 2006, 2007 International Business Machines and others.
2# All Rights Reserved.
3# This file is distributed under the Common Public License.
4
5## $Id: Makefile.am 1344 2009-12-03 19:36:52Z EdwinStraver $
6
7# Author:  Andreas Waechter           IBM    2006-04-13
8
9AUTOMAKE_OPTIONS = foreign
10
11########################################################################
12#                               libCbc                                 #
13########################################################################
14
15# Name of the library compiled in this directory.  We want it to be installed
16# in the 'lib' directory
17lib_LTLIBRARIES = libCbc.la libCbcSolver.la
18
19# List all source files for this library, including headers
20libCbc_la_SOURCES = \
21        Cbc_C_Interface.cpp Cbc_C_Interface.h \
22        CbcConfig.h \
23        CbcBranchActual.hpp \
24        CbcBranchAllDifferent.cpp CbcBranchAllDifferent.hpp \
25        CbcBranchBase.hpp \
26        CbcBranchCut.cpp CbcBranchCut.hpp \
27        CbcBranchDecision.cpp CbcBranchDecision.hpp \
28        CbcBranchDefaultDecision.cpp CbcBranchDefaultDecision.hpp \
29        CbcBranchDynamic.cpp CbcBranchDynamic.hpp \
30        CbcBranchingObject.cpp CbcBranchingObject.hpp \
31        CbcBranchLotsize.cpp CbcBranchLotsize.hpp \
32        CbcBranchToFixLots.cpp CbcBranchToFixLots.hpp \
33        CbcCompareActual.hpp \
34        CbcCompareBase.hpp \
35        CbcCompareDefault.cpp CbcCompareDefault.hpp \
36        CbcCompareDepth.cpp CbcCompareDepth.hpp \
37        CbcCompareEstimate.cpp CbcCompareEstimate.hpp \
38        CbcCompareObjective.cpp CbcCompareObjective.hpp \
39        CbcConsequence.cpp CbcConsequence.hpp \
40        CbcChooseVariable.hpp \
41        CbcClique.cpp CbcClique.hpp \
42        CbcCompare.hpp \
43        CbcCountRowCut.cpp CbcCountRowCut.hpp \
44        CbcCutBranchingObject.cpp CbcCutBranchingObject.hpp \
45        CbcCutGenerator.cpp CbcCutGenerator.hpp \
46        CbcCutModifier.cpp CbcCutModifier.hpp \
47        CbcCutSubsetModifier.cpp CbcCutSubsetModifier.hpp \
48        CbcDummyBranchingObject.cpp CbcDummyBranchingObject.hpp \
49        CbcDynamicPseudoCostBranchingObject.cpp CbcDynamicPseudoCostBranchingObject.hpp \
50        CbcEventHandler.cpp CbcEventHandler.hpp \
51        CbcFathom.cpp CbcFathom.hpp \
52        CbcFathomDynamicProgramming.cpp CbcFathomDynamicProgramming.hpp \
53        CbcFeasibilityBase.hpp \
54        CbcFixingBranchingObject.cpp CbcFixingBranchingObject.hpp \
55        CbcFixVariable.cpp CbcFixVariable.hpp \
56        CbcFullNodeInfo.cpp CbcFullNodeInfo.hpp \
57        CbcFollowOn.cpp CbcFollowOn.hpp \
58        CbcGeneral.cpp CbcGeneral.hpp \
59        CbcGeneralBranchingObject.cpp CbcGeneralBranchingObject.hpp \
60        CbcGeneralDepth.cpp CbcGeneralDepth.hpp \
61        CbcHeuristic.cpp CbcHeuristic.hpp \
62        CbcHeuristicDive.cpp CbcHeuristicDive.hpp \
63        CbcHeuristicDiveCoefficient.cpp CbcHeuristicDiveCoefficient.hpp \
64        CbcHeuristicDiveFractional.cpp CbcHeuristicDiveFractional.hpp \
65        CbcHeuristicDiveGuided.cpp CbcHeuristicDiveGuided.hpp \
66        CbcHeuristicDiveLineSearch.cpp CbcHeuristicDiveLineSearch.hpp \
67        CbcHeuristicDivePseudoCost.cpp CbcHeuristicDivePseudoCost.hpp \
68        CbcHeuristicDiveVectorLength.cpp CbcHeuristicDiveLength.hpp \
69        CbcHeuristicFPump.cpp CbcHeuristicFPump.hpp \
70        CbcHeuristicGreedy.cpp CbcHeuristicGreedy.hpp \
71        CbcHeuristicLocal.cpp CbcHeuristicLocal.hpp \
72        CbcHeuristicPivotAndFix.cpp CbcHeuristicPivotAndFix.hpp \
73        CbcHeuristicRandRound.cpp CbcHeuristicRandRound.hpp \
74        CbcHeuristicRINS.cpp CbcHeuristicRINS.hpp \
75        CbcIntegerBranchingObject.cpp CbcIntegerBranchingObject.hpp \
76        CbcIntegerPseudoCostBranchingObject.cpp \
77        CbcIntegerPseudoCostBranchingObject.hpp \
78        CbcLotsize.cpp CbcLotsize.hpp \
79        CbcMessage.cpp CbcMessage.hpp \
80        CbcModel.cpp CbcModel.hpp \
81        CbcNode.cpp CbcNode.hpp \
82        CbcNodeInfo.cpp CbcNodeInfo.hpp \
83        CbcNWay.cpp CbcNWay.hpp \
84        CbcNWayBranchingObject.cpp CbcNWayBranchingObject.hpp \
85        CbcObject.cpp CbcObject.hpp \
86        CbcObjectUpdateData.cpp CbcObjectUpdateData.hpp \
87        CbcOneGeneralBranchingObject.cpp CbcOneGeneralBranchingObject.hpp \
88        CbcPartialNodeInfo.cpp CbcPartialNodeInfo.hpp \
89        CbcSimpleInteger.cpp CbcSimpleInteger.hpp \
90        CbcSimpleIntegerDynamicPseudoCost.cpp CbcSimpleIntegerDynamicPseudoCost.hpp \
91        CbcSimpleIntegerPseudoCost.cpp CbcSimpleIntegerPseudoCost.hpp \
92        CbcSOS.cpp CbcSOS.hpp \
93        CbcSOSBranchingObject.cpp CbcSOSBranchingObject.hpp \
94        CbcStatistics.cpp CbcStatistics.hpp \
95        CbcStrategy.cpp CbcStrategy.hpp \
96        CbcSubProblem.cpp CbcSubProblem.hpp \
97        CbcTree.cpp CbcTree.hpp \
98        CbcTreeLocal.cpp CbcTreeLocal.hpp
99
100libCbcSolver_la_SOURCES = \
101        CbcCbcParam.cpp \
102        Cbc_ampl.cpp Cbc_ampl.h \
103        ClpConstraintAmpl.hpp ClpAmplObjective.hpp ClpAmplStuff.cpp \
104        CbcLinked.cpp CbcLinked.hpp \
105        unitTestClp.cpp CbcSolver.cpp
106
107#Stefan: added unitTestClp.cpp because CbcSolver defines reference to it
108
109## If we have the Ampl solver library, we need to add additional things
110## also see lower down
111## new idea is to add in source code anyway
112##libCbc_la_SOURCES += Cbc_ampl.cpp Cbc_ampl.h
113
114
115# This is for libtool (on Windows)
116
117libCbc_la_LDFLAGS = $(LT_LDFLAGS)
118libCbcSolver_la_LDFLAGS = $(LT_LDFLAGS)
119
120# Some common setup for cbc and cbc-generic.
121
122bin_PROGRAMS =
123AM_CPPFLAGS =
124
125LIBS += `cat $(CGLOBJDIR)/cgl_addlibs.txt` \
126        `cat $(OSIOBJDIR)/osi_addlibs.txt` \
127        `cat $(COINUTILSOBJDIR)/coinutils_addlibs.txt` $(ADDLIBS)
128
129
130########################################################################
131#                            cbc program                               #
132########################################################################
133
134if COIN_HAS_CLP
135
136# Name of the executable compiled in this directory.  We want it to be
137# installed in the 'bin' directory
138bin_PROGRAMS += cbc
139
140# List all source files for this executable, including headers
141cbc_SOURCES = \
142        CoinSolve.cpp
143
144# Additional COIN libraries
145cbc_LDADD = libCbcSolver.la \
146        libCbc.la \
147        $(CGLOBJDIR)/src/libCgl.la \
148        $(OSIOBJDIR)/src/OsiClp/libOsiClp.la \
149        $(OSIOBJDIR)/src/libOsi.la \
150        $(CLPOBJDIR)/src/libClp.la \
151        $(COINUTILSOBJDIR)/src/libCoinUtils.la
152
153# Finally, the -rpath flag is used by libtool to make sure that the shared
154# library is found (in the lib install directory) when we are using dynamic
155# libraries.
156cbc_LDFLAGS = -rpath $(libdir)
157
158# Add locations of include files.
159
160AM_CPPFLAGS += -I`$(CYGPATH_W) $(CLPSRCDIR)/src` \
161        -I`$(CYGPATH_W) $(OSISRCDIR)/src/OsiClp` \
162        -I`$(CYGPATH_W) $(CLPOBJDIR)/inc`
163LIBS  += `cat $(CLPOBJDIR)/clp_addlibs.txt`
164
165if COIN_HAS_CPX
166  AM_CPPFLAGS += -I`$(CYGPATH_W) $(CPXINCDIR)` \
167        -I`$(CYGPATH_W) $(OSISRCDIR)/src/OsiCpx`
168  cbc_LDADD += $(OSIOBJDIR)/src/OsiCpx/libOsiCpx.la
169endif
170
171# If we have the Ampl solver library, we need to add additional things
172if COIN_HAS_ASL
173#cbc_SOURCES += Cbc_ampl.cpp Cbc_ampl.h
174cbc_LDADD += $(ASLLIB)
175AM_CPPFLAGS += $(ASL_CPPFLAGS) -DCOIN_HAS_ASL
176endif
177
178endif
179
180
181########################################################################
182#                        cbc-generic program                           #
183########################################################################
184
185if CBC_BUILD_CBC_GENERIC
186
187# Name of the executable compiled in this directory.  We want it to be
188# installed in the 'bin' directory
189
190bin_PROGRAMS += cbc-generic
191
192# List all source files for this executable, including headers
193
194cbc_generic_SOURCES = \
195        CbcGenBaB.cpp \
196        CbcGenCbcParam.cpp CbcGenCbcParam.hpp CbcGenCbcParamUtils.cpp \
197        CbcGenCtlBlk.cpp CbcGenCtlBlk.hpp \
198        CbcGeneric.cpp \
199        CbcGenMessages.cpp CbcGenMessages.hpp \
200        CbcGenOsiParam.cpp CbcGenOsiParam.hpp CbcGenOsiParamUtils.cpp \
201        CbcGenParam.cpp CbcGenParam.hpp CbcGenParamUtils.cpp \
202        CbcGenSolution.cpp \
203        CbcGenSolvers.cpp
204
205cbc_generic_LDADD = libCbcSolver.la \
206        libCbc.la \
207        $(CGLOBJDIR)/src/libCgl.la
208
209# List all additionally required solver and Osi libraries
210
211if COIN_HAS_CLP
212  AM_CPPFLAGS += -I`$(CYGPATH_W) $(CLPSRCDIR)/src` \
213        -I`$(CYGPATH_W) $(OSISRCDIR)/src/OsiClp` \
214        -I`$(CYGPATH_W) $(CLPOBJDIR)/inc`
215  cbc_generic_LDADD += $(OSIOBJDIR)/src/OsiClp/libOsiClp.la \
216        $(CLPOBJDIR)/src/libClp.la
217  LIBS  += `cat $(CLPOBJDIR)/clp_addlibs.txt`
218endif
219
220if COIN_HAS_CPX
221  AM_CPPFLAGS += -I`$(CYGPATH_W) $(CPXINCDIR)` \
222        -I`$(CYGPATH_W) $(OSISRCDIR)/src/OsiCpx`
223  cbc_generic_LDADD += $(OSIOBJDIR)/src/OsiCpx/libOsiCpx.la
224endif
225
226if COIN_HAS_DYLP
227  AM_CPPFLAGS += -I`$(CYGPATH_W) $(DYLPSRCDIR)/src/DylpStdLib` \
228        -I`$(CYGPATH_W) $(DYLPSRCDIR)/src/Dylp` \
229        -I`$(CYGPATH_W) $(DYLPOBJDIR)/inc` \
230        -I`$(CYGPATH_W) $(OSISRCDIR)/src/OsiDylp`
231  cbc_generic_LDADD += $(OSIOBJDIR)/src/OsiDylp/libOsiDylp.la \
232        $(DYLPOBJDIR)/src/Dylp/libDylp.la
233  LIBS += `cat $(DYLPOBJDIR)/dylp_addlibs.txt`
234endif
235
236if COIN_HAS_FMP
237  AM_CPPFLAGS += -I`$(CYGPATH_W) $(OSISRCDIR)/src/OsiFmp`
238  cbc_generic_LDADD += $(OSIOBJDIR)/src/OsiFmp/libOsiFmp.la
239endif
240
241if COIN_HAS_GLPK
242  AM_CPPFLAGS += -I`$(CYGPATH_W) $(GLPKINCDIR)` \
243        -I`$(CYGPATH_W) $(OSISRCDIR)/src/OsiGlpk`
244  cbc_generic_LDADD += $(OSIOBJDIR)/src/OsiGlpk/libOsiGlpk.la
245endif
246
247if COIN_HAS_MSK
248  AM_CPPFLAGS += -I`$(CYGPATH_W) $(MSKINCDIR)` \
249        -I`$(CYGPATH_W) $(OSISRCDIR)/src/OsiMsk`
250  cbc_generic_LDADD += $(OSIOBJDIR)/src/OsiMsk/libOsiMsk.la
251endif
252
253if COIN_HAS_OSL
254  AM_CPPFLAGS += -I`$(CYGPATH_W) $(OSLINCDIR)` \
255        -I`$(CYGPATH_W) $(OSISRCDIR)/src/OsiOsl`
256  cbc_generic_LDADD += $(OSIOBJDIR)/src/OsiOsl/libOsiOsl.la
257endif
258
259if COIN_HAS_SPX
260  AM_CPPFLAGS += -I`$(CYGPATH_W) $(SPXINCDIR)` \
261        -I`$(CYGPATH_W) $(OSISRCDIR)/src/OsiSpx`
262  cbc_generic_LDADD += $(OSIOBJDIR)/src/OsiSpx/libOsiSpx.la
263endif
264
265if COIN_HAS_SYMPHONY
266  AM_CPPFLAGS += -I`$(CYGPATH_W) $(SYMPHONYSRCDIR)/src` \
267        -I`$(CYGPATH_W) $(OSISRCDIR)/src/OsiSym`
268  cbc_generic_LDADD += $(OSIOBJDIR)/src/OsiSym/libOsiSym.la \
269        $(SYMPHONYOBJDIR)/src/libSym.la
270  LIBS += `cat $(SYMPHONYOBJDIR)/sym_addlibs.txt`
271endif
272
273if COIN_HAS_VOL
274  AM_CPPFLAGS += -I`$(CYGPATH_W) $(VOLSRCDIR)/src` \
275        -I`$(CYGPATH_W) $(OSISRCDIR)/src/OsiVol`
276  cbc_generic_LDADD += $(OSIOBJDIR)/src/OsiVol/libOsiVol.la \
277        $(VOLOBJDIR)/src/libVol.la
278  LIBS += `cat $(VOLOBJDIR)/vol_addlibs.txt`
279endif
280
281if COIN_HAS_XPR
282  AM_CPPFLAGS += -I`$(CYGPATH_W) $(XPRINCDIR)` \
283        -I`$(CYGPATH_W) $(OSISRCDIR)/src/OsiXpr`
284  cbc_generic_LDADD += $(OSIOBJDIR)/src/OsiXpr/libOsiXpr.la
285endif
286
287if COIN_HAS_ASL
288  cbc_generic_LDADD += $(ASLLIB)
289  AM_CPPFLAGS += $(ASL_CPPFLAGS) -DCOIN_HAS_ASL
290endif
291
292# Finally the Osi Coin library (many of the above need it)
293cbc_generic_LDADD += $(OSIOBJDIR)/src/libOsi.la \
294        $(COINUTILSOBJDIR)/src/libCoinUtils.la
295
296# Finally, the -rpath flag is used by libtool to make sure that the shared
297# library is found (in the lib install directory) when we are using dynamic
298# libraries.
299
300cbc_generic_LDFLAGS = -rpath $(libdir)
301
302endif
303
304########################################################################
305#                            Additional flags                          #
306########################################################################
307
308# Here list all include flags, relative to this "srcdir" directory.  This
309# "cygpath" stuff is necessary to compile with native compilers on Windows.
310# "top_srcdir" refers to the basic directory for the main package that is
311# being compiled.
312AM_CPPFLAGS += \
313        -I`$(CYGPATH_W) $(CGLSRCDIR)/src` \
314        -I`$(CYGPATH_W) $(CGLSRCDIR)/src/CglClique` \
315        -I`$(CYGPATH_W) $(CGLSRCDIR)/src/CglDuplicateRow` \
316        -I`$(CYGPATH_W) $(CGLSRCDIR)/src/CglFlowCover` \
317        -I`$(CYGPATH_W) $(CGLSRCDIR)/src/CglGomory` \
318        -I`$(CYGPATH_W) $(CGLSRCDIR)/src/CglKnapsackCover` \
319        -I`$(CYGPATH_W) $(CGLSRCDIR)/src/CglMixedIntegerRounding` \
320        -I`$(CYGPATH_W) $(CGLSRCDIR)/src/CglMixedIntegerRounding2` \
321        -I`$(CYGPATH_W) $(CGLSRCDIR)/src/CglOddHole` \
322        -I`$(CYGPATH_W) $(CGLSRCDIR)/src/CglPreProcess` \
323        -I`$(CYGPATH_W) $(CGLSRCDIR)/src/CglProbing` \
324        -I`$(CYGPATH_W) $(CGLSRCDIR)/src/CglRedSplit` \
325        -I`$(CYGPATH_W) $(CGLSRCDIR)/src/CglTwomir` \
326        -I`$(CYGPATH_W) $(CGLSRCDIR)/src/CglLandP` \
327        -I`$(CYGPATH_W) $(CGLSRCDIR)/src/CglResidualCapacity` \
328        -I`$(CYGPATH_W) $(CGLSRCDIR)/src/CglZeroHalf` \
329        -I`$(CYGPATH_W) $(COINUTILSSRCDIR)/src` \
330        -I`$(CYGPATH_W) $(COINUTILSOBJDIR)/inc` \
331        -I`$(CYGPATH_W) $(OSISRCDIR)/src` \
332        -I`$(CYGPATH_W) $(OSIOBJDIR)/inc`
333
334# List additional defines
335AM_CPPFLAGS += -DCOIN_NO_CLP_MESSAGE -DUSE_CBCCONFIG
336
337# This line is necessary to allow VPATH compilation with MS compilers
338# on Cygwin
339DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/inc
340
341########################################################################
342#                Headers that need to be installed                     #
343########################################################################
344
345# Here list all the header files that are required by a user of the library,
346# and that therefore should be installed in 'install/coin'
347includecoindir = $(includedir)/coin
348includecoin_HEADERS = \
349        ../inc/config_cbc.h \
350        Cbc_C_Interface.h \
351        CbcBranchActual.hpp \
352        CbcBranchAllDifferent.hpp \
353        CbcBranchBase.hpp \
354        CbcBranchDynamic.hpp \
355        CbcBranchLotsize.hpp \
356        CbcBranchCut.hpp \
357        CbcBranchDecision.hpp \
358        CbcBranchDefaultDecision.hpp \
359        CbcBranchingObject.hpp \
360        CbcBranchToFixLots.hpp \
361        CbcCompareActual.hpp \
362        CbcCompareDefault.hpp \
363        CbcCompareDepth.hpp \
364        CbcCompareEstimate.hpp \
365        CbcCompareObjective.hpp \
366        CbcConsequence.hpp \
367        CbcChooseVariable.hpp \
368        CbcClique.hpp \
369        CbcCompare.hpp \
370        CbcCutBranchingObject.hpp \
371        CbcCutGenerator.hpp \
372        CbcCutModifier.hpp \
373        CbcCutSubsetModifier.hpp \
374        CbcDummyBranchingObject.hpp \
375        CbcDynamicPseudoCostBranchingObject.hpp \
376        CbcFathom.hpp \
377        CbcEventHandler.hpp \
378        CbcFeasibilityBase.hpp \
379        CbcFixingBranchingObject.hpp \
380        CbcFixVariable.hpp \
381        CbcFollowOn.hpp \
382        CbcFullNodeInfo.hpp \
383        CbcGeneral.hpp \
384        CbcGeneralBranchingObject.hpp \
385        CbcGeneralDepth.hpp \
386        CbcHeuristic.hpp \
387        CbcHeuristicDive.hpp \
388        CbcHeuristicDiveCoefficient.hpp \
389        CbcHeuristicDiveFractional.hpp \
390        CbcHeuristicDiveGuided.hpp \
391        CbcHeuristicDiveLineSearch.hpp \
392        CbcHeuristicDivePseudoCost.hpp \
393        CbcHeuristicDiveVectorLength.hpp \
394        CbcHeuristicFPump.hpp \
395        CbcHeuristicGreedy.hpp \
396        CbcHeuristicLocal.hpp \
397        CbcHeuristicPivotAndFix.hpp \
398        CbcHeuristicRandRound.hpp \
399        CbcHeuristicRINS.hpp \
400        CbcIntegerBranchingObject.hpp \
401        CbcIntegerPseudoCostBranchingObject.hpp \
402        CbcLotsize.hpp \
403        CbcMessage.hpp \
404        CbcModel.hpp \
405        CbcNode.hpp \
406        CbcNodeInfo.hpp \
407        CbcNWay.hpp \
408        CbcNWayBranchingObject.hpp \
409        CbcObject.hpp \
410        CbcObjectUpdateData.hpp \
411        CbcOneGeneralBranchingObject.hpp \
412        CbcPartialNodeInfo.hpp \
413        CbcSimpleInteger.hpp \
414        CbcSimpleIntegerDynamicPseudoCost.hpp \
415        CbcSimpleIntegerPseudoCost.hpp \
416        CbcStrategy.hpp \
417        CbcSolver.hpp \
418        CbcSOS.hpp \
419        CbcSOSBranchingObject.hpp \
420        CbcSubProblem.hpp \
421        CbcTree.hpp \
422        CbcLinked.hpp \
423        CbcTreeLocal.hpp \
424        ClpConstraintAmpl.hpp \
425        ClpAmplObjective.hpp
426
427#############################################################################
428# Create the Config.h file that always defines HAVE_CONFIG_H and install it #
429#############################################################################
430
431# You only need to adapt the following line
432ConfigHeader = CbcConfig.h
433
434install-exec-local:
435        echo "#ifndef HAVE_CONFIG_H" >bla
436        echo "#define HAVE_CONFIG_H" >>bla
437        echo "#endif" >> bla
438        cat $(srcdir)/$(ConfigHeader) >> bla
439        $(install_sh_DATA) bla $(DESTDIR)$(includecoindir)/$(ConfigHeader)
440        rm -f bla
441
442uninstall-local:
443        rm -f $(DESTDIR)$(includecoindir)/$(ConfigHeader)
Note: See TracBrowser for help on using the repository browser.