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