source: branches/dev-5819/MakefileCasadi.am @ 13800

Last change on this file since 13800 was 13800, checked in by randersson, 7 weeks ago

#5819 Merged trunk into branch

File size: 14.0 KB
Line 
1#
2#    Copyright (C) 2009 Modelon AB
3#
4#    This program is free software: you can redistribute it and/or modify
5#    it under the terms of the Common Public License as published by
6#    IBM, version 1.0 of the License.
7#
8#    This program is distributed in the hope that it will be useful,
9#    but WITHOUT ANY WARRANTY. See the Common Public License for more details.
10#
11#    You should have received a copy of the Common Public License
12#    along with this program.  If not, see
13#     <http://www.ibm.com/developerworks/library/os-cpl.html/>.
14
15## Install for CasADiInterface, Variables and targets.
16## MC_interface installs the system with Python.
17## If C++ compilation/tests are wanted there is the target MC_interface_cplusplus
18
19MC_INTERFACE=$(abs_top_srcdir)/ModelicaCasADiInterface
20
21CASADI_HOME=$(abs_top_srcdir)/ThirdParty/CasADi/CasADi
22MC_SRC=$(JAVA_CASADI_BASE_DIR)/ModelicaCompilerCasADi
23OC_SRC=$(JAVA_CASADI_BASE_DIR)/OptimicaCompilerCasADi
24MC_SRC_SWIG=$(abs_top_srcdir)/Compiler/ModelicaCompilerCasADi/src/swig
25
26MC_CASADI_BUILD=$(abs_builddir)/ModelicaCompilerCasADi
27OC_CASADI_BUILD=$(abs_builddir)/OptimicaCompilerCasADi
28
29# The modelica casadi interface is built into a build folder
30MC_BUILD=$(abs_builddir)/ModelicaCasADiInterfaceBuild
31MC_BUILD64=$(abs_builddir)/ModelicaCasADiInterfaceBuild64
32# Jars from the modified modelica and optimica compilers are put into the JModelica folder
33MC_COMPILERS_DIR=$(MC_BUILD)/JModelica.org
34MC_LIB=$(DESTDIR)$(prefix)/lib/casadi_interface
35MC_LIB64=$(DESTDIR)$(prefix)/lib/casadi_interface64
36
37CASADI_BUILD_DIR=$(abs_builddir)/casadi_build
38CASADI_BUILD_DIR64=$(abs_builddir)/casadi_build64
39SWIGCHECK_BUILD_DIR=$(abs_builddir)/swig_check
40SWIGCHECK_BUILD_DIR64=$(abs_builddir)/swig_check64
41CASADI_PYTHON_INST_DIR=$(abs_builddir)/casadi_install
42CASADI_INST_DIR=$(prefix)/ThirdParty/CasADi
43CASADI_PLUGIN_INST_DIR=$(CASADI_INST_DIR)/lib
44CASADI_PYTHON_INST_DIR64=$(abs_builddir)/casadi_install64
45CASADI_INST_DIR64=$(prefix)/ThirdParty/CasADi64
46CASADI_PLUGIN_INST_DIR64=$(CASADI_INST_DIR64)/lib
47CMAKE_CASADI_CXX_FLAG=-m32
48CMAKE_CASADI_COMPILER_ARGS=-m32 -mincoming-stack-boundary=2
49CMAKE_CASADI_CXX_FLAG64=-m64
50CMAKE_CASADI_COMPILER_ARGS64=-m64 -fpermissive
51
52if BUILD_WITH_PYTHON32
53BUILD_WITH_PYTHON32_ARG=--force-32bit="true" --extra-c-flags="-mincoming-stack-boundary=2"
54DEP_SUFFIX=
55TMP_CASADI_BUILD_DIR=$(CASADI_BUILD_DIR)
56TMP_SWIGCHECK_BUILD_DIR=$(SWIGCHECK_BUILD_DIR)
57TMP_CMAKE_CASADI_CXX_FLAG=$(CMAKE_CASADI_CXX_FLAG)
58TMP_CMAKE_CASADI_ARGS=$(CMAKE_CASADI_ARGS)
59TMP_CMAKE_CASADI_COMPILER_ARGS=$(CMAKE_CASADI_COMPILER_ARGS)
60
61TMP_CASADI_INST_DIR=$(CASADI_INST_DIR)
62TMP_CASADI_PLUGIN_INST_DIR=$(CASADI_PLUGIN_INST_DIR)
63TMP_CASADI_PYTHON_INST_DIR=$(CASADI_PYTHON_INST_DIR)
64TMP_MC_LIB=$(MC_LIB)
65TMP_MC_BUILD=$(MC_BUILD)
66
67else
68BUILD_WITH_PYTHON32_ARG=
69DEP_SUFFIX=64
70TMP_CASADI_BUILD_DIR=$(CASADI_BUILD_DIR64)
71TMP_SWIGCHECK_BUILD_DIR=$(SWIGCHECK_BUILD_DIR64)
72TMP_CMAKE_CASADI_CXX_FLAG=$(CMAKE_CASADI_CXX_FLAG64)
73TMP_CMAKE_CASADI_COMPILER_ARGS=$(CMAKE_CASADI_COMPILER_ARGS64)
74
75# note we set directories to those without 64bit suffix
76TMP_CASADI_INST_DIR=$(CASADI_INST_DIR)
77TMP_CASADI_PLUGIN_INST_DIR=$(CASADI_PLUGIN_INST_DIR)
78TMP_CASADI_PYTHON_INST_DIR=$(CASADI_PYTHON_INST_DIR)
79TMP_MC_LIB=$(MC_LIB64)
80TMP_MC_BUILD=$(MC_BUILD64)
81TMP_CMAKE_CASADI_ARGS=$(CMAKE_CASADI_ARGS64)
82endif
83
84
85.PHONY: modelicacasadi_wrapper ifcasadi install_modelicacasadi_transfer install_modelicacasadi_wrapper
86
87casadi:
88if COMPILE_WITH_IPOPT
89        cd $(abs_builddir)/ThirdParty/CasADi; \
90        make -f Makefile  "SWIGCHECK_BUILD_DIR=$(TMP_SWIGCHECK_BUILD_DIR)" "CASADI_BUILD_DIR=$(TMP_CASADI_BUILD_DIR)" "IPOPT_HOME=$(IPOPT_HOME)" "CASADI_PYTHON_INST_DIR=${TMP_CASADI_PYTHON_INST_DIR}" "CASADI_INST_DIR=${TMP_CASADI_INST_DIR}" "CASADI_PLUGIN_INST_DIR=${TMP_CASADI_PLUGIN_INST_DIR}" "CMAKE_CASADI_ARGS=${TMP_CMAKE_CASADI_ARGS}" "CMAKE_CASADI_COMPILER_ARGS=${TMP_CMAKE_CASADI_COMPILER_ARGS}" "CMAKE_CASADI_CXX_FLAG=${TMP_CMAKE_CASADI_CXX_FLAG}" "CMAKE_PYTHON_LIB=${CMAKE_PYTHON_LIB}"
91endif
92if COMPILE_WITH_IPOPT64
93        export PATH=$(PYTHON64_HOME):$(PYTHON64_HOME)/Scripts:$(PYTHON64_HOME)/Lib:"${PATH}"; \
94        export PYTHONHOME=$(PYTHON64_HOME); \
95        cd $(abs_builddir)/ThirdParty/CasADi; \
96        make -f Makefile  "SWIGCHECK_BUILD_DIR=$(SWIGCHECK_BUILD_DIR64)" "CASADI_BUILD_DIR=$(CASADI_BUILD_DIR64)" "IPOPT_HOME=$(IPOPT64_HOME)" "CASADI_PYTHON_INST_DIR=${CASADI_PYTHON_INST_DIR64}" "CASADI_INST_DIR=${CASADI_INST_DIR64}" "CASADI_PLUGIN_INST_DIR=${CASADI_PLUGIN_INST_DIR64}" "CMAKE_CASADI_ARGS=${CMAKE_CASADI_ARGS64}" "CMAKE_CASADI_COMPILER_ARGS=${CMAKE_CASADI_COMPILER_ARGS64}" "CMAKE_CASADI_CXX_FLAG=${CMAKE_CASADI_CXX_FLAG64}" "CMAKE_PYTHON_LIB=${CMAKE_PYTHON64_LIB}" "CMAKE_PYTHON_INCLUDE=${CMAKE_PYTHON64_INCLUDE}"
97        export PYTHONHOME=$(ORIG_PYTHON_HOME); \
98        export PATH="$(ORIG_PATH)";
99endif
100
101install_casadi: casadi
102if COMPILE_WITH_IPOPT
103        cd $(abs_builddir)/ThirdParty/CasADi; \
104        make -f Makefile install "SWIGCHECK_BUILD_DIR=$(TMP_SWIGCHECK_BUILD_DIR)" "CASADI_BUILD_DIR=$(TMP_CASADI_BUILD_DIR)" "IPOPT_HOME=$(IPOPT_HOME)"
105        mkdir -p $(DESTDIR)$(prefix)/Python/
106        cp -r $(TMP_CASADI_PYTHON_INST_DIR)/casadi $(DESTDIR)$(prefix)/Python/
107        ## temp fix
108        cp $(TMP_CASADI_BUILD_DIR)/swig/casadi_core.py $(DESTDIR)$(prefix)/Python/casadi
109endif
110if COMPILE_WITH_IPOPT64 
111        export PATH=$(PYTHON64_HOME):$(PYTHON64_HOME)/Scripts:$(PYTHON64_HOME)/Lib:"${PATH}"; \
112        export PYTHONHOME=$(PYTHON64_HOME); 
113        cd $(abs_builddir)/ThirdParty/CasADi; \
114        make -f Makefile install "SWIGCHECK_BUILD_DIR=$(SWIGCHECK_BUILD_DIR64)" "CASADI_BUILD_DIR=$(CASADI_BUILD_DIR64)" "IPOPT_HOME=$(IPOPT64_HOME)"
115        mkdir -p $(DESTDIR)$(prefix)/Python/
116        cp -r $(CASADI_PYTHON_INST_DIR64)/casadi $(DESTDIR)$(prefix)/Python_64/
117        ## temp fix
118        cp $(CASADI_BUILD_DIR64)/swig/casadi_core.py $(DESTDIR)$(prefix)/Python_64/casadi
119        export PYTHONHOME=$(ORIG_PYTHON_HOME); \
120        export PATH="$(ORIG_PATH)";
121endif
122
123casadi_interface: install_casadi_interface
124build_casadi_interface: casadi modelicacasadi_wrapper
125install_casadi_interface: install_casadi $(TMP_MC_LIB) $(DESTDIR)$(prefix)/Python/modelicacasadi_transfer/__init__.py $(DESTDIR)$(prefix)/Python/modelicacasadi_wrapper/__init__.py $(DESTDIR)$(prefix)/Python/modelicacasadi_transfer/modelica_casadi_transfer_wrapper.py
126        if [ "$(INSTALL_EXTRA_CASADI)" ]; then exec "$(INSTALL_EXTRA_CASADI)" "$(abs_top_srcdir)" "$(DESTDIR)$(prefix)"; fi
127
128ifcasadi: casadi
129if COMPILE_WITH_IPOPT
130        mkdir -p $(TMP_MC_BUILD)/ifcasadi; \
131        cd $(TMP_MC_BUILD)/ifcasadi; \
132        case $(build) in \
133        *-cygwin*|*-mingw*) \
134        cmake $(MC_SRC_SWIG) -G "MSYS Makefiles" -DCMAKE_CXX_COMPILER_ARG1="$(TMP_CMAKE_CASADI_CXX_FLAG)" -DCMAKE_CXX_FLAGS="$(TMP_CMAKE_CASADI_CXX_FLAG)" \
135            -DIFCASADI_OUTDIR="$(MC_CASADI_BUILD)" -DCASADI_HOME="$(CASADI_HOME)" -DCASADI_BUILD_DIR="$(TMP_CASADI_BUILD_DIR)";; \
136        *) \
137        cmake $(MC_SRC_SWIG) \
138            -DIFCASADI_OUTDIR="$(MC_CASADI_BUILD)" -DCASADI_HOME="$(CASADI_HOME)" -DCASADI_BUILD_DIR="$(TMP_CASADI_BUILD_DIR)";; \
139        esac
140        cd $(TMP_MC_BUILD)/ifcasadi;  make
141endif
142if COMPILE_WITH_IPOPT64
143        export PATH=$(PYTHON64_HOME):$(PYTHON64_HOME)/Scripts:$(PYTHON64_HOME)/Lib:"${PATH}";
144        export PYTHONHOME=$(PYTHON64_HOME);
145        mkdir -p $(MC_BUILD64)/ifcasadi; \
146        cd $(MC_BUILD64)/ifcasadi; \
147        cmake $(MC_SRC_SWIG) -G "MSYS Makefiles" -DCMAKE_CXX_COMPILER_ARG1="-m64" -DCMAKE_CXX_FLAGS="-m64" \
148            -DIFCASADI_OUTDIR="$(MC_CASADI_BUILD)" -DCASADI_HOME="$(CASADI_HOME)" -DCASADI_BUILD_DIR="$(CASADI_BUILD_DIR64)"; \
149        cd $(MC_BUILD64)/ifcasadi;  make
150        export PYTHONHOME=$(ORIG_PYTHON_HOME); \
151        export PATH="$(ORIG_PATH)";
152endif
153
154$(TMP_MC_LIB): $(MC_CASADI_BUILD)/bin/ModelicaCompiler.jar $(OC_CASADI_BUILD)/bin/OptimicaCompiler.jar $(MC_CASADI_BUILD)/bin/util.jar ifcasadi
155if COMPILE_WITH_IPOPT
156        rm -rf $(TMP_MC_LIB)
157        mkdir -p $(TMP_MC_LIB)
158        cp $(MC_CASADI_BUILD)/bin/ModelicaCompiler.jar $(TMP_MC_LIB)
159        cp $(OC_CASADI_BUILD)/bin/OptimicaCompiler.jar $(TMP_MC_LIB)
160        cp $(MC_CASADI_BUILD)/bin/util.jar $(TMP_MC_LIB)
161        case $(build) in \
162        *-cygwin*) \
163        cp $(TMP_MC_BUILD)/ifcasadi/ifcasadi.dll $(TMP_MC_LIB) ;; \
164        *-mingw*) \
165        cp $(TMP_MC_BUILD)/ifcasadi/ifcasadi.dll $(TMP_MC_LIB) ;; \
166        *) \
167        cp $(TMP_MC_BUILD)/ifcasadi/libifcasadi.so $(TMP_MC_LIB) ;; \
168        esac
169endif
170if COMPILE_WITH_IPOPT64
171        rm -rf $(MC_LIB64)
172        mkdir -p $(MC_LIB64)
173        cp $(MC_CASADI_BUILD)/bin/ModelicaCompiler.jar $(MC_LIB64)
174        cp $(OC_CASADI_BUILD)/bin/OptimicaCompiler.jar $(MC_LIB64)
175        cp $(MC_CASADI_BUILD)/bin/util.jar $(MC_LIB64)
176        cp $(MC_BUILD64)/ifcasadi/ifcasadi.dll $(MC_LIB64)
177endif
178
179mc_modelica: ifcasadi
180        cd $(MC_CASADI_BUILD); $(ANT_OPTS) $(ANT) -f "$(JAVA_MC_CASADI_ANT_FILE)" "-Dcompiler=$(COMPILER_DIR)" "-Dtarget=$(MC_CASADI_BUILD)"
181
182mc_optimica: ifcasadi
183        mkdir -p $(OC_CASADI_BUILD)/src/generated/optimica/java
184        cp -pr $(MC_CASADI_BUILD)/src/generated/modelica/java/ifcasadi $(OC_CASADI_BUILD)/src/generated/optimica/java
185        cd $(OC_CASADI_BUILD); $(ANT_OPTS) $(ANT) -f "$(JAVA_OC_CASADI_ANT_FILE)" "-Dcompiler=$(COMPILER_DIR)" "-Dtarget=$(OC_CASADI_BUILD)"
186
187$(MC_CASADI_BUILD)/bin/ModelicaCompiler.jar: mc_modelica
188$(MC_CASADI_BUILD)/bin/util.jar:             mc_modelica
189$(MC_CASADI_BUILD)/bin/separateProcess.jar:  mc_modelica
190
191$(OC_CASADI_BUILD)/bin/OptimicaCompiler.jar: mc_optimica
192$(OC_CASADI_BUILD)/bin/util.jar:             mc_optimica
193$(OC_CASADI_BUILD)/bin/separateProcess.jar:  mc_optimica
194
195$(TMP_MC_BUILD)/modelicacasadi_wrapper/swig/modelicacasadi_wrapper.py: modelicacasadi_wrapper
196
197
198modelicacasadi_wrapper: $(MC_CASADI_BUILD)/bin/ModelicaCompiler.jar $(OC_CASADI_BUILD)/bin/OptimicaCompiler.jar $(MC_CASADI_BUILD)/bin/util.jar ifcasadi # $(TMP_MC_LIB)
199if COMPILE_WITH_IPOPT
200        mkdir -p $(TMP_MC_BUILD)/modelicacasadi_wrapper; \
201        cd $(TMP_MC_BUILD)/modelicacasadi_wrapper; \
202        case $(build) in \
203        *-cygwin*|*-mingw*) \
204        cmake $(MC_INTERFACE) -G "MSYS Makefiles" -DCMAKE_CXX_COMPILER_ARG1="$(TMP_CMAKE_CASADI_CXX_FLAG)" -DCMAKE_CXX_FLAGS="$(TMP_CMAKE_CASADI_CXX_FLAG)" \
205            -DMC_BUILD="$(TMP_MC_BUILD)" -DIPOPT_HOME="$(IPOPT_HOME)" -DCASADI_BUILD_DIR="$(TMP_CASADI_BUILD_DIR)" \
206            -DIFCASADI_JAR_BASE="$(JAVA_CASADI_BUILD_DIR)" -DCASADI_HOME="$(CASADI_HOME)" \
207            "$(CMAKE_PYTHON_LIB)" "$(CMAKE_PYTHON_INCLUDE)" ;; \
208        *) \
209        cmake $(MC_INTERFACE) \
210            -DMC_BUILD="$(TMP_MC_BUILD)" -DIPOPT_HOME="$(IPOPT_HOME)" -DCASADI_BUILD_DIR="$(TMP_CASADI_BUILD_DIR)" \
211            -DIFCASADI_JAR_BASE="$(JAVA_CASADI_BUILD_DIR)" -DCASADI_HOME="$(CASADI_HOME)" \
212            "$(CMAKE_PYTHON_LIB)" "$(CMAKE_PYTHON_INCLUDE)" ;; \
213        esac
214        cd $(TMP_MC_BUILD)/modelicacasadi_wrapper;  make modelicacasadi_wrapper
215endif
216if COMPILE_WITH_IPOPT64
217        export PATH=$(PYTHON64_HOME):$(PYTHON64_HOME)/Scripts:$(PYTHON64_HOME)/Lib:"${PATH}"; \
218        export PYTHONHOME=$(PYTHON64_HOME); \
219        mkdir -p $(MC_BUILD64)/modelicacasadi_wrapper; \
220        cd $(MC_BUILD64)/modelicacasadi_wrapper; \
221        cmake $(MC_INTERFACE) -G "MSYS Makefiles" -DCMAKE_CXX_COMPILER_ARG1="-m64" -DCMAKE_CXX_FLAGS="-m64" \
222            -DMC_BUILD="$(MC_BUILD64)" -DIPOPT_HOME="$(IPOPT64_HOME)" -DCASADI_BUILD_DIR="$(CASADI_BUILD_DIR64)" \
223            -DIFCASADI_JAR_BASE="$(JAVA_CASADI_BUILD_DIR)" -DCASADI_HOME="$(CASADI_HOME)" \
224            "$(CMAKE_PYTHON64_LIB)" "$(CMAKE_PYTHON64_INCLUDE)"; \
225        cd $(MC_BUILD64)/modelicacasadi_wrapper;  make modelicacasadi_wrapper
226        export PYTHONHOME=$(ORIG_PYTHON_HOME);
227        export PATH="$(ORIG_PATH)";
228endif
229
230 $(DESTDIR)$(prefix)/Python/modelicacasadi_transfer/__init__.py: install_modelicacasadi_transfer
231 $(DESTDIR)$(prefix)/Python/modelicacasadi_transfer/modelica_casadi_transfer_wrapper.py: install_modelicacasadi_transfer
232 
233 $(DESTDIR)$(prefix)/Python/modelicacasadi_wrapper/__init__.py: install_modelicacasadi_wrapper
234 
235 install_modelicacasadi_wrapper: $(TMP_MC_BUILD)/modelicacasadi_wrapper/swig/modelicacasadi_wrapper.py
236if COMPILE_WITH_IPOPT
237        mkdir -p $(DESTDIR)$(prefix)/Python/modelicacasadi_wrapper
238        cp $(TMP_MC_BUILD)/modelicacasadi_wrapper/swig/*modelicacasadi_wrapper* $(DESTDIR)$(prefix)/Python/modelicacasadi_wrapper
239        rm -f $(DESTDIR)$(prefix)/Python/modelicacasadi_wrapper/__init__.py
240        touch $(DESTDIR)$(prefix)/Python/modelicacasadi_wrapper/__init__.py
241        echo "from modelicacasadi_wrapper import *" >> $(DESTDIR)$(prefix)/Python/modelicacasadi_wrapper/__init__.py
242endif
243if COMPILE_WITH_IPOPT64
244        export PATH=$(PYTHON64_HOME):$(PYTHON64_HOME)/Scripts:$(PYTHON64_HOME)/Lib:"${PATH}"; \
245        export PYTHONHOME=$(PYTHON64_HOME);
246        mkdir -p $(DESTDIR)$(prefix)/Python_64/modelicacasadi_wrapper
247        cp $(MC_BUILD64)/modelicacasadi_wrapper/swig/*modelicacasadi_wrapper* $(DESTDIR)$(prefix)/Python_64/modelicacasadi_wrapper
248        rm -f $(DESTDIR)$(prefix)/Python_64/modelicacasadi_wrapper/__init__.py
249        touch $(DESTDIR)$(prefix)/Python_64/modelicacasadi_wrapper/__init__.py
250        echo "from modelicacasadi_wrapper import *" >> $(DESTDIR)$(prefix)/Python_64/modelicacasadi_wrapper/__init__.py
251        export PYTHONHOME=$(ORIG_PYTHON_HOME)
252        export PATH="$(ORIG_PATH)"
253endif
254
255 install_modelicacasadi_transfer: $(MC_INTERFACE)/python/modelica_casadi_transfer_wrapper.py
256if COMPILE_WITH_IPOPT
257        mkdir -p $(DESTDIR)$(prefix)/Python/modelicacasadi_transfer
258        rm -f $(DESTDIR)$(prefix)/Python/modelicacasadi_transfer/__init__.py
259        touch $(DESTDIR)$(prefix)/Python/modelicacasadi_transfer/__init__.py
260        echo "from modelica_casadi_transfer_wrapper import *" >> $(DESTDIR)$(prefix)/Python/modelicacasadi_transfer/__init__.py
261        cp $(MC_INTERFACE)/python/modelica_casadi_transfer_wrapper.py $(DESTDIR)$(prefix)/Python/modelicacasadi_transfer
262endif
263if COMPILE_WITH_IPOPT64   
264        mkdir -p $(DESTDIR)$(prefix)/Python_64/modelicacasadi_transfer
265        rm -f $(DESTDIR)$(prefix)/Python_64/modelicacasadi_transfer/__init__.py
266        touch $(DESTDIR)$(prefix)/Python_64/modelicacasadi_transfer/__init__.py
267        echo "from modelica_casadi_transfer_wrapper import *" >> $(DESTDIR)$(prefix)/Python_64/modelicacasadi_transfer/__init__.py
268        cp $(MC_INTERFACE)/python/modelica_casadi_transfer_wrapper.py $(DESTDIR)$(prefix)/Python_64/modelicacasadi_transfer
269endif
270       
271clean-casadi-interface:
272        rm -rf $(TMP_MC_BUILD)
273        rm -rf $(MC_BUILD64)
274#       rm -rf $(DESTDIR)$(prefix)/Python/casadi
275#       rm -rf $(DESTDIR)$(prefix)/Python/modelicacasadi_transfer
276if HAVE_ANT
277        cd $(JAVA_CASADI_BUILD_DIR)/ModelicaCompilerCasADi; \
278        $(ANT_OPTS) $(ANT) clean ; rm -rf $(MC_CASADI_BUILD)/src/cpp-generated $(MC_CASADI_BUILD)/src/generated/modelica/java/ifcasadi
279        cd $(JAVA_CASADI_BUILD_DIR)/OptimicaCompilerCasADi; \
280        $(ANT_OPTS) $(ANT) clean ; rm -rf $(OC_CASADI_BUILD)/src/cpp-generated $(OC_CASADI_BUILD)/src/generated/optimica/java/ifcasadi
281endif
282       
Note: See TracBrowser for help on using the repository browser.