Makefile problems with new libs

Lonnie J. Borntreger lonnie at borntreger.com
Wed Jan 19 07:43:59 GMT 2000


1 - Solaris requires the use of -fPIC (due to the number of objects)
not -fpic which is selected during the configure for some reason.  (I have
no solution since I'm not familiar with the configure tool, I just fix it in
my file.)
2 - libs are not installed (FIX INCLUDED)
3 - Doing this in the makefile (FIX INCLUDED)
SMBLIB = bin/libsmb.so
RPCLIB = bin/libmsrpc.so

bin/lsarpcd: $(SMBLIB) $(RPCLIB) $(LSARPCD_OBJ) bin/.dummy
  @$(CC) $(FLAGS) -o $@ $(SMBLIB) $(RPCLIB) $(LSARPCD_OBJ) $(LDFLAGS)
$(LIBS)

will result in:
gto-> ldd lsarpcd
        bin/libsmb.so =>     (file not found)
        bin/libmsrpc.so =>   (file not found)
        libsec.so.1 =>   /usr/lib/libsec.so.1
        libsocket.so.1 =>        /usr/lib/libsocket.so.1
        libnsl.so.1 =>   /usr/lib/libnsl.so.1
        libdl.so.1 =>    /usr/lib/libdl.so.1
        libpam.so.1 =>   /usr/lib/libpam.so.1
        libcurses.so.1 =>        /usr/lib/libcurses.so.1
        libc.so.1 =>     /usr/lib/libc.so.1
        libmp.so.2 =>    /usr/lib/libmp.so.2

Don't think that's what is wanted since it means that /usr/local/samba must
be in the LD_LIBRARY_PATH for the binaries to run.

***SOLUTION FOR ISSUE 3:
Could do this in Makefile.in (the -L will make sure that the new libraries
are used, not the old installed ones -- need to change all binaries not just
lsarpcd):
SMBLIB = bin/libsmb.so
RPCLIB = bin/libmsrpc.so
SMBLIBS = -L $(srcdir)/bin -lsmb -L $(srcdir)/bin -lmsrpc
FLAGS += -R $(LIBDIR)

bin/lsarpcd: $(SMBLIB) $(RPCLIB) $(LSARPCD_OBJ) bin/.dummy
  @$(CC) $(FLAGS) -o $@ $(SMBLIBS) $(LSARPCD_OBJ) $(LDFLAGS) $(LIBS)
--
Then install libsmb.so and libmsrpc.so into $(LIBDIR).  This will make it
all run along without anybody having to change system rc scripts to find the
libs when starting samba during a system boot.

***FIX FOR ISSUE 2 & 3:
I attached a diff -u for Makefile.in.  I used installscripts.sh since it had
the functionality necessary to install the libs. I also added to the revert
so the libs could be rolled back also.

I know the fix will work for Solaris and other SVR4 compatible UNIXes.
Don't know about IRIX.


TTFN,
Lonnie Borntreger
lonnie at borntreger.com
http://www.borntreger.com/

============== DIFF ====================
--- Makefile.in.old	Wed Jan 19 01:20:15 2000
+++ Makefile.in	Wed Jan 19 01:37:05 2000
@@ -111,6 +111,8 @@

 SMBLIB = bin/libsmb.so @LIBSMB32@
 RPCLIB = bin/libmsrpc.so @LIBMSRPC32@
+SMBLIBS=-L $(srcdir)/bin -lsmb -L $(srcdir)/bin -lmsrpc
+CFLAGS += -R $(LIBDIR)

 LIBSTATUS_OBJ = lib/util_status.o

@@ -286,7 +288,7 @@
            $(LOCKING_OBJ) \
            $(SIDDB_OBJ) \
 		$(LIBSTATUS_OBJ) $(PRINTING_OBJ) $(PROFILE_OBJ) $(LIB_OBJ)
-
+

 SRVSVCD_OBJ = $(MSRPCD_OBJ) $(SRVSVCD_OBJ1) $(PARAM_OBJ) \
 		$(UBIQX_OBJ) \
