2..2.4-pre Makefile inconsistencies - Fix enclosed
Richard Bollinger
rabollinger at attbi.com
Tue Apr 30 14:45:02 GMT 2002
OK... I've added what it takes to fix the other OS equivalents of SONAME setting... with further
changes to configure.in Heres a summary of the different approaches:
1) As in CVS:
a) tricky recursive Makefile entries allow $@ to be the bare shared library name while really
building nsswitch/$@ or bin/$@
b) was missing ",soname=\$@" in LDSHFLAGS for Linux to make it work like the other OS's
c) doesn't accomodate special situations as where SONAME needs a version number appended
2) Revised approach:
a) configure.in needs changes to split out SONAMEFLAG from LDSHFLAGS settings for every OS
b) Makefile.in needs @SONAMEFLAG@`basename $@` added to each shared link
c) easy to fix special case for libsmbclient.so
d) only tested on Linux and Solaris
Rich B
--- ../source/configure.in Mon Apr 29 07:16:35 2002
+++ ./configure.in Tue Apr 30 17:04:48 2002
@@ -851,7 +851,8 @@
;;
*solaris*) AC_DEFINE(SUNOS5)
BLDSHARED="true"
- LDSHFLAGS="-h \$@ -G"
+ LDSHFLAGS="-G"
+ SONAMEFLAG="-h "
if test "${ac_cv_prog_CC}" = "gcc"; then
PICFLAG="-fPIC"
else
@@ -863,11 +864,13 @@
;;
*sunos*) AC_DEFINE(SUNOS4)
BLDSHARED="true"
- LDSHFLAGS="-Wl,-h,\$@ -G"
+ LDSHFLAGS="-G"
+ SONAMEFLAG="-Wl,-h,"
PICFLAG="-KPIC" # Is this correct for SunOS
;;
*bsd*) BLDSHARED="true"
- LDSHFLAGS="-Wl,-soname,\$@ -shared"
+ LDSHFLAGS="-shared"
+ SONAMEFLAG="-Wl,-soname,"
PICFLAG="-fPIC"
AC_DEFINE(STAT_ST_BLOCKSIZE,512)
;;
@@ -878,7 +881,8 @@
esac
ATTEMPT_WRAP32_BUILD=yes
BLDSHARED="true"
- LDSHFLAGS="-set_version sgi1.0 -soname \$@ -shared"
+ LDSHFLAGS="-set_version sgi1.0 -shared"
+ SONAMEFLAG="-soname "
SHLD="\${LD}"
if test "${ac_cv_prog_CC}" = "gcc"; then
PICFLAG="-fPIC"
@@ -899,7 +903,8 @@
if test $ac_cv_prog_cc_Ae = yes; then
BLDSHARED="true"
SHLD="/usr/bin/ld"
- LDSHFLAGS="-B symbolic -b -z +h \$@"
+ LDSHFLAGS="-B symbolic -b -z"
+ SONAMEFLAG="+h "
PICFLAG="+z"
fi
DYNEXP="-Wl,-E"
@@ -908,13 +913,15 @@
*qnx*) AC_DEFINE(QNX);;
*osf*) AC_DEFINE(OSF1)
BLDSHARED="true"
- LDSHFLAGS="-Wl,-soname,\$@ -shared"
+ LDSHFLAGS="-shared"
+ SONAMEFLAG="-Wl,-soname,"
PICFLAG="-fPIC"
;;
*sco*) AC_DEFINE(SCO);;
*unixware*) AC_DEFINE(UNIXWARE)
BLDSHARED="true"
- LDSHFLAGS="-Wl,-soname,\$@ -shared"
+ LDSHFLAGS="-shared"
+ SONAMEFLAG="-Wl,-soname,"
PICFLAG="-KPIC"
;;
*next2*) AC_DEFINE(NEXT2);;
@@ -2674,10 +2681,10 @@
WINBIND_STARGETS="bin/winbindd"
case "$host_os" in
*irix*)
- WINBIND_LTARGETS="libns_winbind.so"
+ WINBIND_LTARGETS="nsswitch/libns_winbind.so"
;;
*)
- WINBIND_LTARGETS="libnss_winbind.so"
+ WINBIND_LTARGETS="nsswitch/libnss_winbind.so"
;;
esac
--- ../source/Makefile.in Tue Apr 30 07:45:16 2002
+++ ./Makefile.in Tue Apr 30 13:46:26 2002
@@ -91,7 +91,7 @@
WINBIND_PROGS = @WINBIND_TARGETS@
WINBIND_SPROGS = @WINBIND_STARGETS@
WINBIND_PAM_PROGS = @WINBIND_PAM_TARGETS@
-WINBIND_LPROGS = nsswitch/@WINBIND_LTARGETS@
+WINBIND_LPROGS = @WINBIND_LTARGETS@
SPROGS = bin/smbd bin/nmbd bin/swat
PROGS1 = bin/smbclient bin/smbspool bin/testparm bin/testprns bin/smbstatus bin/smbcontrol
bin/tdbbackup bin/make_printerdef @RUNPROG@
@@ -629,62 +629,48 @@
@$(CC) $(FLAGS) -o $@ $(SMBSH_OBJ) $(LDFLAGS) $(LIBS)
bin/smbwrapper. at SHLIBEXT@: $(PICOBJS) bin/.dummy
- $(MAKE) smbwrapper. at SHLIBEXT@
-
-smbwrapper. at SHLIBEXT@: $(PICOBJS) bin/.dummy
- @echo Linking shared library bin/$@
- @$(SHLD) @LDSHFLAGS@ -o bin/$@ $(PICOBJS) $(LIBS)
+ @echo Linking shared library $@
+ @$(SHLD) @LDSHFLAGS@ -o $@ $(PICOBJS) $(LIBS) \
+ @SONAMEFLAG@`basename $@`
bin/smbwrapper.32. at SHLIBEXT@: $(PICOBJS32) bin/.dummy
- $(MAKE) smbwrapper.32. at SHLIBEXT@
-
-smbwrapper.32. at SHLIBEXT@: $(PICOBJS32) bin/.dummy
- @echo Linking shared library bin/$@
- @$(SHLD) -32 @LDSHFLAGS@ -o bin/$@ $(PICOBJS32) $(LIBS)
+ @echo Linking shared library $@
+ @$(SHLD) -32 @LDSHFLAGS@ -o $@ $(PICOBJS32) $(LIBS) \
+ @SONAMEFLAG@`basename $@`
bin/libsmbclient. at SHLIBEXT@: $(LIBSMBCLIENT_PICOBJS) bin/.dummy
- $(MAKE) libsmbclient. at SHLIBEXT@
-
-libsmbclient. at SHLIBEXT@: $(LIBSMBCLIENT_PICOBJS) bin/.dummy
- @echo Linking libsmbclient shared library bin/$@
- @$(SHLD) @LDSHFLAGS@ -o bin/$@ $(LIBSMBCLIENT_PICOBJS) $(LIBS) \
- @SONAMEFLAG at libsmbclient.so.$(LIBSMBCLIENT_MAJOR)
+ @echo Linking libsmbclient shared library $@
+ @$(SHLD) @LDSHFLAGS@ -o $@ $(LIBSMBCLIENT_PICOBJS) $(LIBS) \
+ @SONAMEFLAG@`basename $@`.$(LIBSMBCLIENT_MAJOR)
bin/libsmbclient.a: $(LIBSMBCLIENT_PICOBJS) bin/.dummy
@echo Linking libsmbclient non-shared library $@
@-$(AR) -rc $@ $(LIBSMBCLIENT_PICOBJS)
bin/pam_smbpass. at SHLIBEXT@: $(PAM_SMBPASS_OBJ) bin/.dummy
- $(MAKE) pam_smbpass. at SHLIBEXT@
-
-pam_smbpass. at SHLIBEXT@: $(PAM_SMBPASS_OBJ) bin/.dummy
- @echo Linking shared library bin/$@
- $(SHLD) @LDSHFLAGS@ -symbolic -o bin/$@ $(PAM_SMBPASS_OBJ) $(LDFLAGS) -lpam $(DYNEXP) $(LIBS) -lc
+ @echo Linking shared library $@
+ $(SHLD) @LDSHFLAGS@ -symbolic -o $@ $(PAM_SMBPASS_OBJ) $(LDFLAGS) -lpam $(DYNEXP) $(LIBS) -lc \
+ @SONAMEFLAG@`basename $@`
nsswitch/libnss_wins.so: $(NSS_OBJ)
- $(MAKE) libnss_wins.so
-
-libnss_wins.so: $(NSS_OBJ)
- @echo "Linking nsswitch/$@"
- @$(SHLD) @LDSHFLAGS@ -o nsswitch/$@ $(NSS_OBJ) -lc
+ @echo "Linking $@"
+ @$(SHLD) @LDSHFLAGS@ -o $@ $(NSS_OBJ) -lc \
+ @SONAMEFLAG@`basename $@`
bin/winbindd: $(WINBINDD_OBJ) bin/.dummy
@echo Linking $@
@$(LINK) -o $@ $(WINBINDD_OBJ) $(DYNEXP) $(LIBS)
-nsswitch/@WINBIND_LTARGETS@: $(WINBIND_NSS_PICOBJS)
- $(MAKE) @WINBIND_LTARGETS@
-
@WINBIND_LTARGETS@: $(WINBIND_NSS_PICOBJS)
- @echo "Linking nsswitch/$@"
- @$(SHLD) @LDSHFLAGS@ -o nsswitch/$@ $(WINBIND_NSS_PICOBJS) @WINBIND_NSS_EXTRA_LIBS@
+ @echo "Linking $@"
+ @$(SHLD) @LDSHFLAGS@ -o $@ $(WINBIND_NSS_PICOBJS) @WINBIND_NSS_EXTRA_LIBS@ \
+ @SONAMEFLAG@`basename $@`
nsswitch/pam_winbind.so: $(PAM_WINBIND_OBJ)
- $(MAKE) pam_winbind.so
+ @echo Linking $@
+ @$(SHLD) @LDSHFLAGS@ -o $@ $(PAM_WINBIND_OBJ) \
+ @SONAMEFLAG@`basename $@`
-pam_winbind.so: $(PAM_WINBIND_OBJ)
- @echo Linking nsswitch/$@
- @$(SHLD) @LDSHFLAGS@ -o nsswitch/$@ $(PAM_WINBIND_OBJ)
bin/wbinfo: $(WBINFO_OBJ) $(PARAM_OBJ) $(LIB_OBJ) $(NOPROTO_OBJ) \
$(UBIQX_OBJ) @BUILD_POPT@ bin/.dummy
More information about the samba-technical
mailing list