Tritonn の ports を作ろう (その2)
Makefile の中の
.include
この部分から、bsd.port.post.mk をインクルードしてるみたい
というわけで追いかけてみる
とりあえず、bsd.port.post.mk の中を見てみる
- bsd.port.post.mk を確認する
# cat /usr/ports/Mk/bsd.port.post.mk
# $FreeBSD: ports/Mk/bsd.port.post.mk,v 1.3 1999/08/25 04:40:21 obrien Exp $ AFTERPORTMK= yes .include "bsd.port.mk" .undef AFTERPORTMK
bsd.port.mk を include しているので
bsd.port.mk を見てみる
- bsd.port.mk を確認する
# vi /usr/ports/Mk/bsd.port.mk
(1942行目付近)
.if defined(USE_MYSQL) || defined(WANT_MYSQL_VER) || \ defined(USE_PGSQL) || defined(WANT_PGSQL_VER) || \ defined(USE_BDB) || defined(USE_SQLITE) || defined(USE_FIREBIRD) .include "${PORTSDIR}/Mk/bsd.database.mk" .endif
USE_MYSQL があるときに bsd.database.mk を include しているので
bsd.database.mk を見てみる
- bsd.database.mk を確認する
# vi /usr/ports/Mk/bsd.database.mk
ごっそりとこんなカンジ.if defined(USE_MYSQL) DEFAULT_MYSQL_VER?= 50 # MySQL client version currently supported. MYSQL323_LIBVER= 10 MYSQL40_LIBVER= 12 MYSQL41_LIBVER= 14 MYSQL50_LIBVER= 15 MYSQL51_LIBVER= 16 MYSQL60_LIBVER= 16 # Setting/finding MySQL version we want. .if exists(${LOCALBASE}/bin/mysql) _MYSQL_VER!= ${LOCALBASE}/bin/mysql --version | ${SED} -e 's/.*Distrib \([0-9]\)\.\([0-9]*\).*/\1\2/' .endif .if defined(WANT_MYSQL_VER) .if defined(WITH_MYSQL_VER) && ${WITH_MYSQL_VER} != ${WANT_MYSQL_VER} IGNORE= cannot install: the port wants mysql${WANT_MYSQL_VER}-client and you try to install mysql${WITH_MYSQL_VER}-client. .endif MYSQL_VER= ${WANT_MYSQL_VER} .elif defined(WITH_MYSQL_VER) MYSQL_VER= ${WITH_MYSQL_VER} .else .if defined(_MYSQL_VER) MYSQL_VER= ${_MYSQL_VER} .else MYSQL_VER= ${DEFAULT_MYSQL_VER} .endif .endif # WANT_MYSQL_VER .if defined(_MYSQL_VER) .if ${_MYSQL_VER} != ${MYSQL_VER} IGNORE= cannot install: MySQL versions mismatch: mysql${_MYSQL_VER}-client is installed and wanted version is mysql${MYSQL_VER}-client .endif .endif # And now we are checking if we can use it .if defined(MYSQL${MYSQL_VER}_LIBVER) # compatability shim .if defined(BROKEN_WITH_MYSQL) IGNORE_WITH_MYSQL=${BROKEN_WITH_MYSQL} .endif .if defined(IGNORE_WITH_MYSQL) . for VER in ${IGNORE_WITH_MYSQL} . if (${MYSQL_VER} == "${VER}") IGNORE= cannot install: doesn't work with MySQL version : ${MYSQL_VER} (Doesn't support MySQL ${IGNORE_WITH_MYSQL}) . endif . endfor .endif # IGNORE_WITH_MYSQL LIB_DEPENDS+= mysqlclient.${MYSQL${MYSQL_VER}_LIBVER}:${PORTSDIR}/databases/mysql${MYSQL_VER}-client .else IGNORE= cannot install: unknown MySQL version: ${MYSQL_VER} .endif # Check for correct libs .endif # USE_MYSQL
というわけで、このへんの MYSQL に関する マクロの処理をいじればよさそうなので
tritonn.mk という名前を付けて、
/usr/ports/databases/mysql50-tritonn-server ディレクトリに置いて
Makefile で include "tritonn.mk" とかする方向で進めます
とりあえず、コピー
# cp /usr/ports/Mk/bsd.database.mk /usr/ports/databases/mysql50-tritonn-server/tritonn.mk
- Makefile の編集
Makefile の
.includeの前に tritonn.mk をインクルードさせるようにします。
.include "tritonn.mk" .include
これで、tritonn.mk を、TRITONN にあったように変更していけばいいと思う。
(その3に続く!?)
ちなみに、/usr/ports/Mk/bsd.database.mk を書き換えればいいじゃんと思ったのですが
友人にきいたところ、「ソコはイジっちゃらめぇー」とのことです。
というわけで、tritonn.mk なんてものを作ることにしましたが、
何かいい方法があったら、教えてください。
もしくは、BSD の流儀はこうだよ、みたいなのでも・・・