ํ์ฌ LAPACK์๋ ์ธ ๊ฐ์ง ๋ค๋ฅธ ๋น๋ ์์คํ ์ด ์์ต๋๋ค.
Meson ๋น๋๋ 2019๋
1์์ ๋์
๋ ์ดํ ๋ถ์์ ํ๊ณ ์ ์ง ๊ด๋ฆฌ๋์ง ์์ต๋๋ค. CMake์ Makefile ์ ์ฉ ๋น๋๋ ๋์ผํ์ง ์์ต๋๋ค. -frecursive
ํ๋๊ทธ๊ฐ ์์ต๋๋ค. ๋ ์ด์์ ๋น๋ ์์คํ
์ด ์์ผ๋ฉด ์ ์ด๋ ์ธ ๊ฐ์ง ํจ๊ณผ๊ฐ ์์ต๋๋ค.
-frecursive
์ ํ์์ฑ์ ๋ํ ์ฃผ์์ ์ฐธ์กฐํ์ญ์์ค.ํนํ ๋ง์ง๋ง ํฌ์ธํธ๋ ๋๊ตฐ๊ฐ๊ฐ ์ ํํ ๋ฌธ์ ๋ณด๊ณ ์๋ฅผ ์ ๋ฌํ๋๋ผ๋ Makefile๋ก ๋น๋ํ์ ๋ ๋ฌธ์ ๋ฅผ ์ถ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ํ๋ฅญํฉ๋๋ค.
ํ๋์ ๋น๋ ์์คํ ์ ๊ณ ์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ชฉ๋ก์ ์ถ๊ฐํ๊ธฐ ์ํด CMake ๋น๋๋ ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ํ ๋ถ๋ถ(REAL, DOUBLE, COMPLEX ๋ฐ/๋๋ DOUBLE COMPLEX)๋ง ๋น๋ํ๋ ์ต์ ์ ์ง์ํ์ง๋ง Makefile ์ ์ฉ ๋น๋๋ ์ง์ํ์ง ์์ต๋๋ค. (OpenBLAS์ ํจ๊ป ๋ฐฐํฌํ๋ ๋ณต์ฌ๋ณธ์์ Makefile์ ๋ณ๊ฒฝํ์ผ๋ฉฐ ์ํ๋ ๊ฒฝ์ฐ PR์ ์์ฑํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์ ๊ด๋ จ์ด ์๋ ์ผ๋ถ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ธํ๋ ค๋ฉด ๋ค์ ์์ ํด์ผ ํฉ๋๋ค.)
CMake ๋น๋๋ ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(REAL, DOUBLE, COMPLEX ๋ฐ/๋๋ DOUBLE COMPLEX)์ ์ผ๋ถ๋ง ๋น๋ํ๋ ์ต์ ์ ์ง์ํฉ๋๋ค.
์ด ์ต์ ์ ๋ด๊ฐ ๋ง์ง๋ง์ผ๋ก ์๋ํ์ ๋ ์๋ํ์ต๋๋ค(2020๋ 5์๊ฒฝ).
CMake ๋น๋์๋ ๋ช ๊ฐ์ง ์ต์ ์ด ์์ผ๋ฉฐ ์ฌ๊ธฐ์ ๊ฐ์ฅ ์ค์ํ ์ต์ ์ ๋์ดํฉ๋๋ค.
์ข์ ์๊ฐ. make๋ก ๋ด ์ปดํจํฐ์์ ์๋ํ์ง๋ง CMake๋ก ci์์๋ ์๋ํ์ง ์๋ ๋น๋๋ ๋๋ฅผ ๋ช ๋ฒ ๋ฏธ์น๊ฒ ๋ง๋ค์์ต๋๋ค.
๊ธฐ์ ์ ์ผ๋ก Makefile์ ์ด๋ฌํ ์ต์
๋ ๋ง์ด ์ง์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค(make.inc๋ฅผ ํธ์งํ๋ฉด ๋ฉ๋๋ค). ํ
์คํธ ์์ด ๋น๋๋ฅผ ์ํ๋ฉด make lib
๋น๋ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ฒฐ์ ์ ์ผ๋ก ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ตฌ์ถ์ ์ง์๋์ง ์์ต๋๋ค. ๋๋ถ๋ถ์ ์ฌ๋๋ค์ LAPACK์ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ฌ์ฉํ๋ฏ๋ก CMake๊ฐ ์ ์๊ฒ ํ์คํ ์น์๊ฐ ๋ฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ ๋๋ด๋ฉด readme์ ๋ช ๊ฐ์ง ์ถ๊ฐ ๋น๋ ์ง์นจ์ ์ถ๊ฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํ ์คํธ๋ฅผ ๋น๋ํ๊ณ ์คํํ๋ ๋ฐฉ๋ฒ, ํ๋๊ทธ, ํนํ frecursive ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ. ์๋ง๋ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ฝ๊ฐ์ ๋ฉ๋ชจ์ผ ์๋ ์์ต๋๋ค.
๋๋ gmake๋ก ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํด ์ด๋ฏธ ๋ง์ ํจ์น๊ฐ ๋ ๋์๋ค๋๊ณ ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค(์: lapack์ ํจํค์งํ๋ Linux ๋ฐฐํฌํ). ์ด๋ฏธ ์๋ BUILD_DEPRECATED์ ๊ฐ์ด make.inc์ BUILD_SHARED ์ต์ ์ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ฌด ๋ณต์กํ์ง ์์์ผ ํฉ๋๋ค(๊ทธ๋ฆฌ๊ณ ccmake ๋ฐ cmake-gui๊ฐ ์กด์ฌํ๋ค๋ ๊ฒ์ ์ด๋ฏธ ์๊ณ ์์ง ์๋ ํ ๋ ๋ค CMake ๋น๋์์ ๊ฝค ๋ชจํธํฉ๋๋ค).
์ด๋ฏธ ์๋ BUILD_DEPRECATED์ ๊ฐ์ด make.inc์ BUILD_SHARED ์ต์ ์ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ฌด ๋ณต์กํ์ง ์์์ผ ํฉ๋๋ค(๊ทธ๋ฆฌ๊ณ ccmake ๋ฐ cmake-gui๊ฐ ์กด์ฌํ๋ค๋ ๊ฒ์ ์ด๋ฏธ ์๊ณ ์์ง ์๋ ํ ๋ ๋ค CMake ๋น๋์์ ๊ฝค ๋ชจํธํฉ๋๋ค).
์ด๋ฌํ ์ต์
์ ์ค์ ํ๊ธฐ ์ํด ccmake
๋ก ์์
ํ ํ์๊ฐ ์์ต๋๋ค. autotools์์ ์์ฑํ configure
์คํฌ๋ฆฝํธ์ ์ ์ฌํ ๋ช
๋ น์ค์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
$ cmake -DBUILD_SHARED_LIBS=ON -DBUILD_COMPLEX=OFF -DBUILD_DEPRECATED=ON -- ../lapack/
[snip]
-- Build deprecated routines: ON
-- Build single precision real: ON
-- Build double precision real: ON
-- Build single precision complex: OFF
-- Build double precision complex: ON
[snip]
$ git -C ~/lapack rev-parse HEAD
6e125a41a7d4905d905a7467d3239d3f0d14b22c
ํ์คํ ํ ์ ์์ต๋๋ค. ์ ์์ ์ CMakelists.txt๋ฅผ ์ฝ๋ ๊ฒ ์ธ์๋ ๋ช ๋ฐฑํ ๋ฌธ์๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค(README๋ gmake์ฉ์ผ๋ก ๋ฏธ๋ฆฌ ๊ตฌ์ฑ๋ make.inc ํ์ผ์ ๊ฐ๋ฆฌํต๋๋ค). ccmake ๋ฐ cmake-gui๋ ์ฌ์ฉ ๊ฐ๋ฅํ ์ต์ ๋ชฉ๋ก์ ํ์ํ์ง๋ง cmake๋ฅผ ์ฒ์ ์ฌ์ฉํ๋ ์ฌ๋์๊ฒ๋ ์ด ๋ชฉ๋ก์ด ํ์๋์ง ์์ต๋๋ค.
CMAKE ์ฌ์ฉ๋ฒ์ ๋ํ ๋ฌธ์๋ฅผ ์์ฑํ๋ฉด CMAKE๋ฅผ ์ฌ์ฉํ ์ ์ด ์๊ธฐ ๋๋ฌธ์ ์ ๋ฅผ ๊ธฐ๋ํผ๊ทธ ์ฌ์ฉ์๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ ์ฒด ๋ํ๋ฅผ ์ฝ์ผ๋ฉด์ Makefile์ด LAPACK์ ๋๋ง์ ์ํ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ญ๋๋ค. ;)
๊ธ์, ๋๋ ๋ชจ๋ฅธ๋ค.
์: ์ฌ๋ฌ ๋น๋ ์์คํ ์ ์ ์ง ๊ด๋ฆฌํ๋ฉด ๋ถ์ผ์น๊ฐ ๋ฐ์ํฉ๋๋ค. ๊ทธ๋์ ๋๋ ํ๋๋ง ๊ฐ์ง๊ณ ์๋ค๋ ์ฃผ์ฅ์ ๋ด ๋๋ค. (CMAKE, make ๋๋ meson์ด๋ ๊ฐ์.) (์, ๋๋ meson์ ์ฌ์ฉํ ์ ์ด ์์ต๋๋ค.)
CMAKE๋ก ์ฎ๊ฒจ๊ฐ๊น๋ง๊น ๊ณ ๋ฏผ์ค์ธ๋ฐ ์ฌ์ฉ๋ฐฉ๋ฒ์ ๋ชจ๋ฅผ ๋ฟ๋ง ์๋๋ผ ์ ์ง๊ด๋ฆฌ๋ ์ ๋ชฐ๋ผ์์. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ์๊ฒ๋ ๋์์ ์ค ์ ์๋ ํ๋ฅญํ ์ปค๋ฎค๋ํฐ๊ฐ ์๋ ๊ฒ ๊ฐ์ผ๋ฏ๋ก ํ๋ก์ ํธ์ ์ด ๋ถ๋ถ์์ ์ผํ์ง ๋ชปํ๋ ๊ฒ์ด ๋ฌธ์ ๊ฐ ๋์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค. ๋ํ CMAKE๋ฅผ ๋ฐฐ์์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค.
์ ์ฒด: ์ด ์ค๋ ๋์์ ๊ทํ์ ์๊ฒฌ์ ํํํด ์ฃผ์ญ์์ค.
์ฐ๋ฆฌ ๋๋ถ๋ถ์ (1) make๋ฅผ ์ ๊ฑฐํ๊ณ meson์ ์ ๊ฑฐํ๊ณ ์ถ์ดํ๋ ๊ฒ ๊ฐ์ต๋๋ค. (2) CMAKE๋ก๋ง ์ด๋ํฉ๋๋ค. (3) CMAKE ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋ํ ๋ช ๊ฐ์ง ์ข์ ๋ฌธ์๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๋ ๊ด์ฐฎ์.
์ฌ๊ธฐ์ ๊ธฐ์ ๋ค๋ฅธ ํจํค์ง ๊ด๋ฆฌ์์๊ฒ ๋ช ๊ฐ์ง ์ด๋ฉ์ผ์ ๋ณด๋ด ์ด๋ป๊ฒ ํ๊ณ ์์ผ๋ฉฐ ์ด ๋ฌธ์ ์ ๋ํ ์๊ฒฌ์ ๋ฌป๊ฒ ์ต๋๋ค.
@martin-frbg: OpenBLAS์์ ์ด๊ฒ์ด ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๋์?
OpenBLAS์๋ "์๋ํ๋ ๊ฒ์ผ๋ก ์๋ ค์ง" "์ ํต์ ์ธ" ๋น๋ ์์คํ
์ผ๋ก Makefile์ด ์์ผ๋ฉฐ, ์์ฑํ๋ ํ์ผ์ด Makefile ๋น๋๊ฐ ์ํํ๋ ์์
๊ณผ ์ ํํ ์ผ์นํ์ง ์์ ์ ์๋ค๋ ๊ฒฝ๊ณ ๋ฅผ ์ฌ์ ํ ๋ด๋ฟ๋ ์๋ ์ฌ์ฉ์ ์ ๊ณต ๋์์ผ๋ก CMAKE๊ฐ ์์ต๋๋ค.
๋๋ CMAKE๋ฅผ ๋ณ๋ก ์ข์ํ์ง ์์ง๋ง ์๋ํ๋(๋๋ก๋ ๋น์ ํต์ ์ด์ง๋ง) cmake ๋น๋ ํ์ผ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ ์ต๋๋ค. ์ ์๊ฐ์๋ Makefile์ด ๋จ์ ์์ด์ผ ํฉ๋๋ค(๊ทธ๋ฆฌ๊ณ gmake๊ฐ ์ฌ์ ํ cmake๋ณด๋ค ๋ ๋๋ฆฌ ํผ์ ธ ์๋ค๊ณ ์๊ฐํฉ๋๋ค). ๋๋ ์ค๊ฐ์ ์ง์์ ์ญ์ฌ๋ฅผ ๋ชจ๋ฆ
๋๋ค - _๋ง์ฝ_ ์ด๊ฒ์ด ์๋ฌด๋ ์์ง ๋ชปํ๊ฑฐ๋ ๊ณ์ ์
๋ฐ์ดํธํ ๋งํผ ์ ๊ฒฝ์ฐ์ง ์๋ ์ผํ์ฑ "๋ด์ฅ ๋๋จธ๋ก ๋์ ธ์ง" ๊ธฐ์ฌ์๋ค๋ฉด, ๋๋ ๊ทธ๊ฒ์ ๊ณ์ ์ ์งํ๋ ๊ฒ์ด ๊ฑฐ์ ์๋ฏธ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ์ค๊ฐ์ ์ง์์ ์ญ์ฌ๋ฅผ ๋ชจ๋ฆ ๋๋ค. ์ด๊ฒ์ด ์๋ฌด๋ ์์ง ๋ชปํ๊ฑฐ๋ ์ ๋ฐ์ดํธ๋ฅผ ์ ์งํ๊ธฐ์ ์ถฉ๋ถํ ์ ๊ฒฝ์ฐ์ง ์๋ ์ผํ์ฑ "๋ด์ฅ ๋๋จธ๋ก ๋์ ธ์ง" ๊ธฐ๊ณ ๋ผ๋ฉด, ๋๋ ๊ทธ๊ฒ์ ์ ์งํ๋ ๊ฒ์ด ๊ฑฐ์ ์๋ฏธ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
Meson ๋น๋๋ PR #311์ LAPACK์ผ๋ก ๋ํ์ฐ๋์์ต๋๋ค.
ํ . ๊ทธ๊ฒ์ด 3.9.0์ ๋ฐ์๋ค์ฌ์ง๋ค๋ฉด(๋จ์ง ๊ฐ๋ ์ฆ๋ช ์ผ๋ก๋ผ๋), ๋ฐ๋ก ๋ค์ ๋ฆด๋ฆฌ์ค์์ ๊ทธ๊ฒ์ ๋ค์ ๋ฒ๋ฆฌ๋ ๊ฒ์ด ์กฐ๊ธ ์ด์ํ๊ฒ ๋ณด์ผ ๊ฒ์ ๋๋ค...
๋๋ @therault ์๊ฒ ์ฐ๋ฝํ์ฌ ๊ทธ๊ฐ ์ฐ๋ฆฌ์๊ฒ ์์ ์ ์๊ฒฌ์ @therault ๊ฐ ๋งํ
Open MPI๋ autoconf(automake, autoconf, configure, Makefiles)๋ง ์ฌ์ฉํฉ๋๋ค.
PaRSEC ๋ฐ DPLASMA์ ๊ฒฝ์ฐ CMake๋ง ์ฌ์ฉํ๋ฉฐ ๊ตฌ์ฑ์ ์ต์ํ ์ฌ์ฉ์๋ฅผ ๋๊ธฐ ์ํด
๋๋ configure์ CMake๋ฅผ ๋ชจ๋ ์ ์งํ๋ ค๊ณ ์๋ํ ํ๋์ ์ฃผ์ ํ๋ก์ ํธ๋ฅผ ์๊ณ ์์ต๋๋ค. ๊ธฐ๋ฅ์ 100%๋ฅผ CMake์์ ์ฌ์ฉํ ์ ์๊ณ ๊ตฌ์ฑ์์ ์ง์๋๋ ์๋ก์ด ๊ธฐ๋ฅ์ด ์ ์ ์ค์ด๋ค๊ณ ์๋ ์ํฉ์์ ์ฒ์ฒํ ๋ฐ์ ํ์ต๋๋ค. ๋๋ ๊ทธ๋ค์ด ๊ตฌ์ฑ ๋ฒ์ ์ ์ง ๊ด๋ฆฌ๋ฅผ ์ค๋จํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฝ๋์ ๋ํด ๋ ๊ฐ์ ๋น๋ ์์คํ ์ ์ ์ง ๊ด๋ฆฌํ๋ ๊ฒ์ ์ด๋ ต์ต๋๋ค. ์ด๋ก ์ ์ผ๋ก ๋น๋ ์์คํ ์ ๋ชจ๋ ์ฝ๋์ ํจ๊ป ์๋ํด์ผ ํ๋ฏ๋ก ๋ ๊ฐ๋ฅผ ์ ์งํ๋ ๊ฒ์ด ๊ฐ๋ฅํด์ผ ํฉ๋๋ค(์ ์ง ๊ด๋ฆฌ์๊ฐ ๋๊ธฐํ๋ฅผ ์ ์งํ๋ ค๋ฉด ๋น์ฉ์ด ๋ง์ด ๋ญ๋๋ค. configure๊ฐ ๋ค๋ฅธ ํ๋ก์ ํธ์์ ๋น ์ก๊ณ , ์ ์ง ๋ณด์๋ ์๊ฐ์ ํ ์ ํ ์ ์๋ ๋ ์ข์ ์ผ์ ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.) ์ค์ ๋ก ์ฝ๋๋ฅผ ๋น๋ ์์คํ ์ ๋ง๊ฒ ์กฐ์ ํ์ฌ ์์ ์ ๋ ๊น๋ํ๊ฒ ๋ง๋ค ํ์๊ฐ ์์ต๋๋ค. ๊ทธ๋ฐ ์ผ์ด ๋ฐ์ํ๋ฉด ๋ ๋น๋ ์์คํ ์ค ํ๋๊ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ๊ณผ ํดํน์ ์ฌ์ฉํ์ฌ ์ฝ๋์ ๋ฐ๋ผ ๋ค๋ฅธ ์์คํ ์ฒ๋ผ ์๋ํด์ผ ํฉ๋๋ค.
๊ฒฐ๊ตญ CMake ๋๋ ๊ตฌ์ฑ ๋ชจ๋ ์ค๋งํ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ํ๋ก๊ทธ๋๋จธ/์ํ์/์ฐ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ํ๊ณ ์์ต๋๋ค... ์ ๊ทธ ๊ธฐ๊ณ์์ ์ปดํ์ผ๋ฌ์ ํ๋๊ทธ์ ์กฐํฉ์ผ๋ก ์ฝ๋๊ฐ ์ ๋๋ก ์ปดํ์ผ๋์ง ์๋์ง ์ดํดํ๊ธฐ ์ํด ์๊ฐ์ ๋ณด๋ ๋๋ค. ์๋ฌด๋ ๊ทธ๊ฒ์ ์ข์ํ์ง ์์ต๋๋ค. ์ค์๊ฐ์์ผ๋ก, CMake ๋๋ autoconf๋ฅผ ์ฌ์ฉํ์ฌ ๊ทธ ์ผ์ ํ๊ฑฐ๋ ๋ค๋ฅธ ์ผ์ ํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์ผ๋ ค๊ณ ํ๋ฉด ๋ฒฝ์ ๋ถ๋ชํ ๊ฒ์ ๋๋ค :) ๋ ๊ฐ์ง๋ฅผ ๋ชจ๋ ์ฌ์ฉํ๋ฉด ๋ ๊ฐ์ง ๋ชจ๋์ ๋ํด ๋ถํํ๊ฒ ๋ ๊ฒ์ ๋๋ค. ๋ ๋ฒ ๋ ๋ถํํ์ญ์์ค.
์ค๋ ์ ๋ CMake๋ฅผ ์ ํธํ๋ ์ด์ ๊ฐ ํ๋ ์์ต๋๋ค. CMake๋ Makefile ๋์ Ninja ํ์ผ์ ์ ์์ฑํฉ๋๋ค. Ninja๋ Make -j๋ณด๋ค 2~3๋ฐฐ ๋น ๋ฅด๊ฒ PaRSEC๋ฅผ ์ปดํ์ผํฉ๋๋ค. ์ด์ configure/autoconf๊ฐ Ninja ํ์ผ์ ์์ฑํ ์๋ ์์ต๋๋ค. ์ ๋ ์๋ํ ์ ์ด ์์ต๋๋ค... ์ด์ ์ ninja๋ฅผ ์๋ํ ์ ์ด ์๊ณ LAPACK์ CMake ๋ฒ์ ์ด ์๋ ๊ฒฝ์ฐ cmake -G Ninja๋ฅผ ์๋ํ๋ ๊ฒ์ด ์ข์ต๋๋ค(์ปดํจํฐ์ Ninja๋ฅผ ์ค์นํ ํ). ์ปดํ์ผํ๋ ค๋ฉด 'make' ๋์ cmake๋ฅผ ์คํํ ๋๋ ํ ๋ฆฌ์์ 'ninja'๋ฅผ ํธ์ถํฉ๋๋ค. ๋น์ ์ ๋ณผ ์ ์์ต๋๋ค, ๊ทธ๊ฒ์ ๋๋ผ์ด :)
๋ง์ฝ ๋น์ ์ด ๊ด์ฌ์ ๊ฐ์ง๊ณ ์๋ค๋ฉด LAPACK์ configure-to-cmake ๊ธ๋ฃจ ์คํฌ๋ฆฝํธ๋ฅผ ์ ๊ณตํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
(์ด ์คํฌ๋ฆฝํธ๋ autoconf/m4 ๊ธฐ๋ฐ์ด ์๋๋ฉฐ configure --with-feature=value
๋ฅผ cmake -DFEATURE=value
์ ๋ํ ํธ์ถ๋ก ๋ณํํ๋ ๊ฐ๋จํ ์คํฌ๋ฆฝํธ์
๋๋ค.
LAPACK์ configure๋ฅผ ์ฌ์ฉํ์ง๋ ์์ต๋๋ค. autoconf/automake/configure ๊ธฐ๋ฐ ์์คํ ์ cmake์ ๋์์ ์ ์งํ๊ณ autotools ์์ฒด๊ฐ ์ง์์ ์ผ๋ก "์งํ"ํ๊ณ m4 ๋งคํฌ๋ก ๋ฑ์ ์์กดํ๋ ๊ฒ์ด ๊ณ ํต์ค๋ฌ์ธ ๊ฒ์ด๋ผ๋ ๋ฐ ๋์ํฉ๋๋ค.
CMAKE๋ก ์ฎ๊ฒจ๊ฐ๊น๋ง๊น ๊ณ ๋ฏผ์ค์ธ๋ฐ ์ฌ์ฉ๋ฐฉ๋ฒ์ ๋ชจ๋ฅผ ๋ฟ๋ง ์๋๋ผ ์ ์ง๊ด๋ฆฌ๋ ์ ๋ชฐ๋ผ์์.
์ด๊ฒ์ด Makefiles๋ฅผ ๊ณ ์ํ๋ ์ฃผ์ ์ด์ ์ ๋๋ค.
์ ์ฒด: ์ด ์ค๋ ๋์์ ๊ทํ์ ์๊ฒฌ์ ํํํด ์ฃผ์ญ์์ค.
Meson ๋น๋๋ฅผ ์ ๊ฑฐํด์ผ ํฉ๋๋ค. ์๋ฌด๋ ๊ทธ๊ฒ์ ์ฌ์ฉํ์ง ์๊ณ , ์๋ฌด๋ ๊ทธ๊ฒ์ ์ ์ง ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฆ ๋๋ค. ์๋ ์์ฑ์๋ ๋ถ์์ ํ ๋น๋๋ฅผ ์ ์ถํ์ผ๋ฉฐ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ณํฉ๋ ํ์๋ ๋์์ค์ง ์์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ์ด๊ธฐ ์ ์ ์ผ๋ง๋ ๋ง์ ์ฌ๋๋ค์ด Meson ๋น๋๊ฐ ์๋ค๋ ๊ฒ์ ์์์ต๋๊น?
CMake๋ ๊ฐ๋จํ ๊ตฌ๋ฌธ๊ณผ ์์ ํ ๊ตฌ์ฑ ๊ฐ๋ฅํ ๋น๋๊ฐ ์๋ ์ด์ ๊ฐ๋ฅํ ๋น๋ ์์คํ
์
๋๋ค. ํ์ผ๋ณ, ์ปดํ์ผ๋ฌ๋ณ ๋๋ ๋์๋ณ ์ต์
์ ์ค์ ํ ์ ์์ต๋๋ค(์: gethostname()
์ ๊ฐ์ C ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์๋ ๊ธฐ๋ฅ์ ์ ํ์ ์ผ๋ก ํ์ฑํํ๊ธฐ ์ํด). CMake์๋ ๊ฐ๋ ฅํ ๊ฐ์ฒด ํ์ผ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด git ๋ถ๊ธฐ๋ฅผ ์ ํํ ๊ฒฝ์ฐ์๋ make
๋ฅผ ๊ณ์ ์
๋ ฅํ์ฌ ๋น๋๋ฅผ ์
๋ฐ์ดํธํ ์ ์์ต๋๋ค. CMake๋ ๋๋จธ์ง UNIX ์์ฝ์์คํ
๊ณผ ์ํํ๊ฒ ์ํธ ์์ฉํฉ๋๋ค. ์์์ ํ๋ก๊ทธ๋จ์ ํธ์ถํ๊ณ ์ถ๋ ฅ์ ๋ฐ๋ผ ์์
ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด pkg-config๋ฅผ ํธ์ถํ์ฌ ๋ค๋ฅธ ํจํค์ง๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
CMake๋ฅผ ์ฒ์ ์ฌ์ฉํ ๊ฒ์ 2016๋ ์ด์๊ณ ๊ทธ ์ดํ๋ก x86, x86-64, armv7 ๋ฐ aarch64 ๋ช ๋ น์ด ์ธํธ ์ํคํ ์ฒ์์ Linux, Mac, iOS ๋ฐ Android ์์คํ ์ฉ ์ฝ๋๋ฅผ ๋น๋ํ๋ ๋ฐ ๊ณ์ ์ฌ์ฉํ์ต๋๋ค. ๋ชจ๋ ์ฃผ์ Linux ๋ฐฐํฌํ๊ณผ ๋ด๊ฐ ์ก์ธ์คํ ์ ์๋ ๋ชจ๋ ์ํผ์ปดํจํฐ(Grid 5000, Jean Zay, JUWELS, GRICAD, Eagle II)์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ํผ์ปดํจํฐ๋ ์ผ๋ฐ์ ์ผ๋ก ์ด์ ๋ฆด๋ฆฌ์ค์ ์ต์ ๋ฆด๋ฆฌ์ค(3.18+)๋ฅผ ํฌํจํ์ฌ ์ฌ๋ฌ ๋ฒ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. CMake ๊ฐ์ฉ์ฑ์ ์ด๋ ค์์ ๊ฒช์ ์ ์ผํ ํ๋ซํผ์ CentOS 7์ด์ง๋ง ํญ์ CMake tarball์ ๋ค์ด๋ก๋ํ๊ณ tarball ๋ด๋ถ์ ๋ถํธ์คํธ๋ฉ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ GNU Make๋ก๋ง CMake๋ฅผ ๋น๋ํ ์ ์์ต๋๋ค.
CMake๋ ์ ์๊ฒ ๋ฑ ๋ง์ต๋๋ค.
๋ค๋ฅธ ๋น๋ ์์คํ ์ ๋ํ ์ ๊ฒฝํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
configure
๊ฐ (๋น์ ์ด ์ฌ์ฉํ ์์๋ ๋ชจ๋ ์ต์
์ ํ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์คํฌ๋ฆฝํธ๊ฐ ๋งค์ฐ ํธ๋ฆฌํฉ๋๋ค CMake ์์ต๋๋ค์ ccmake
์๋ง ์คํ ํ cmake
ํ ๋ฒ).์ค๋ ์ ๋ CMake๋ฅผ ์ ํธํ๋ ์ด์ ๊ฐ ํ๋ ์์ต๋๋ค. CMake๋ Makefile ๋์ Ninja ํ์ผ์ ์ ์์ฑํฉ๋๋ค. Ninja๋ Make -j๋ณด๋ค 2~3๋ฐฐ ๋น ๋ฅด๊ฒ PaRSEC๋ฅผ ์ปดํ์ผํฉ๋๋ค.
์ข์ต๋๋ค. Ninja๋ ๊ณผ๊ฑฐ์ Fortran์ ์ปดํ์ผํ ์ ์์์ต๋๋ค. ์ฐธ์กฐ. ninja #1265 , ์ฆ, ์ผ๋ถ ๋ฐฐํฌํ์์๋ ์๋ํ์ง ์์ต๋๋ค(Debian 9?).
์ด ๊ฒฝ์ฐ ์ผ๋ฐ makefile์ด ๋ ์ฝ๊ณ ์ถฉ๋ถํ๋ค๊ณ ๋งํ ์ ์์ต๋๋ค.
HPC ํด๋ฌ์คํฐ์์ ์ํํธ์จ์ด ์ ์ง Cmake ์ฌ์ฉ์ ๋งค์ฐ ์ค๋งํ์ต๋๋ค.
make.inc
). ์ด๋ ๋น๋ ์ ๋ช
๋ น์ค์์ ๋ชจ๋ bulild-options๋ฅผ ๊ฐ์ ๋ก ์ง์ ํฉ๋๋ค.๋ฐ๋ฉด์ cmake๋ ๋ค์๊ณผ ๊ฐ์ ์ข์ ์์ ๋ ์ํํฉ๋๋ค.
๊ทธ๋ฌ๋ LAPACK์ ๋งค์ฐ ๊ฐ๋จํ ๋น๋ ์์คํ
์๋ ์ข๊ณ ๋์จ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์ฌ ๋น๋ ์์คํ
์ ์์ญ ๋
๋์ ์๋ํ์ผ๋ฉฐ ์ฌ๋๋ค์ ์ด์ ์ต์ํฉ๋๋ค.
๋ํ ๋น ๋ฅธ ๋ณ๋ ฌ ๋น๋๋ฅผ ์ํด ํ์ฌ makefile ์์คํ
์ ๊ฐ๋จํ๊ฒ ์ถ๊ฐํ ์ ์์ต๋๋ค.
๋๋ ์ค์ ๋ก ์ ํธํ๋ ๊ฒ์ด ์์ง๋ง ๋ ๋ง์ ๊ฒ์ด ์ง์๋๋ค๋ฉด ์ด๋ค ๋น๋ ์์คํ ์์ ์ด๋ค ์ต์ ์ ์ง์ํ๋์ง ์ ๋์ ์ผ๋ก ๋ถ๋ช ํด์ผํฉ๋๋ค ...
@langou ๋ ๊ณผ ๋น์ทํ ์ํฉ์ธ ๊ฒ
๋๋ cmake๋ฅผ ๋ชจ๋ฅธ๋ค. ๋ชจ๋ ๊ตฌ์ฑ์ด ์ด๋ฏธ ์ค๋น๋์ด ์๊ณ travis ๊ตฌ์ฑ์ ์ด๊ณ ์คํ๋๋ ํ์ ๋ณต์ฌํ์ฌ ๋ถ์ฌ๋ฃ๊ธฐํ์ฌ ์ด ํ๋ก์ ํธ์๋ง ์ฌ์ฉํ ์ ์์์ต๋๋ค. ๊ฒฝํ์ด ๋ถ์กฑํด์๋ง์ ์๋ ๊ฒ ๊ฐ์์. Makefile์ ์ฝ๊ฐ ๋ ๋ง๋ฒ์ ์ด๊ณ ๋ ๋ฎ์ ์์ค์ผ๋ก ๋๊ปด์ง๋๋ค. ๊ทธ๊ฒ์ ์๋ง๋ ์ด ํ๋ก์ ํธ์์ ์ผํ๋ ๊ฒฝํฅ์ด ์๋ ์ฌ๋๋ค์๊ฒ ๋ฐํฅ์ ์ผ์ผํฌ ๊ฒ์
๋๋ค.
์์ ํ ๊ฐ์ธ์ ์ธ ์ฉ๋๋ผ๋ฉด gmake๋ฅผ ๊ณ์ ์ฌ์ฉํ ๊ฒ์ด์ง๋ง ํ์ฌ cmake์์๋ง ์ฌ์ฉํ ์ ์๋ ๋ชจ๋ ๊ธฐ๋ฅ์ Makefile์ ๋ฃ์ด์ผ ํฉ๋๋ค. ํนํ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋์.
๊ทธ๋ฌ๋ cmake๊ฐ ์ ๊ณตํ๋ ๋ชจ๋ ๋ฉ์ง ๊ธฐ๋ฅ์ ๋ฌด์ํ ์ ์์ต๋๋ค. ๊ถ๊ทน์ ์ผ๋ก ๋๋ cmake๋ gmake๊ฐ ์ ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ๋ ํ๋๋ง ์ ํํ๋ฉด ๋ฉ๋๋ค.
์ ๋ ์ธ๋ถ ๋ชฉ์๋ฆฌ์ด์ง๋ง conda-forge ์์ ํดํน , ๊ธฐ๋ณธ Windows ์ง์ ๋ฑ).
CMake ๊ตฌ๋ฌธ์ ์ต์ํด์ง๋ ค๋ฉด ์ฝ๊ฐ์ ์๊ฐ์ด ํ์ํ์ง๋ง, ๋ด ์ธ์์ ์ด๊ฒ์ด ์ ์ ์ง๋๊ณ ๋ฌธ์ํ๋์ด ์๋ ์ํํธ์จ์ด๋ก, ๋ง์ ๊น๋ค๋ก์ด ๋น๋ ๋ฌธ์ ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ํด๊ฒฐ/์ถ์ํํ๋ค๋ ๊ฒ์ ๋๋ค. ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจํค์ง์๋ ์ฐธ์ฌํ๊ณ ์์ผ๋ฉฐ (์ฃผ๊ด์ ์ผ๋ก) CMake๋ก์ ์ด๋์ด ์ ์ ๋ ๋ง์์ง๊ณ ์์ต๋๋ค.
์ธ๋ถ์ ๋ ๋ค๋ฅธ ๋ฐ์ดํฐ ํฌ์ธํธ์ ๋๋ค. ์๋นํ ์์ C/C++ ๋น๋๋ฅผ ํฌํจํ๋ ์์ ์์ CMake๋ก ๋๋ฌด ๋ง์ ์ด๋ ค์์ ๊ฒช์ ํ Meson์ผ๋ก ์ด๋ํฉ๋๋ค. ๊ทธ๊ฒ๊ณผ ๊ด๋ จ๋ ๊ธด ๋ฌธ์ ๋ชฉ๋ก์ ๋ค๋ฅธ ๊ณณ์์ ์ ๋ฌธ์ํ๋์ด ์์ผ๋ฏ๋ก ์๋ตํ๊ฒ ์ต๋๋ค.
SciPy ํ๋ก์ ํธ์์๋ Python distutils
์ด ํ๊ธฐ๋๊ณ ์๊ธฐ ๋๋ฌธ์ ์ด๋ ์์ ์์ CMake ๋๋ Meson์ ์ฌ์ฉํ๋ ค๊ณ ์๋ํ ๊ฒ์
๋๋ค.
์ธ ๊ฐ์ง ๋น๋ ์์คํ ์ ์ ์ง ๊ด๋ฆฌํ๋ฉด ์ ์ง ๊ด๋ฆฌ์์๊ฒ ๋ถ์ผ์น ๋ฐ/๋๋ ์ถ๊ฐ ์์ ์ด ๋ฐ์ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์์ ์๊ฒฌ๊ณผ ์ ์๊ฐ์๋ ๊ฐ ์ฌ์ฉ์๊ฐ ์ฝ๋๋ฅผ ๋น๋ํ๋ ๊ณ ์ ํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ํนํ @therault ์ ์๊ฒฌ์ ๋์ํฉ๋๋ค.
์ฐ๋ฆฌ๋ ํ๋ก๊ทธ๋๋จธ/์ํ์/์ฐ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ํ๊ณ ์์ต๋๋ค... ์ ๊ทธ ๊ธฐ๊ณ์์ ์ปดํ์ผ๋ฌ์ ํ๋๊ทธ์ ์กฐํฉ์ผ๋ก ์ฝ๋๊ฐ ์ ๋๋ก ์ปดํ์ผ๋์ง ์๋์ง ์ดํดํ๊ธฐ ์ํด ์๊ฐ์ ๋ณด๋ ๋๋ค. ์๋ฌด๋ ๊ทธ๊ฒ์ ์ข์ํ์ง ์์ต๋๋ค. ์ค์๊ฐ์์ผ๋ก, CMake ๋๋ autoconf๋ฅผ ์ฌ์ฉํ์ฌ ๊ทธ ์ผ์ ํ๊ฑฐ๋ ๋ค๋ฅธ ์ผ์ ํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์ผ๋ ค๊ณ ํ๋ฉด ๋ฒฝ์ ๋ถ๋ชํ ๊ฒ์ ๋๋ค :) ๋ ๊ฐ์ง๋ฅผ ๋ชจ๋ ์ฌ์ฉํ๋ฉด ๋ ๊ฐ์ง ๋ชจ๋์ ๋ํด ๋ถํํ๊ฒ ๋ ๊ฒ์ ๋๋ค. ๋ ๋ฒ ๋ ๋ถํํ์ญ์์ค.
์ฌ๋ฌ ๋น๋ ์์คํ ์ ๋ฌธ์ ๋ฅผ ํผํ๊ธฐ ์ํ ํ ๊ฐ์ง ์์ด๋์ด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ด๊ฐ ์ดํดํ๋ ํ recursive
ํ๋๊ทธ์ ๋ฌธ์ ๋ ํ
์คํธ ๋ฃจํด xeigtstz
(https://github.com/Reference-LAPACK/lapack/issues/335# ์ฐธ์กฐ). ๋ฌธ์ ์๊ฒฌ-485021575). ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋ฉด ๋ค์ ์ค ํ๋๋ฅผ ๊ฒฐ์ ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
make.inc.*
ํ์ผ์์ ํ๋๊ทธ๋ฅผ ์ ๊ฑฐํฉ๋๋ค.์ฝ๊ฐ์ ์คํด wrt -frecursive
์ ์๊ฐ์๋ ์ด๊ฒ์ ๋ค์ค ์ค๋ ๋ ์ฝ๋์ ์ฌ๋ฐ๋ฅธ ๊ธฐ๋ฅ์ ํ์ํ๋ฏ๋ก ์ผ๋ฐ์ ์ผ๋ก ๋น๋ ํ์ผ์์ ์ ๊ฑฐํด์๋ ์ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ถ์์ฉ์ xeigtstz์ ๊ฒฝ์ฐ ๋งค์ฐ ํฐ ๋ก์ปฌ ๋ฐฐ์ด์ ์คํ์ ๋ฐฐ์นํ๋ค๋ ๊ฒ์
๋๋ค. TESTING/EIG Makefile์์๋ง ์ด ์ต์
์ ์ ๊ฑฐํ๋ ๊ฒ์ ๊ฐ๋จํ ๊ฒฝ์ฐ์ ๋์์ด ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง `-fopenmp'๋ก ์ปดํ์ผํ ๋ ์์๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ํด๋น ํ
์คํธ์ ๋น์ ์์ ์ผ๋ก ํฐ ์คํ ์ ํ ์๊ตฌ ์ฌํญ์ ๋ํ ์ผ๋ฐ์ ์ธ ์๋ฃจ์
์ด ์๋๋๋ค.
๊ทธ๋์ ์ฌ๊ธฐ์ ์ด์ ๊ฐ ์์ต๋๋ค.
๋๋ LAPACK์ด "๋จ์ํ" ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๋ ๋ฐ ๋์ํฉ๋๋ค. make ์์คํ
๋ง ์์ผ๋ฉด ์ถฉ๋ถํ๊ณ ์ค๋ซ๋์ ์ถฉ๋ถํ์ต๋๋ค.
ํ์ง๋ง ํ์ง๋ง.. ์๋์ฐ๋ ์๊ณ .. ์๋์ฐ ๋๋ฌธ์ cmake๋ฅผ ๊ฐ์ ธ์์ผ ํ์ต๋๋ค. ์๋ CMake์ ์ฌ๋๋ค์ด ๊ตฌ์ฑ ์์
์ ํ์ง๋ง ์ง๊ธ์ ์ฐ๋ฆฌ๊ฐ ํผ์์ธ ๊ฒ ๊ฐ๊ณ @langou ์ฒ๋ผ ์ค์ ๋ก ๋ง์คํฐํ์ง ๋ชปํ๊ณ ์์ต๋๋ค.
์ด์ LAPACK์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋๋ถ๋ถ์ ์ํํธ์จ์ด๋ Cmake๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์ฌ์ฉ์ ํผ๋๋ฐฑ์ ํตํด ๊ทธ๋ค์ด ์ข์ํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
๋ฐ๋ผ์ ํ๋์ ๋น๋ ์์คํ ์ ์ ํํด์ผ ํ๋ ๊ฒฝ์ฐ: ์ด๊ฒ์ Cmake์ฌ์ผ ํฉ๋๋ค... ํ์ฌ๋ก์๋ ๋ถํํ์ง๋ง ๋ฏธ๋์๋ ๋คํ์ ๋๋ค.
๋ด ํฌํ: @abouteiller ๋ฐ @ @therault ์ ์กฐ์ธ์
์ด์ LAPACK์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋๋ถ๋ถ์ ์ํํธ์จ์ด๋ Cmake๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์ฌ์ฉ์ ํผ๋๋ฐฑ์ ํตํด ๊ทธ๋ค์ด ์ข์ํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
๋๋ ์ด ๋ฌธ์ ๋ฅผ ์ด๊ณ ๋จ ํ๋์ ๋น๋ ์์คํ
์ ๊ฐ์๊ณ ์ ์ํ์ต๋๋ค. ๋ด ๊ฐ์ ์ Makefile๊ณผ CMake ๊ธฐ์ ์ด ๊ฑฐ์ ๊ณ ๋ฅด๊ฒ ๋ถํฌ๋์ด ์๋ค๋ ๊ฒ์
๋๋ค. ๋ด๊ฐ ํ๋ ธ๋ค๋ฉด ์ ์ ํด์ฃผ์ธ์. ํ์ง๋ง ๋ด ์ธ์์ ์ด๊ฒ์ด ์ผ๋ฐ LAPACK ๊ธฐ๊ณ ์ ์ฌ์ด์์ ์ฌ์ค์ด ์๋๋ผ๋ ๊ฒ์
๋๋ค. Makefiles๋ ์ธ๊ธฐ ์๋ ๊ฒ ๊ฐ๊ณ CMake ์ง์์ ๊ฐ๋ ฅํ์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค. ๊ฒ๋ค๊ฐ ์ดํ๊ฐ์ ํ ๋ก ๋์ -frecursive
ํ๋๊ทธ๋ ๋ถ๋ช
ํ CMake์ Makefile ๋น๋ ์ฌ์ด์ ์ ์ผํ ์ฐจ์ด์ ์ด๋ฉฐ Travis CI์์๋ CMake๋ง ์ฌ์ฉ๋๋ค๋ ์ฌ์ค์
๋๋ค. ํต์ฌ ๊ธฐ์ฌ์๋ฅผ ๋ชฐ์๋ธ๋ค๋ฉด ์ฌ์ฉ์๋ฅผ ํ๋ณตํ๊ฒ ๋ง๋๋ ํ๋์ ๋น๋ ์์คํ
์ ๊ฐ์ํ๋ ๊ฒ์ ์ด์น์ ๋ง์ง ์์ต๋๋ค.
(์ ๊ท ๊ธฐ์ฌ์๊ฐ ๋๊ตฌ์ธ์ง์ ๋ํ ๋์ ํ๋จ์ ์๋ฝ๋ ํ ๋ฆฌํ์คํธ์ ์ฒ์ 5ํ์ด์ง๋ฅผ ๋ณด๊ณ ๊ฒฐ์ ํ๋ ๊ฒ์ ๋๋ค.)
Agree.. BTW, ์ฌ๊ท ํ๋๊ทธ๋ #492๊ฐ ์๋ ๊ธฐ๋ณธ CMake ๋ฐ Makefile ๊ตฌ์ฑ์ ์์ต๋๋ค. ๋ฐ๋ผ์ Travis CI์ Makefile ๋น๋๋ฅผ ํฌํจํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
PR #500์ ์ฌ๊ธฐ์ ๋ณด๊ณ ๋ Makefile๊ณผ CMake ๋น๋ ์์คํ ๊ฐ์ ๋ถ์ผ์น๋ฅผ ์ํํฉ๋๋ค. https://github.com/Reference-LAPACK/lapack/pull/500#issuecomment -788164244 ์ฐธ์กฐ
์๋ ํ์ธ์ @ilayn์ ๋๋ค. Meson / CMake / Makefile ์ ๋ณด ๊ฐ์ฌํฉ๋๋ค. ์ธ๋ถ ํผ๋๋ฐฑ์ ๋ฐ๊ณ ๋ค๋ฅธ ํ๋ก์ ํธ๊ฐ ์ํํ๋ ์์ ์ ๋ํ ์ ๋ณด๋ฅผ ์ป๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ธ ๊ฐ์ง ์์คํ ์ ๋ชจ๋ ์ง์ํ ์ ์์ผ๋ฉฐ ํ์ฌ๋ก์๋ CMake์ Makefile์ ์ ํธํ๋ฏ๋ก Meson์ ํ๊ธฐํ ๊ฒ์ ๋๋ค. Meson์ ์ ๋ ์ฌ์ฉํ์ง ์์ ๊ฒ์ด๋ผ๋ ๋ง์ ์๋์ง๋ง ํ์ฌ๋ก์๋ Meson์ ์ ์ง ๊ด๋ฆฌํ ๋ฆฌ์์ค๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ ๋ด ์๊ฒฌ์ ๋๋ค. ๊ณง Meson์ ํด์ญ์ํค๋ PR์ ์ ์ถํ ๊ฒ์ ๋๋ค. ์ค๋ฆฌ์.