@@ -589,44 +591,44 @@

 bin/smbd: $(SMBLIB) $(RPCLIB) $(SMBD_OBJ) bin/.dummy
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBLIB) $(RPCLIB) $(SMBD_OBJ) \
+	@$(CC) $(FLAGS) -o $@ $(SMBLIBS) $(SMBD_OBJ) \
 	$(LDFLAGS) $(LIBS)

 bin/svcctld: $(SMBLIB) $(RPCLIB) $(SVCCTLD_OBJ) bin/.dummy
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBLIB) $(RPCLIB) $(SVCCTLD_OBJ) $(LDFLAGS)
$(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBLIBS) $(SVCCTLD_OBJ) $(LDFLAGS) $(LIBS)

 bin/lsarpcd: $(SMBLIB) $(RPCLIB) $(LSARPCD_OBJ) bin/.dummy
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBLIB) $(RPCLIB) $(LSARPCD_OBJ) $(LDFLAGS)
$(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBLIBS) $(LSARPCD_OBJ) $(LDFLAGS) $(LIBS)

 bin/spoolssd: $(SMBLIB) $(RPCLIB) $(SPOOLSSD_OBJ) bin/.dummy
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBLIB) $(RPCLIB) $(SPOOLSSD_OBJ) $(LDFLAGS)
$(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBLIBS) $(SPOOLSSD_OBJ) $(LDFLAGS) $(LIBS)

 bin/srvsvcd: $(SMBLIB) $(RPCLIB) $(SRVSVCD_OBJ) bin/.dummy
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBLIB) $(RPCLIB) $(SRVSVCD_OBJ) $(LDFLAGS)
$(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBLIBS) $(SRVSVCD_OBJ) $(LDFLAGS) $(LIBS)

 bin/wkssvcd: $(SMBLIB) $(RPCLIB) $(WKSSVCD_OBJ) bin/.dummy
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBLIB) $(RPCLIB) $(WKSSVCD_OBJ) $(LDFLAGS)
$(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBLIBS) $(WKSSVCD_OBJ) $(LDFLAGS) $(LIBS)

 bin/browserd: $(SMBLIB) $(RPCLIB) $(BROWSERD_OBJ) bin/.dummy
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBLIB) $(RPCLIB) $(BROWSERD_OBJ) $(LDFLAGS)
$(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBLIBS) $(BROWSERD_OBJ) $(LDFLAGS) $(LIBS)

 bin/winregd: $(SMBLIB) $(RPCLIB) $(WINREGD_OBJ) bin/.dummy
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBLIB) $(RPCLIB) $(WINREGD_OBJ) $(LDFLAGS)
$(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBLIBS) $(WINREGD_OBJ) $(LDFLAGS) $(LIBS)

 bin/netlogond: $(SMBLIB) $(RPCLIB) $(NETLOGOND_OBJ) bin/.dummy
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBLIB) $(RPCLIB) $(NETLOGOND_OBJ) $(LDFLAGS)
$(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBLIBS) $(NETLOGOND_OBJ) $(LDFLAGS) $(LIBS)

 bin/samrd: $(SMBLIB) $(RPCLIB) $(SAMRD_OBJ) bin/.dummy
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBLIB) $(RPCLIB) $(SAMRD_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBLIBS) $(SAMRD_OBJ) $(LDFLAGS) $(LIBS)

 bin/nmbd: $(SMBLIB) $(NMBD_OBJ) bin/.dummy
 	@echo Linking $@
@@ -634,7 +636,7 @@

 bin/swat: $(SMBLIB) $(RPCLIB) $(SWAT_OBJ) bin/.dummy
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBLIB) $(RPCLIB) $(SWAT_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBLIBS) $(SWAT_OBJ) $(LDFLAGS) $(LIBS)

 bin/smbrun: $(SMBRUN_OBJ) bin/.dummy
 	@echo Linking $@
@@ -642,7 +644,7 @@

 bin/rpcclient: $(SMBLIB) $(RPCLIB) $(RPCCLIENT_OBJ) bin/.dummy
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBLIB) $(RPCLIB) $(RPCCLIENT_OBJ) $(LDFLAGS)
$(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBLIBS) $(RPCCLIENT_OBJ) $(LDFLAGS) $(LIBS)

 bin/smbclient: $(SMBLIB) $(CLIENT_OBJ) bin/.dummy
 	@echo Linking $@
@@ -650,15 +652,15 @@

 bin/smbmount: $(SMBLIB) $(RPCLIB) $(MOUNT_OBJ) bin/.dummy
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBLIB) $(RPCLIB) $(MOUNT_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBLIBS) $(MOUNT_OBJ) $(LDFLAGS) $(LIBS)

 bin/smbmnt: $(SMBLIB) $(RPCLIB) $(MNT_OBJ) bin/.dummy
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBLIB) $(RPCLIB) $(MNT_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBLIBS) $(MNT_OBJ) $(LDFLAGS) $(LIBS)

 bin/smbumount: $(SMBLIB) $(RPCLIB) $(UMOUNT_OBJ) bin/.dummy
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBLIB) $(RPCLIB) $(UMOUNT_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBLIBS) $(UMOUNT_OBJ) $(LDFLAGS) $(LIBS)

 bin/testparm: $(TESTPARM_OBJ) bin/.dummy
 	@echo Linking $@
