32bit版と64bit版を両方コンパイルします。
Solaris 11ではLDAP SDKではなく、システムのOpenLDAPのライブラリをリ
ンクするためにconfigureスクリプトを修正します。
--- configure.orig Mon Nov 8 09:58:44 2010 +++ configure Tue Nov 11 16:24:09 2014 @@ -5528,13 +5528,13 @@ fi - echo "$as_me:$LINENO: checking for main in -lldap" >&5 -echo $ECHO_N "checking for main in -lldap... $ECHO_C" >&6 + echo "$as_me:$LINENO: checking for main in -lldap-2.4" >&5 +echo $ECHO_N "checking for main in -lldap-2.4... $ECHO_C" >&6 if test "${ac_cv_lib_ldap_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lldap $LIBS" +LIBS="-lldap-2.4 $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -5587,7 +5587,7 @@ echo "$as_me:$LINENO: result: $ac_cv_lib_ldap_main" >&5 echo "${ECHO_T}$ac_cv_lib_ldap_main" >&6 if test $ac_cv_lib_ldap_main = yes; then - LIBS="-lldap $LIBS" found_ldap_lib=yes + LIBS="-lldap-2.4 $LIBS" found_ldap_lib=yes fi fi
次のようなスクリプトを実行します。
setup.sh
#!/bin/sh if [ $# -eq 1 ]; then . ../setup-pre.sh $1 else . ../setup-pre.sh fi if [ "$ISA" = "sparcv9" -o "$ISA" = "amd64" ]; then CFLAGS="-M /usr/lib/ld/$ISA/map.default $CFLAGS" LDFLAGS="-L/usr/lib$LIBISA -R/usr/lib$LIBISA" export LDFLAGS fi #sdk="auto" #sdk="netscape5" sdk="openldap" case "$sdk" in "netscape*") sdkpath="/usr" ;; "openldap") if [ `uname -r` = "5.11" ]; then CPPFLAGS="-I/usr/include/openldap" export CPPFLAGS sdkpath="/usr" else sdkpath="/usr/local" fi ;; *) sdkpath="/usr" ;; esac ./configure --prefix=/usr/local \ --sysconfdir=/etc \ --with-ldap-lib=$sdk \ --with-ldap-dir=$sdkpath \ --with-ldap-conf-file=/etc/ldap.conf \ --with-ldap-secret-file=/etc/ldap.secret
% ./setup.sh [ sparcv8plus | sparcv9 | i386 | amd64 ] && gmake
sparcv9 or amd64ではMakefileを修正します。
- $(mkinstalldirs) $(DESTDIR)$(libdir)/security + $(mkinstalldirs) $(DESTDIR)$(libdir)/security/sparcv9 - $(INSTALL_PROGRAM) -o root -g root pam_ldap.so $(DESTDIR)$(libdir)/security/pam_ldap.so.1 + $(INSTALL_PROGRAM) -o root -g root pam_ldap.so $(DESTDIR)$(libdir)/security/sparcv9/pam_ldap.so.1 - (cd $(DESTDIR)$(libdir)/security; rm -f pam_ldap.so; ln -s pam_ldap.so.1 pam_ldap.so) + (cd $(DESTDIR)$(libdir)/security/sparcv9; rm -f pam_ldap.so; ln -s pam_ldap.so.1 pam_ldap.so)
特にSolaris 10以前のsparcv9 or amd64ではライブラリの検索パスも変更します。
- -L/usr/local/lib -R/usr/local/lib + -L/usr/local/lib/64 -R/usr/local/lib/64
setup.shを実行してmakeします。
% ./setup.sh [sparcv9|sparcv8plus|amd64|i386] % gmake # gmake install