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