@@ -674,7 +676,7 @@

 bin/smbpasswd: $(SMBLIB) $(RPCLIB) $(SMBPASSWD_OBJ) bin/.dummy
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBLIB) $(RPCLIB) $(SMBPASSWD_OBJ) $(LDFLAGS)
$(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBLIBS) $(SMBPASSWD_OBJ) $(LDFLAGS) $(LIBS)

 bin/make_smbcodepage: $(MAKE_SMBCODEPAGE_OBJ) bin/.dummy
 	@echo Linking $@
@@ -690,11 +692,11 @@

 bin/smbtorture: $(SMBLIB) $(RPCLIB) $(SMBTORTURE_OBJ) bin/.dummy
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBLIB) $(RPCLIB) $(SMBTORTURE_OBJ) $(LDFLAGS)
$(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBLIBS) $(SMBTORTURE_OBJ) $(LDFLAGS) $(LIBS)

 bin/rpctorture: $(SMBLIB) $(RPCLIB) $(RPCTORTURE_OBJ) bin/.dummy
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBLIB) $(RPCLIB) $(RPCTORTURE_OBJ) $(LDFLAGS)
$(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBLIBS) $(RPCTORTURE_OBJ) $(LDFLAGS) $(LIBS)

 bin/smb-client: $(SMB_CLIENT_OBJ) bin/.dummy
 	@echo Linking $@
@@ -706,11 +708,11 @@

 bin/smb-agent: $(SMBLIB) $(RPCLIB) $(SMB_AGENT_OBJ) bin/.dummy
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBLIB) $(RPCLIB) $(SMB_AGENT_OBJ) $(LDFLAGS)
$(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBLIBS) $(SMB_AGENT_OBJ) $(LDFLAGS) $(LIBS)

 bin/smbfilter: $(SMBLIB) $(RPCLIB) $(SMBFILTER_OBJ) bin/.dummy
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBLIB) $(RPCLIB) $(SMBFILTER_OBJ) $(LDFLAGS)
$(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBLIBS) $(SMBFILTER_OBJ) $(LDFLAGS) $(LIBS)

 bin/debug2html: $(DEBUG2HTML_OBJ) bin/.dummy
 	@echo Linking $@
@@ -726,9 +728,9 @@

 bin/smbsh: $(SMBLIB) $(RPCLIB) $(SMBSH_OBJ) bin/.dummy
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBLIB) $(RPCLIB) $(SMBSH_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBLIBS) $(SMBSH_OBJ) $(LDFLAGS) $(LIBS)

-install: installbin installman installscripts installcp installswat
+install: installbin installlib installman installscripts installcp
installswat

 installdirs:
 	$(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) \
@@ -738,6 +740,9 @@
 	@$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(BASEDIR)
$(SBINDIR) $(LIBDIR) $(VARDIR) $(SPROGS)
 	@$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(BASEDIR)
$(BINDIR) $(LIBDIR) $(VARDIR) $(PROGS)

+installlib: all installdirs
+	@$(SHELL) $(srcdir)/script/installscripts.sh $(INSTALLPERMS) $(LIBDIR)
$(SMBLIB) $(RPCLIB)
+
 installscripts: installdirs
 	@$(SHELL) $(srcdir)/script/installscripts.sh $(INSTALLPERMS) $(BINDIR)
$(patsubst %,$(srcdir)/%,$(SCRIPTS))

@@ -751,6 +756,7 @@
 revert:
 	@$(SHELL) $(srcdir)/script/revert.sh $(SBINDIR) $(SPROGS)
 	@$(SHELL) $(srcdir)/script/revert.sh $(BINDIR) $(PROGS) $(SCRIPTS)
+	@$(SHELL) $(srcdir)/script/revert.sh $(LIBDIR) $(SMBLIB) $(RPCLIB)

 installman:
 	@$(SHELL) $(srcdir)/script/installman.sh $(MANDIR) $(srcdir) "@ROFF@"



More information about the samba-ntdom mailing list