diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ae08c20..237d716 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,132 +1,188 @@ -name: Basic SeDuMi tests - -# Controls when the action will run. +name: CI on: - # Triggers the workflow on push or pull request events but only for the main branch push: - branches: [ master ] + branches: + - master + tags: + - '*' pull_request: - branches: [ master ] - - workflow_dispatch: - + branches: + - master jobs: - - matlab: - name: Matlab (latest) on Ubuntu (latest) - runs-on: ubuntu-latest - - steps: - - name: Check out repository - uses: actions/checkout@v3 - - - name: Install MATLAB - uses: matlab-actions/setup-matlab@v1 - - - name: Run basic SeDuMi tests - uses: matlab-actions/run-command@v1 - with: - command: cd examples; test_sedumi(1, 1); - - - macos-octave: - name: Octave (latest) on macOS (latest) - runs-on: macos-latest - + build-mex: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-20.04,windows-2019,macos-12,macos-14] steps: - - name: Check out repository - uses: actions/checkout@v3 - - - name: Install Octave by homebrew - run: brew install octave - - - name: Run basic SeDuMi tests - run: octave --eval "cd examples; test_sedumi(1, 1);" - - - windows-octave: - name: Octave (latest) on MS Windows (latest) - runs-on: windows-latest - + - name: Retrieve the source code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Install MATLAB + uses: matlab-actions/setup-matlab@v2 + with: + release: ${{ matrix.os == 'macos-14' && 'R2023b' || ( matrix.os == 'windows-2019' && 'R2021b' || 'R2021a' ) }} + - name: Build and test + uses: matlab-actions/run-command@v2 + with: + command: "install_sedumi -rebuild; cd examples; test_sedumi(1, 1)" + - name: Upload MATLAB MEX files + uses: actions/upload-artifact@v4 + with: + name: mex-${{ matrix.os }} + path: "*.mex*" + build-oct: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-20.04,windows-2019,macos-12,macos-14] steps: - - name: Check out repository - uses: actions/checkout@v3 - - - name: Install Octave by Chocolatey - run: choco install octave.portable - - - name: Run basic SeDuMi tests - run: octave-cli.exe --eval "cd examples; test_sedumi(1, 1);" - - - ubuntu-20_04-octave: - name: Octave 5.2.0 on Ubuntu 20.04 - runs-on: ubuntu-20.04 - + - name: Retrieve the source code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Install Octave + shell: bash + run: | + if [ "${{ matrix.os }}" = ubuntu-20.04 ]; then + sudo apt update + sudo apt install --no-install-recommends octave liboctave-dev libopenblas-dev + elif [ "${{ matrix.os }}" = windows-2019 ]; then + choco install octave.portable + else + brew install octave + fi + - name: Build and test (Unix) + if: matrix.os != 'windows-2019' + run: octave --eval "install_sedumi -rebuild; test_sedumi(1, 1)" + - name: Build and test (Windows) + if: matrix.os == 'windows-2019' + shell: cmd + run: | + set PATH=C:\ProgramData\chocolatey\bin;%PATH% + octave-cli.exe --no-gui --eval "install_sedumi -rebuild; test_sedumi(1, 1)" + if %errorlevel% neq 0 exit /b %errorlevel% + - name: Upload Octave MEX files + uses: actions/upload-artifact@v4 + with: + name: oct-${{ matrix.os }} + path: "*.mex" + package: + needs: [build-mex,build-oct] + runs-on: ubuntu-latest steps: - - name: Check out repository - uses: actions/checkout@v3 - - - name: Install Octave - run: | - sudo apt-get -y update - sudo apt-get -y install octave liboctave-dev libopenblas-dev - - - name: Run basic SeDuMi tests - run: octave --eval "cd examples; test_sedumi(1, 1);" - - - ubuntu-18_04-octave: - name: Octave 4.2.2 on Ubuntu 18.04 - runs-on: ubuntu-18.04 - + - name: Retrieve the source code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Retrieve artifacts + uses: actions/download-artifact@v4 + - name: Move artifacts into place + run: | + mkdir -p o_lin && mv oct-ubuntu-*/* o_lin/ + mkdir -p o_win && mv oct-windows-*/* o_win/ + mkdir -p o_maci && mv oct-macos-12/* o_maci/ + mkdir -p o_maca && mv oct-macos-14/* o_maca/ + mv mex-*/* . + rmdir mex-* oct-* + - name: Show files, build archives + run: | + cd .. + zip -r sedumi.zip sedumi -x 'sedumi/.git/*' -x 'sedumi/.github/*' + tar cfz sedumi.tgz --exclude "sedumi/.git" --exclude "sedumi/.github" sedumi + echo "--------" + tar tfz sedumi.tgz + echo "--------" + zipinfo sedumi.zip + echo "--------" + mv sedumi.tgz sedumi.zip sedumi + - name: Upload bundles + uses: actions/upload-artifact@v4 + with: + name: bundles + path: | + sedumi.zip + sedumi.tgz + matlab-tests: + needs: package + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest,macos-latest,windows-latest,macos-14] steps: - - name: Check out repository - uses: actions/checkout@v3 - - - name: Install Octave - run: | - sudo apt-get -y update - sudo apt-get -y install octave liboctave-dev libopenblas-dev - - - name: Run basic SeDuMi tests - run: octave --eval "cd examples; test_sedumi(1, 1);" - - - flatpak-octave: - name: Octave (latest) on Flatpak (latest) - runs-on: ubuntu-latest - + - name: Retrieve artifact + uses: actions/download-artifact@v4 + with: + name: bundles + - name: Unpack artifact + run: tar xfz sdpt3.tgz --strip-components=1 + - name: Install latest MATLAB + uses: matlab-actions/setup-matlab@v2 + - name: Run test + uses: matlab-actions/run-command@v2 + with: + command: "install_sedumi; cd examples; test_sedumi(1, 1)" + octave-tests: + needs: package + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest,windows-latest,macos-latest,macos-14] steps: - - name: Check out repository - uses: actions/checkout@v3 - - - name: Install Octave - run: | - sudo apt-get -y update - sudo apt-get -y install flatpak - flatpak remote-add --user --if-not-exists \ - flathub https://flathub.org/repo/flathub.flatpakrepo - flatpak install --user -y flathub org.octave.Octave - - - name: Run basic SeDuMi tests - run: | - flatpak run org.octave.Octave --eval "cd examples; test_sedumi(1, 1);" - - - snap-octave: - name: Octave (latest) on Snap (latest) + - name: Retrieve artifact + uses: actions/download-artifact@v4 + with: + name: bundles + - name: Unpack artifact + run: tar xfz sedumi.tgz --strip-components=1 + - name: Install Octave, Snap, Flatpak + shell: bash + run: | + if [ "${{ matrix.os }}" = ubuntu-latest ]; then + sudo apt update + sudo apt install --no-install-recommends octave snapd flatpak + elif [ "${{ matrix.os }}" = windows-latest ]; then + choco install octave.portable + else + brew install octave + fi + - name: Run test + if: matrix.os != 'windows-latest' + run: octave --eval "install_sedumi; cd examples; test_sedumi(1, 1)" + - name: Run test + if: matrix.os == 'windows-latest' + shell: cmd + run: | + set PATH=C:\ProgramData\chocolatey\bin;%PATH% + octave-cli.exe --no-gui --eval "install_sedumi; cd examples; test_sedumi(1, 1)" + - name: Flatpak + if: matrix.os == 'ubuntu-latest' + run: | + flatpak remote-add --user --if-not-exists \ + flathub https://flathub.org/repo/flathub.flatpakrepo + flatpak install --user -y flathub org.octave.Octave + flatpak run org.octave.Octave --eval "install_sedumi; cd examples; test_sedumi(1, 1)" + flatpak uninstall --user -y org.octave.Octave + - name: Snapd + if: matrix.os == 'ubuntu-latest' + run: | + sudo snap install octave + snap run octave --eval "install_sedumi; cd examples; test_sedumi(1, 1)" + sudo snap remove octave + publish: + needs: [matlab-tests,octave-tests] + if: startsWith(github.ref, 'refs/tags/') runs-on: ubuntu-latest - steps: - - name: Check out repository - uses: actions/checkout@v3 - - - name: Install Octave - run: | - sudo apt-get -y update - sudo apt-get -y install snapd - sudo snap install octave - - - name: Run basic SeDuMi tests - run: snap run octave --eval "cd examples; test_sedumi(1, 1);" + - name: Retrieve artifacts + uses: actions/download-artifact@v4 + with: + name: bundles + - uses: softprops/action-gh-release@v2 + with: + files: | + sedumi.tgz + sedumi.zip \ No newline at end of file diff --git a/adendotd.mexa64 b/adendotd.mexa64 deleted file mode 100755 index d0e777e..0000000 Binary files a/adendotd.mexa64 and /dev/null differ diff --git a/adendotd.mexglx b/adendotd.mexglx deleted file mode 100755 index 824965c..0000000 Binary files a/adendotd.mexglx and /dev/null differ diff --git a/adendotd.mexmaci64 b/adendotd.mexmaci64 deleted file mode 100755 index 90ab0b2..0000000 Binary files a/adendotd.mexmaci64 and /dev/null differ diff --git a/adendotd.mexw32 b/adendotd.mexw32 deleted file mode 100644 index 02a0b6a..0000000 Binary files a/adendotd.mexw32 and /dev/null differ diff --git a/adendotd.mexw64 b/adendotd.mexw64 deleted file mode 100644 index ba5244f..0000000 Binary files a/adendotd.mexw64 and /dev/null differ diff --git a/adenscale.mexa64 b/adenscale.mexa64 deleted file mode 100755 index f272de5..0000000 Binary files a/adenscale.mexa64 and /dev/null differ diff --git a/adenscale.mexglx b/adenscale.mexglx deleted file mode 100755 index 971f688..0000000 Binary files a/adenscale.mexglx and /dev/null differ diff --git a/adenscale.mexmaci64 b/adenscale.mexmaci64 deleted file mode 100755 index 7bc514a..0000000 Binary files a/adenscale.mexmaci64 and /dev/null differ diff --git a/adenscale.mexw32 b/adenscale.mexw32 deleted file mode 100644 index 07feb09..0000000 Binary files a/adenscale.mexw32 and /dev/null differ diff --git a/adenscale.mexw64 b/adenscale.mexw64 deleted file mode 100644 index 42b6278..0000000 Binary files a/adenscale.mexw64 and /dev/null differ diff --git a/blkchol.mexa64 b/blkchol.mexa64 deleted file mode 100755 index 42d0943..0000000 Binary files a/blkchol.mexa64 and /dev/null differ diff --git a/blkchol.mexglx b/blkchol.mexglx deleted file mode 100755 index 4fe4c1c..0000000 Binary files a/blkchol.mexglx and /dev/null differ diff --git a/blkchol.mexmaci64 b/blkchol.mexmaci64 deleted file mode 100755 index 7667074..0000000 Binary files a/blkchol.mexmaci64 and /dev/null differ diff --git a/blkchol.mexw32 b/blkchol.mexw32 deleted file mode 100644 index 64bdb60..0000000 Binary files a/blkchol.mexw32 and /dev/null differ diff --git a/blkchol.mexw64 b/blkchol.mexw64 deleted file mode 100644 index e899e29..0000000 Binary files a/blkchol.mexw64 and /dev/null differ diff --git a/bwblkslv.mexa64 b/bwblkslv.mexa64 deleted file mode 100755 index d82e75c..0000000 Binary files a/bwblkslv.mexa64 and /dev/null differ diff --git a/bwblkslv.mexglx b/bwblkslv.mexglx deleted file mode 100755 index 7cb57c1..0000000 Binary files a/bwblkslv.mexglx and /dev/null differ diff --git a/bwblkslv.mexmaci64 b/bwblkslv.mexmaci64 deleted file mode 100755 index 903be2f..0000000 Binary files a/bwblkslv.mexmaci64 and /dev/null differ diff --git a/bwblkslv.mexw32 b/bwblkslv.mexw32 deleted file mode 100644 index f90e095..0000000 Binary files a/bwblkslv.mexw32 and /dev/null differ diff --git a/bwblkslv.mexw64 b/bwblkslv.mexw64 deleted file mode 100644 index ec9e241..0000000 Binary files a/bwblkslv.mexw64 and /dev/null differ diff --git a/bwdpr1.mexa64 b/bwdpr1.mexa64 deleted file mode 100755 index 8c464d7..0000000 Binary files a/bwdpr1.mexa64 and /dev/null differ diff --git a/bwdpr1.mexglx b/bwdpr1.mexglx deleted file mode 100755 index 1b22839..0000000 Binary files a/bwdpr1.mexglx and /dev/null differ diff --git a/bwdpr1.mexmaci64 b/bwdpr1.mexmaci64 deleted file mode 100755 index 03a3773..0000000 Binary files a/bwdpr1.mexmaci64 and /dev/null differ diff --git a/bwdpr1.mexw32 b/bwdpr1.mexw32 deleted file mode 100644 index 7779904..0000000 Binary files a/bwdpr1.mexw32 and /dev/null differ diff --git a/bwdpr1.mexw64 b/bwdpr1.mexw64 deleted file mode 100644 index 5809c67..0000000 Binary files a/bwdpr1.mexw64 and /dev/null differ diff --git a/cholsplit.mexa64 b/cholsplit.mexa64 deleted file mode 100755 index 3a5a64d..0000000 Binary files a/cholsplit.mexa64 and /dev/null differ diff --git a/cholsplit.mexglx b/cholsplit.mexglx deleted file mode 100755 index 8163054..0000000 Binary files a/cholsplit.mexglx and /dev/null differ diff --git a/cholsplit.mexmaci64 b/cholsplit.mexmaci64 deleted file mode 100755 index 25aea6d..0000000 Binary files a/cholsplit.mexmaci64 and /dev/null differ diff --git a/cholsplit.mexw32 b/cholsplit.mexw32 deleted file mode 100644 index 1eddb04..0000000 Binary files a/cholsplit.mexw32 and /dev/null differ diff --git a/cholsplit.mexw64 b/cholsplit.mexw64 deleted file mode 100644 index 5eec1b0..0000000 Binary files a/cholsplit.mexw64 and /dev/null differ diff --git a/choltmpsiz.mexa64 b/choltmpsiz.mexa64 deleted file mode 100755 index c216905..0000000 Binary files a/choltmpsiz.mexa64 and /dev/null differ diff --git a/choltmpsiz.mexglx b/choltmpsiz.mexglx deleted file mode 100755 index 459d1bc..0000000 Binary files a/choltmpsiz.mexglx and /dev/null differ diff --git a/choltmpsiz.mexmaci64 b/choltmpsiz.mexmaci64 deleted file mode 100755 index 03419fb..0000000 Binary files a/choltmpsiz.mexmaci64 and /dev/null differ diff --git a/choltmpsiz.mexw32 b/choltmpsiz.mexw32 deleted file mode 100644 index 7abacc5..0000000 Binary files a/choltmpsiz.mexw32 and /dev/null differ diff --git a/choltmpsiz.mexw64 b/choltmpsiz.mexw64 deleted file mode 100644 index 9d7a16a..0000000 Binary files a/choltmpsiz.mexw64 and /dev/null differ diff --git a/ddot.mexa64 b/ddot.mexa64 deleted file mode 100755 index aee7be7..0000000 Binary files a/ddot.mexa64 and /dev/null differ diff --git a/ddot.mexglx b/ddot.mexglx deleted file mode 100755 index f6ff8df..0000000 Binary files a/ddot.mexglx and /dev/null differ diff --git a/ddot.mexmaci64 b/ddot.mexmaci64 deleted file mode 100755 index 370f3dc..0000000 Binary files a/ddot.mexmaci64 and /dev/null differ diff --git a/ddot.mexw32 b/ddot.mexw32 deleted file mode 100644 index fea5a06..0000000 Binary files a/ddot.mexw32 and /dev/null differ diff --git a/ddot.mexw64 b/ddot.mexw64 deleted file mode 100644 index ff5c312..0000000 Binary files a/ddot.mexw64 and /dev/null differ diff --git a/dpr1fact.mexa64 b/dpr1fact.mexa64 deleted file mode 100755 index 7aa5321..0000000 Binary files a/dpr1fact.mexa64 and /dev/null differ diff --git a/dpr1fact.mexglx b/dpr1fact.mexglx deleted file mode 100755 index 12db145..0000000 Binary files a/dpr1fact.mexglx and /dev/null differ diff --git a/dpr1fact.mexmaci64 b/dpr1fact.mexmaci64 deleted file mode 100755 index 5f40192..0000000 Binary files a/dpr1fact.mexmaci64 and /dev/null differ diff --git a/dpr1fact.mexw32 b/dpr1fact.mexw32 deleted file mode 100644 index 3fcc75e..0000000 Binary files a/dpr1fact.mexw32 and /dev/null differ diff --git a/dpr1fact.mexw64 b/dpr1fact.mexw64 deleted file mode 100644 index c927315..0000000 Binary files a/dpr1fact.mexw64 and /dev/null differ diff --git a/extractA.mexa64 b/extractA.mexa64 deleted file mode 100755 index 0624445..0000000 Binary files a/extractA.mexa64 and /dev/null differ diff --git a/extractA.mexglx b/extractA.mexglx deleted file mode 100755 index 440666c..0000000 Binary files a/extractA.mexglx and /dev/null differ diff --git a/extractA.mexmaci64 b/extractA.mexmaci64 deleted file mode 100755 index a6f9513..0000000 Binary files a/extractA.mexmaci64 and /dev/null differ diff --git a/extractA.mexw32 b/extractA.mexw32 deleted file mode 100644 index 63e8a19..0000000 Binary files a/extractA.mexw32 and /dev/null differ diff --git a/extractA.mexw64 b/extractA.mexw64 deleted file mode 100644 index a4f386c..0000000 Binary files a/extractA.mexw64 and /dev/null differ diff --git a/findblks.mexa64 b/findblks.mexa64 deleted file mode 100755 index 93354c7..0000000 Binary files a/findblks.mexa64 and /dev/null differ diff --git a/findblks.mexglx b/findblks.mexglx deleted file mode 100755 index a484077..0000000 Binary files a/findblks.mexglx and /dev/null differ diff --git a/findblks.mexmaci64 b/findblks.mexmaci64 deleted file mode 100755 index c9cb0f8..0000000 Binary files a/findblks.mexmaci64 and /dev/null differ diff --git a/findblks.mexw32 b/findblks.mexw32 deleted file mode 100644 index f4392a5..0000000 Binary files a/findblks.mexw32 and /dev/null differ diff --git a/findblks.mexw64 b/findblks.mexw64 deleted file mode 100644 index 73a4283..0000000 Binary files a/findblks.mexw64 and /dev/null differ diff --git a/finsymbden.mexa64 b/finsymbden.mexa64 deleted file mode 100755 index 4ee61fe..0000000 Binary files a/finsymbden.mexa64 and /dev/null differ diff --git a/finsymbden.mexglx b/finsymbden.mexglx deleted file mode 100755 index 384c5f6..0000000 Binary files a/finsymbden.mexglx and /dev/null differ diff --git a/finsymbden.mexmaci64 b/finsymbden.mexmaci64 deleted file mode 100755 index d7e2864..0000000 Binary files a/finsymbden.mexmaci64 and /dev/null differ diff --git a/finsymbden.mexw32 b/finsymbden.mexw32 deleted file mode 100644 index 57a6e1f..0000000 Binary files a/finsymbden.mexw32 and /dev/null differ diff --git a/finsymbden.mexw64 b/finsymbden.mexw64 deleted file mode 100644 index 75cb587..0000000 Binary files a/finsymbden.mexw64 and /dev/null differ diff --git a/fwblkslv.mexa64 b/fwblkslv.mexa64 deleted file mode 100755 index 085055c..0000000 Binary files a/fwblkslv.mexa64 and /dev/null differ diff --git a/fwblkslv.mexglx b/fwblkslv.mexglx deleted file mode 100755 index b71eecf..0000000 Binary files a/fwblkslv.mexglx and /dev/null differ diff --git a/fwblkslv.mexmaci64 b/fwblkslv.mexmaci64 deleted file mode 100755 index 31265fc..0000000 Binary files a/fwblkslv.mexmaci64 and /dev/null differ diff --git a/fwblkslv.mexw32 b/fwblkslv.mexw32 deleted file mode 100644 index b276346..0000000 Binary files a/fwblkslv.mexw32 and /dev/null differ diff --git a/fwblkslv.mexw64 b/fwblkslv.mexw64 deleted file mode 100644 index cdd4529..0000000 Binary files a/fwblkslv.mexw64 and /dev/null differ diff --git a/fwdpr1.mexa64 b/fwdpr1.mexa64 deleted file mode 100755 index 7f55371..0000000 Binary files a/fwdpr1.mexa64 and /dev/null differ diff --git a/fwdpr1.mexglx b/fwdpr1.mexglx deleted file mode 100755 index d62d357..0000000 Binary files a/fwdpr1.mexglx and /dev/null differ diff --git a/fwdpr1.mexmaci64 b/fwdpr1.mexmaci64 deleted file mode 100755 index 5bc1b0c..0000000 Binary files a/fwdpr1.mexmaci64 and /dev/null differ diff --git a/fwdpr1.mexw32 b/fwdpr1.mexw32 deleted file mode 100644 index 3b5afd6..0000000 Binary files a/fwdpr1.mexw32 and /dev/null differ diff --git a/fwdpr1.mexw64 b/fwdpr1.mexw64 deleted file mode 100644 index acae9c6..0000000 Binary files a/fwdpr1.mexw64 and /dev/null differ diff --git a/getada1.mexa64 b/getada1.mexa64 deleted file mode 100755 index bf58465..0000000 Binary files a/getada1.mexa64 and /dev/null differ diff --git a/getada1.mexglx b/getada1.mexglx deleted file mode 100755 index df0b9cf..0000000 Binary files a/getada1.mexglx and /dev/null differ diff --git a/getada1.mexmaci64 b/getada1.mexmaci64 deleted file mode 100755 index 9e65688..0000000 Binary files a/getada1.mexmaci64 and /dev/null differ diff --git a/getada1.mexw32 b/getada1.mexw32 deleted file mode 100644 index 6dcccb9..0000000 Binary files a/getada1.mexw32 and /dev/null differ diff --git a/getada1.mexw64 b/getada1.mexw64 deleted file mode 100644 index 5853412..0000000 Binary files a/getada1.mexw64 and /dev/null differ diff --git a/getada2.mexa64 b/getada2.mexa64 deleted file mode 100755 index e0b2b8f..0000000 Binary files a/getada2.mexa64 and /dev/null differ diff --git a/getada2.mexglx b/getada2.mexglx deleted file mode 100755 index 7504dbd..0000000 Binary files a/getada2.mexglx and /dev/null differ diff --git a/getada2.mexmaci64 b/getada2.mexmaci64 deleted file mode 100755 index 03d4c0b..0000000 Binary files a/getada2.mexmaci64 and /dev/null differ diff --git a/getada2.mexw32 b/getada2.mexw32 deleted file mode 100644 index 34b8eb4..0000000 Binary files a/getada2.mexw32 and /dev/null differ diff --git a/getada2.mexw64 b/getada2.mexw64 deleted file mode 100644 index c857867..0000000 Binary files a/getada2.mexw64 and /dev/null differ diff --git a/getada3.mexa64 b/getada3.mexa64 deleted file mode 100755 index 760e5fc..0000000 Binary files a/getada3.mexa64 and /dev/null differ diff --git a/getada3.mexglx b/getada3.mexglx deleted file mode 100755 index 5256048..0000000 Binary files a/getada3.mexglx and /dev/null differ diff --git a/getada3.mexmaci64 b/getada3.mexmaci64 deleted file mode 100755 index e1d646f..0000000 Binary files a/getada3.mexmaci64 and /dev/null differ diff --git a/getada3.mexw32 b/getada3.mexw32 deleted file mode 100644 index 98dfd90..0000000 Binary files a/getada3.mexw32 and /dev/null differ diff --git a/getada3.mexw64 b/getada3.mexw64 deleted file mode 100644 index 3078594..0000000 Binary files a/getada3.mexw64 and /dev/null differ diff --git a/givensrot.mexa64 b/givensrot.mexa64 deleted file mode 100755 index b4932f2..0000000 Binary files a/givensrot.mexa64 and /dev/null differ diff --git a/givensrot.mexglx b/givensrot.mexglx deleted file mode 100755 index a261148..0000000 Binary files a/givensrot.mexglx and /dev/null differ diff --git a/givensrot.mexmaci64 b/givensrot.mexmaci64 deleted file mode 100755 index 67aac42..0000000 Binary files a/givensrot.mexmaci64 and /dev/null differ diff --git a/givensrot.mexw32 b/givensrot.mexw32 deleted file mode 100644 index b666edc..0000000 Binary files a/givensrot.mexw32 and /dev/null differ diff --git a/givensrot.mexw64 b/givensrot.mexw64 deleted file mode 100644 index 9531367..0000000 Binary files a/givensrot.mexw64 and /dev/null differ diff --git a/incorder.mexa64 b/incorder.mexa64 deleted file mode 100755 index ebad6e0..0000000 Binary files a/incorder.mexa64 and /dev/null differ diff --git a/incorder.mexglx b/incorder.mexglx deleted file mode 100755 index ceb472d..0000000 Binary files a/incorder.mexglx and /dev/null differ diff --git a/incorder.mexmaci64 b/incorder.mexmaci64 deleted file mode 100755 index 6a944f1..0000000 Binary files a/incorder.mexmaci64 and /dev/null differ diff --git a/incorder.mexw32 b/incorder.mexw32 deleted file mode 100644 index 89e5ec4..0000000 Binary files a/incorder.mexw32 and /dev/null differ diff --git a/incorder.mexw64 b/incorder.mexw64 deleted file mode 100644 index 0477567..0000000 Binary files a/incorder.mexw64 and /dev/null differ diff --git a/install_sedumi.m b/install_sedumi.m index 5ce5b60..91dcbe6 100644 --- a/install_sedumi.m +++ b/install_sedumi.m @@ -111,17 +111,34 @@ function install_sedumi( varargin ) % Get first file of "targets64" and replace ".c" with mex-extension. % Keep order of "targets64". +mext = mexext; mex_binaries = cellfun (@strtok, targets64, 'UniformOutput', false); -mex_binaries = cellfun (@(x) strrep (x, '.c', ['.', mexext()]), ... +mex_binaries = cellfun (@(x) strrep (x, '.c', ['.', mext]), ... mex_binaries, 'UniformOutput', false); +fs = filesep(); sedumi_path = mfilename ('fullpath'); -sedumi_path = sedumi_path(1:max ([1, strfind(sedumi_path, filesep ())]) - 1); +sedumi_path = sedumi_path(1:max ([1, strfind(sedumi_path, fs)]) - 1); +% Note the use of 0.01 here. That's because version 7 had more than 10 +% minor releases, so 7.10-7.14 need to be ordered after 7.01-7.09. +VERSION = [1, 0.01] * sscanf (version (), '%d.%d'); +COMPUTER = computer (); ISOCTAVE = (exist ('OCTAVE_VERSION', 'builtin') == 5); +mdir = ''; if (ISOCTAVE) prog = 'Octave'; page_output_immediately (true, 'local'); + switch COMPUTER + case 'x86_64-pc-linux-gnu' + mdir = 'o_lin'; + case 'x86_64-apple-darwin21.6.0' + mdir = 'o_maci'; + case 'aarch64-apple-darwin23.4.0' + mdir = 'o_maca'; + case 'i686-w64-mingw32' + mdir = 'o_win'; + end else prog = 'Matlab'; end @@ -141,11 +158,19 @@ function install_sedumi( varargin ) % guarantee that rebuilding will work. if (~need_rebuild) fprintf ('Looking for existing binaries...'); - nfound = count_mex_binaries (); - if (nfound == 0) + nfound = [0, 0]; + for k = 1 : length(targets64) + targ = mex_binaries{k}; + if exist( [ sedumi_path, fs, targ ], 'file' ) + nfound(1) = nfound(1) + 1; + elseif ~isempty(mdir) && exist( [ sedumi_path, fs, mdir, fs, targ ], 'file' ) + nfound(2) = nfound(2) + 1; + end + end + if sum(nfound) == 0 fprintf ('none found; building...\n'); need_rebuild = true; - elseif (nfound < length(targets64)) + elseif sum(nfound) < length(targets64) fprintf ('incomplete set found.\n'); disp (line_sep); error (['%s\n', ... @@ -163,6 +188,7 @@ function install_sedumi( varargin ) end if (need_rebuild) + mdir = ''; disp ('Attempting to recompile the SeDuMi binaries:'); % Customization by providing a mex template. @@ -179,8 +205,10 @@ function install_sedumi( varargin ) if (ismac ()) % Assume Homebrew (https://brew.sh/) installation. % https://stackoverflow.com/questions/50634727/dyld-library-not-loaded-usr-local-opt-openblas-lib-libopenblasp-r0-2-20-dylib - flags{end+1} = '-I/usr/local/opt/openblas/include'; - libs{end+1} = '-L/usr/local/opt/openblas/lib -lopenblas'; + % this glob covers /opt/homebrew and /usr/local installations + homebrew = glob('/*/*/Cellar/openblas/*/include'); + flags{end+1} = ['-I', homebrew{1}]; + libs{end+1} = ['-L', strrep(homebrew{1}, '/include', '/lib'), ' -lopenblas']; elseif (ispc ()) libs{end+1} = '-lopenblas'; else @@ -189,10 +217,6 @@ function install_sedumi( varargin ) flags{end+1} = '-I/usr/include/openblas'; end else % Matlab - % Note the use of 0.01 here. That's because version 7 had more than 10 - % minor releases, so 7.10-7.14 need to be ordered after 7.01-7.09. - VERSION = [1, 0.01] * sscanf (version (), '%d.%d'); - COMPUTER = computer (); % The last Matlab release with a 32 bit version was R2015b. IS64BIT = strcmp (COMPUTER(end-1:end), '64'); flags{end+1} = '-O'; % optimize @@ -273,6 +297,15 @@ function install_sedumi( varargin ) else fprintf ('already there.\n'); end + if (ISOCTAVE && ~isempty(mdir)) + fprintf (' Octave MEX directory... '); + if (~is_on_search_path (fullfile(sedumi_path, mdir))) + addpath (fullfile(sedumi_path, mdir)); + fprintf ('added.\n'); + else + fprintf ('already there.\n'); + end + end fprintf (' Conversion directory... '); if (~is_on_search_path (fullfile (sedumi_path, 'conversion'))) addpath (fullfile (sedumi_path, 'conversion')); diff --git a/invcholfac.mexa64 b/invcholfac.mexa64 deleted file mode 100755 index fa4258f..0000000 Binary files a/invcholfac.mexa64 and /dev/null differ diff --git a/invcholfac.mexglx b/invcholfac.mexglx deleted file mode 100755 index 93fc95d..0000000 Binary files a/invcholfac.mexglx and /dev/null differ diff --git a/invcholfac.mexmaci64 b/invcholfac.mexmaci64 deleted file mode 100755 index 9cb0548..0000000 Binary files a/invcholfac.mexmaci64 and /dev/null differ diff --git a/invcholfac.mexw32 b/invcholfac.mexw32 deleted file mode 100644 index 99ed75b..0000000 Binary files a/invcholfac.mexw32 and /dev/null differ diff --git a/invcholfac.mexw64 b/invcholfac.mexw64 deleted file mode 100644 index ba31e21..0000000 Binary files a/invcholfac.mexw64 and /dev/null differ diff --git a/iswnbr.mexa64 b/iswnbr.mexa64 deleted file mode 100755 index c7090c0..0000000 Binary files a/iswnbr.mexa64 and /dev/null differ diff --git a/iswnbr.mexglx b/iswnbr.mexglx deleted file mode 100755 index 6e0ccff..0000000 Binary files a/iswnbr.mexglx and /dev/null differ diff --git a/iswnbr.mexmaci64 b/iswnbr.mexmaci64 deleted file mode 100755 index 62406b9..0000000 Binary files a/iswnbr.mexmaci64 and /dev/null differ diff --git a/iswnbr.mexw32 b/iswnbr.mexw32 deleted file mode 100644 index f6af224..0000000 Binary files a/iswnbr.mexw32 and /dev/null differ diff --git a/iswnbr.mexw64 b/iswnbr.mexw64 deleted file mode 100644 index ce27d3a..0000000 Binary files a/iswnbr.mexw64 and /dev/null differ diff --git a/ordmmdmex.mexa64 b/ordmmdmex.mexa64 deleted file mode 100755 index 107a7f4..0000000 Binary files a/ordmmdmex.mexa64 and /dev/null differ diff --git a/ordmmdmex.mexglx b/ordmmdmex.mexglx deleted file mode 100755 index 4231d1b..0000000 Binary files a/ordmmdmex.mexglx and /dev/null differ diff --git a/ordmmdmex.mexmaci64 b/ordmmdmex.mexmaci64 deleted file mode 100755 index 80a26c1..0000000 Binary files a/ordmmdmex.mexmaci64 and /dev/null differ diff --git a/ordmmdmex.mexw32 b/ordmmdmex.mexw32 deleted file mode 100644 index 5cea437..0000000 Binary files a/ordmmdmex.mexw32 and /dev/null differ diff --git a/ordmmdmex.mexw64 b/ordmmdmex.mexw64 deleted file mode 100644 index 2089b0c..0000000 Binary files a/ordmmdmex.mexw64 and /dev/null differ diff --git a/partitA.mexa64 b/partitA.mexa64 deleted file mode 100755 index 901816e..0000000 Binary files a/partitA.mexa64 and /dev/null differ diff --git a/partitA.mexglx b/partitA.mexglx deleted file mode 100755 index 1552053..0000000 Binary files a/partitA.mexglx and /dev/null differ diff --git a/partitA.mexmaci64 b/partitA.mexmaci64 deleted file mode 100755 index 9ee2f2e..0000000 Binary files a/partitA.mexmaci64 and /dev/null differ diff --git a/partitA.mexw32 b/partitA.mexw32 deleted file mode 100644 index 25ab584..0000000 Binary files a/partitA.mexw32 and /dev/null differ diff --git a/partitA.mexw64 b/partitA.mexw64 deleted file mode 100644 index 307b8d0..0000000 Binary files a/partitA.mexw64 and /dev/null differ diff --git a/psdframeit.mexa64 b/psdframeit.mexa64 deleted file mode 100755 index 9b30034..0000000 Binary files a/psdframeit.mexa64 and /dev/null differ diff --git a/psdframeit.mexglx b/psdframeit.mexglx deleted file mode 100755 index fffbbad..0000000 Binary files a/psdframeit.mexglx and /dev/null differ diff --git a/psdframeit.mexmaci64 b/psdframeit.mexmaci64 deleted file mode 100755 index fcb1c86..0000000 Binary files a/psdframeit.mexmaci64 and /dev/null differ diff --git a/psdframeit.mexw32 b/psdframeit.mexw32 deleted file mode 100644 index c6f33ab..0000000 Binary files a/psdframeit.mexw32 and /dev/null differ diff --git a/psdframeit.mexw64 b/psdframeit.mexw64 deleted file mode 100644 index d53c2e2..0000000 Binary files a/psdframeit.mexw64 and /dev/null differ diff --git a/psdinvjmul.mexa64 b/psdinvjmul.mexa64 deleted file mode 100755 index 58780df..0000000 Binary files a/psdinvjmul.mexa64 and /dev/null differ diff --git a/psdinvjmul.mexglx b/psdinvjmul.mexglx deleted file mode 100755 index d9f15a2..0000000 Binary files a/psdinvjmul.mexglx and /dev/null differ diff --git a/psdinvjmul.mexmaci64 b/psdinvjmul.mexmaci64 deleted file mode 100755 index 5e96f06..0000000 Binary files a/psdinvjmul.mexmaci64 and /dev/null differ diff --git a/psdinvjmul.mexw32 b/psdinvjmul.mexw32 deleted file mode 100644 index 57c682e..0000000 Binary files a/psdinvjmul.mexw32 and /dev/null differ diff --git a/psdinvjmul.mexw64 b/psdinvjmul.mexw64 deleted file mode 100644 index 9d3a22b..0000000 Binary files a/psdinvjmul.mexw64 and /dev/null differ diff --git a/qblkmul.mexa64 b/qblkmul.mexa64 deleted file mode 100755 index b80ccb2..0000000 Binary files a/qblkmul.mexa64 and /dev/null differ diff --git a/qblkmul.mexglx b/qblkmul.mexglx deleted file mode 100755 index 51cabdb..0000000 Binary files a/qblkmul.mexglx and /dev/null differ diff --git a/qblkmul.mexmaci64 b/qblkmul.mexmaci64 deleted file mode 100755 index 9122c26..0000000 Binary files a/qblkmul.mexmaci64 and /dev/null differ diff --git a/qblkmul.mexw32 b/qblkmul.mexw32 deleted file mode 100644 index 11248a7..0000000 Binary files a/qblkmul.mexw32 and /dev/null differ diff --git a/qblkmul.mexw64 b/qblkmul.mexw64 deleted file mode 100644 index c9f3e25..0000000 Binary files a/qblkmul.mexw64 and /dev/null differ diff --git a/qrK.mexa64 b/qrK.mexa64 deleted file mode 100755 index b7cda55..0000000 Binary files a/qrK.mexa64 and /dev/null differ diff --git a/qrK.mexglx b/qrK.mexglx deleted file mode 100755 index 1cc5985..0000000 Binary files a/qrK.mexglx and /dev/null differ diff --git a/qrK.mexmaci64 b/qrK.mexmaci64 deleted file mode 100755 index 3538426..0000000 Binary files a/qrK.mexmaci64 and /dev/null differ diff --git a/qrK.mexw32 b/qrK.mexw32 deleted file mode 100644 index c901b86..0000000 Binary files a/qrK.mexw32 and /dev/null differ diff --git a/qrK.mexw64 b/qrK.mexw64 deleted file mode 100644 index 39e6901..0000000 Binary files a/qrK.mexw64 and /dev/null differ diff --git a/quadadd.mexa64 b/quadadd.mexa64 deleted file mode 100755 index 8443085..0000000 Binary files a/quadadd.mexa64 and /dev/null differ diff --git a/quadadd.mexglx b/quadadd.mexglx deleted file mode 100755 index ac15e1c..0000000 Binary files a/quadadd.mexglx and /dev/null differ diff --git a/quadadd.mexmaci64 b/quadadd.mexmaci64 deleted file mode 100755 index 1b4780f..0000000 Binary files a/quadadd.mexmaci64 and /dev/null differ diff --git a/quadadd.mexw32 b/quadadd.mexw32 deleted file mode 100644 index 44679bc..0000000 Binary files a/quadadd.mexw32 and /dev/null differ diff --git a/quadadd.mexw64 b/quadadd.mexw64 deleted file mode 100644 index 672d028..0000000 Binary files a/quadadd.mexw64 and /dev/null differ diff --git a/sortnnz.mexa64 b/sortnnz.mexa64 deleted file mode 100755 index 4ec7b0b..0000000 Binary files a/sortnnz.mexa64 and /dev/null differ diff --git a/sortnnz.mexglx b/sortnnz.mexglx deleted file mode 100755 index 430568f..0000000 Binary files a/sortnnz.mexglx and /dev/null differ diff --git a/sortnnz.mexmaci64 b/sortnnz.mexmaci64 deleted file mode 100755 index 1fcf10d..0000000 Binary files a/sortnnz.mexmaci64 and /dev/null differ diff --git a/sortnnz.mexw32 b/sortnnz.mexw32 deleted file mode 100644 index b2704e1..0000000 Binary files a/sortnnz.mexw32 and /dev/null differ diff --git a/sortnnz.mexw64 b/sortnnz.mexw64 deleted file mode 100644 index dbd8a9b..0000000 Binary files a/sortnnz.mexw64 and /dev/null differ diff --git a/sqrtinv.mexa64 b/sqrtinv.mexa64 deleted file mode 100755 index ab49ee0..0000000 Binary files a/sqrtinv.mexa64 and /dev/null differ diff --git a/sqrtinv.mexglx b/sqrtinv.mexglx deleted file mode 100755 index ad916fd..0000000 Binary files a/sqrtinv.mexglx and /dev/null differ diff --git a/sqrtinv.mexmaci64 b/sqrtinv.mexmaci64 deleted file mode 100755 index cdeb0d8..0000000 Binary files a/sqrtinv.mexmaci64 and /dev/null differ diff --git a/sqrtinv.mexw32 b/sqrtinv.mexw32 deleted file mode 100644 index 516e83b..0000000 Binary files a/sqrtinv.mexw32 and /dev/null differ diff --git a/sqrtinv.mexw64 b/sqrtinv.mexw64 deleted file mode 100644 index d4e08ee..0000000 Binary files a/sqrtinv.mexw64 and /dev/null differ diff --git a/symbfwblk.mexa64 b/symbfwblk.mexa64 deleted file mode 100755 index d250462..0000000 Binary files a/symbfwblk.mexa64 and /dev/null differ diff --git a/symbfwblk.mexglx b/symbfwblk.mexglx deleted file mode 100755 index 1b65d82..0000000 Binary files a/symbfwblk.mexglx and /dev/null differ diff --git a/symbfwblk.mexmaci64 b/symbfwblk.mexmaci64 deleted file mode 100755 index e69317b..0000000 Binary files a/symbfwblk.mexmaci64 and /dev/null differ diff --git a/symbfwblk.mexw32 b/symbfwblk.mexw32 deleted file mode 100644 index da24975..0000000 Binary files a/symbfwblk.mexw32 and /dev/null differ diff --git a/symbfwblk.mexw64 b/symbfwblk.mexw64 deleted file mode 100644 index da1a8da..0000000 Binary files a/symbfwblk.mexw64 and /dev/null differ diff --git a/symfctmex.mexa64 b/symfctmex.mexa64 deleted file mode 100755 index bec93cc..0000000 Binary files a/symfctmex.mexa64 and /dev/null differ diff --git a/symfctmex.mexglx b/symfctmex.mexglx deleted file mode 100755 index 7964e36..0000000 Binary files a/symfctmex.mexglx and /dev/null differ diff --git a/symfctmex.mexmaci64 b/symfctmex.mexmaci64 deleted file mode 100755 index 9e164cb..0000000 Binary files a/symfctmex.mexmaci64 and /dev/null differ diff --git a/symfctmex.mexw32 b/symfctmex.mexw32 deleted file mode 100644 index 58a69e2..0000000 Binary files a/symfctmex.mexw32 and /dev/null differ diff --git a/symfctmex.mexw64 b/symfctmex.mexw64 deleted file mode 100644 index 624939f..0000000 Binary files a/symfctmex.mexw64 and /dev/null differ diff --git a/urotorder.mexa64 b/urotorder.mexa64 deleted file mode 100755 index 08e2229..0000000 Binary files a/urotorder.mexa64 and /dev/null differ diff --git a/urotorder.mexglx b/urotorder.mexglx deleted file mode 100755 index 47faee0..0000000 Binary files a/urotorder.mexglx and /dev/null differ diff --git a/urotorder.mexmaci64 b/urotorder.mexmaci64 deleted file mode 100755 index 422e49c..0000000 Binary files a/urotorder.mexmaci64 and /dev/null differ diff --git a/urotorder.mexw32 b/urotorder.mexw32 deleted file mode 100644 index 0f26b3a..0000000 Binary files a/urotorder.mexw32 and /dev/null differ diff --git a/urotorder.mexw64 b/urotorder.mexw64 deleted file mode 100644 index 2612e21..0000000 Binary files a/urotorder.mexw64 and /dev/null differ diff --git a/vecsym.mexa64 b/vecsym.mexa64 deleted file mode 100755 index e617a48..0000000 Binary files a/vecsym.mexa64 and /dev/null differ diff --git a/vecsym.mexglx b/vecsym.mexglx deleted file mode 100755 index c3024f2..0000000 Binary files a/vecsym.mexglx and /dev/null differ diff --git a/vecsym.mexmaci64 b/vecsym.mexmaci64 deleted file mode 100755 index a267a4b..0000000 Binary files a/vecsym.mexmaci64 and /dev/null differ diff --git a/vecsym.mexw32 b/vecsym.mexw32 deleted file mode 100644 index d3ea8b3..0000000 Binary files a/vecsym.mexw32 and /dev/null differ diff --git a/vecsym.mexw64 b/vecsym.mexw64 deleted file mode 100644 index d860bb6..0000000 Binary files a/vecsym.mexw64 and /dev/null differ