Repository navigation
Expand file tree
/
Copy pathmakefile-c
More file actions
154 lines (123 loc) · 5.9 KB
/
Copy pathmakefile-c
File metadata and controls
154 lines (123 loc) · 5.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
##############################################################################
################################ makefile-c ##################################
##############################################################################
# #
# complete makefile of MILPSolver #
# #
# The makefile defines internally all external libraries (comprised the #
# SMS++ one) required by MILPSolver. Accordingly, all necessary OBJ, H, #
# -I directives, external libraries + -L< libdirs > are added to the #
# corresponding MILPS* macros. #
# #
# Input: $(CC) = compiler command #
# $(SW) = compiler options #
# $(MILPSSDR) = the directory where MILPSolver source is #
# $(MILPSODR) = the directory where the objects have to be put #
# #
# Output: $(MILPSOBJ) = the final object(s) / library #
# $(MILPSLIB) = external libraries + -L< libdirs > #
# $(MILPSH) = the .h files to include for MILPSolver #
# $(MILPSINC) = the -I$( MILPSolver directory ) #
# #
# Antonio Frangioni #
# Dipartimento di Informatica #
# Universita' di Pisa #
# #
##############################################################################
# define & include the necessary modules- - - - - - - - - - - - - - - - - - -
# if a module is not used in the current configuration, just comment out the
# corresponding include line
# each module outputs some macros to be used here:
# *OBJ is the final object/library
# *H is the list of all include files
# *INC is the -I< include directories >
# define input macros for SMS++ complete makefile, then include it
SMS++SDR = $(MILPSSDR)/../SMS++
include $(SMS++SDR)/lib/makefile-inc
# include makefile for libCPLEX
include $(MILPSSDR)/../extlib/makefile-libCPLEX
# include makefile for libGUROBI
include $(MILPSSDR)/../extlib/makefile-libGUROBI
# include makefile for libSCIP
include $(MILPSSDR)/../extlib/makefile-libSCIP
# include makefile for libHiGHS
include $(MILPSSDR)/../extlib/makefile-libHiGHS
# include makefile for libPIPS
include $(MILPSSDR)/../extlib/makefile-libPIPS
# include makefile for libDAQP
include $(MILPSSDR)/../extlib/makefile-libDAQP
# include makefile for libqpOASES
include $(MILPSSDR)/../extlib/makefile-libqpOASES
# include makefile for libClarabel
include $(MILPSSDR)/../extlib/makefile-libClarabel
# include makefile for libMOSEK
include $(MILPSSDR)/../extlib/makefile-libMOSEK
# include makefile for libProxSuite
include $(MILPSSDR)/../extlib/makefile-libProxSuite
# include makefile for libPIQP
include $(MILPSSDR)/../extlib/makefile-libPIQP
# include makefile for libOSQP
include $(MILPSSDR)/../extlib/makefile-libOSQP
# include makefile for libqpmad
include $(MILPSSDR)/../extlib/makefile-libqpmad
# include makefile for libquadprog
include $(MILPSSDR)/../extlib/makefile-libquadprog
# include the makefile requiring all external modules in input
include $(MILPSSDR)/makefile
# macros to be exported - - - - - - - - - - - - - - - - - - - - - - - - - - -
# append external -I directives to MILPSINC, MILPSOBJ and MILPSH as defined
# by the makefile, thus the := assignment has to be used (use GNU make)
MILPSOBJ := $(MILPSOBJ) $(SMS++OBJ)
MILPSINC := $(MILPSINC) $(SMS++INC) $(libCPLEXINC) $(libGUROBIINC) \
$(libHiGHSINC) $(libSCIPINC)
# external libraries for MILPSolver
MILPSLIB = $(SMS++LIB) $(libCPLEXLIB) $(libGUROBILIB) $(libHiGHSLIB) \
$(libSCIPLIB)
# append PIPS-IPM++ flags only when its source tree is available
ifneq ($(wildcard $(PIPSROOT)/Core/Interface/PIPSIPMppInterface.hpp),)
MILPSINC := $(MILPSINC) $(libPIPSINC)
MILPSLIB := $(MILPSLIB) $(libPIPSLIB)
endif
# append DAQP flags only when it is installed
ifneq ($(DAQP_PRESENT),)
MILPSINC := $(MILPSINC) $(libDAQPINC)
MILPSLIB := $(MILPSLIB) $(libDAQPLIB)
endif
# append qpOASES flags only when it is installed
ifneq ($(QPOASES_PRESENT),)
MILPSINC := $(MILPSINC) $(libqpOASESINC)
MILPSLIB := $(MILPSLIB) $(libqpOASESLIB)
endif
# append Clarabel flags only when it is installed
ifneq ($(CLARABEL_PRESENT),)
MILPSINC := $(MILPSINC) $(libClarabelINC)
MILPSLIB := $(MILPSLIB) $(libClarabelLIB)
endif
# append MOSEK flags only when it is installed
ifneq ($(MOSEK_PRESENT),)
MILPSINC := $(MILPSINC) $(libMOSEKINC)
MILPSLIB := $(MILPSLIB) $(libMOSEKLIB)
endif
# append the ProxSuite flags only when it is installed (it is header-only)
ifneq ($(ProxSuite_PRESENT),)
MILPSINC := $(MILPSINC) $(libProxSuiteINC)
endif
# append PIQP flags only when it is installed
ifneq ($(PIQP_PRESENT),)
MILPSINC := $(MILPSINC) $(libPIQPINC)
MILPSLIB := $(MILPSLIB) $(libPIQPLIB)
endif
# append OSQP flags only when it is installed
ifneq ($(OSQP_PRESENT),)
MILPSINC := $(MILPSINC) $(libOSQPINC)
MILPSLIB := $(MILPSLIB) $(libOSQPLIB)
endif
# append the qpmad flags only when it is installed (it is header-only)
ifneq ($(QPMAD_PRESENT),)
MILPSINC := $(MILPSINC) $(libqpmadINC)
endif
# append the quadprog flags only when it is installed (it has no header)
ifneq ($(QUADPROG_PRESENT),)
MILPSLIB := $(MILPSLIB) $(libquadprogLIB)
endif
############################ End of makefile #################################