diff options
author | Amar Tumballi <amarts@redhat.com> | 2019-06-28 22:51:37 +0530 |
---|---|---|
committer | Amar Tumballi <amarts@redhat.com> | 2019-08-16 05:37:03 +0000 |
commit | 29cfe643cbcf7826375a3d52ff1865706a35bc38 (patch) | |
tree | add22d6f9e8b8afaae089625526d521c53c8b33c /rpc/xdr | |
parent | a24288c5c9da9137eb1d5d487bc7cd11af01b88b (diff) |
libglusterfs: remove dependency of rpc
Goal: 'libglusterfs' files shouldn't have any dependency outside of
the tree, specially the header files, shouldn't have '#include'
from outside the tree.
Fixes:
* Had to introduce libglusterd so, methods and structures required
for only mgmt/glusterd, and cli/ are separated from 'libglusterfs/'
* Remove rpc/xdr/gen from build, which was used mainly so
dependency for libglusterfs could be properly satisfied.
* Move rpcsvc_auth_data to client_t.h, so all dependencies could
be handled.
Updates: bz#1636297
Change-Id: I0e80243a5a3f4615e6fac6e1b947ad08a9363fce
Signed-off-by: Amar Tumballi <amarts@redhat.com>
Diffstat (limited to 'rpc/xdr')
-rw-r--r-- | rpc/xdr/gen/Makefile.am | 54 | ||||
-rw-r--r-- | rpc/xdr/src/Makefile.am | 45 |
2 files changed, 41 insertions, 58 deletions
diff --git a/rpc/xdr/gen/Makefile.am b/rpc/xdr/gen/Makefile.am deleted file mode 100644 index 3e799b4c644..00000000000 --- a/rpc/xdr/gen/Makefile.am +++ /dev/null @@ -1,54 +0,0 @@ -if BUILD_GNFS - NFS_XDRS = nlm4-xdr.x nsm-xdr.x acl3-xdr.x mount3udp.x -endif - -XDRGENFILES = glusterfs3-xdr.x glusterfs4-xdr.x cli1-xdr.x \ - rpc-common-xdr.x glusterd1-xdr.x portmap-xdr.x \ - changelog-xdr.x ${NFS_XDRS} - -XDRHEADERS = $(XDRGENFILES:.x=.h) -XDRSOURCES = $(XDRGENFILES:.x=.c) - -CLEANFILES = $(XDRSOURCES) $(XDRHEADERS) $(XDRGENFILES) - -# trick automake into doing BUILT_SOURCES magic -BUILT_SOURCES = $(XDRHEADERS) $(XDRSOURCES) - -xdrsrc=$(top_srcdir)/rpc/xdr/src -xdrdst=$(top_builddir)/rpc/xdr/src - -# make's dependency resolution may mean that it decides to run -# rpcgen again (unnecessarily), but as the .c file already exists, -# rpcgen will exit with an error, resulting in a build error. We -# could use a '-' (i.e. -@rpcgen ...) and suffer with noisy warnings -# in the build. Or we do this crufty thing instead. -$(XDRSOURCES): $(XDRGENFILES) - @if [ ! -e $(xdrdst)/$@ -o $(@:.c=.x) -nt $(xdrdst)/$@ ]; then \ - rpcgen -c -o $(xdrdst)/$@ $(@:.c=.x) ;\ - fi - -# d*mn sed in netbsd6 doesn't do -i (inline) -# (why are we still running smoke on netbsd6 and not netbsd7?) -$(XDRHEADERS): $(XDRGENFILES) - @if [ ! -e $(xdrdst)/$@ -o $(@:.h=.x) -nt $(xdrdst)/$@ ]; then \ - rpcgen -h -o $(@:.h=.tmp) $(@:.h=.x) && \ - sed -e '/#ifndef/ s/-/_/g' -e '/#define/ s/-/_/g' \ - -e '/#endif/ s/-/_/' -e 's/TMP_/H_/g' \ - $(@:.h=.tmp) > $(xdrdst)/$@ && \ - rm -f $(@:.h=.tmp) ; \ - fi - - -# link .x files when doing out-of-tree builds -# have to use .PHONY here to force it; all versions of make -# will think the file already exists "here" by virtue of the -# VPATH. And we have to have the .x file in $cwd in order to -# have rpcgen generate "nice" #include directives -# i.e. (nice): -# #include "acl3-xdr.h" -# versus (not nice): -# #include "../../../../foo/src/rpc/xdr/src/acl3-xdr.h" -.PHONY : $(XDRGENFILES) -$(XDRGENFILES): - @if [ ! -e $@ ]; then ln -s $(xdrsrc)/$@ . ; fi; - diff --git a/rpc/xdr/src/Makefile.am b/rpc/xdr/src/Makefile.am index 44a72cac53b..05f4167076f 100644 --- a/rpc/xdr/src/Makefile.am +++ b/rpc/xdr/src/Makefile.am @@ -36,8 +36,45 @@ nodist_libgfxdr_la_HEADERS = $(XDRHEADERS) libgfxdr_ladir = $(includedir)/glusterfs/rpc -CLEANFILES = $(XDRSOURCES) $(XDRHEADERS) +CLEANFILES = $(XDRSOURCES) $(XDRHEADERS) $(XDRGENFILES) -# Generate the .c and .h symlinks from the ../gen/*.x files -$(XDRSOURCES) $(XDRHEADERS): - $(MAKE) -C ../gen $^ +# trick automake into doing BUILT_SOURCES magic +BUILT_SOURCES = $(XDRHEADERS) $(XDRSOURCES) + +xdrsrc=$(top_srcdir)/rpc/xdr/src +xdrdst=$(top_builddir)/rpc/xdr/src + +# make's dependency resolution may mean that it decides to run +# rpcgen again (unnecessarily), but as the .c file already exists, +# rpcgen will exit with an error, resulting in a build error. We +# could use a '-' (i.e. -@rpcgen ...) and suffer with noisy warnings +# in the build. Or we do this crufty thing instead. +$(XDRSOURCES): $(XDRGENFILES) + @if [ ! -e $(xdrdst)/$@ -o $(@:.c=.x) -nt $(xdrdst)/$@ ]; then \ + rpcgen -c -o $(xdrdst)/$@ $(@:.c=.x) ;\ + fi + +# d*mn sed in netbsd6 doesn't do -i (inline) +# (why are we still running smoke on netbsd6 and not netbsd7?) +$(XDRHEADERS): $(XDRGENFILES) + @if [ ! -e $(xdrdst)/$@ -o $(@:.h=.x) -nt $(xdrdst)/$@ ]; then \ + rpcgen -h -o $(@:.h=.tmp) $(@:.h=.x) && \ + sed -e '/#ifndef/ s/-/_/g' -e '/#define/ s/-/_/g' \ + -e '/#endif/ s/-/_/' -e 's/TMP_/H_/g' \ + $(@:.h=.tmp) > $(xdrdst)/$@ && \ + rm -f $(@:.h=.tmp) ; \ + fi + + +# link .x files when doing out-of-tree builds +# have to use .PHONY here to force it; all versions of make +# will think the file already exists "here" by virtue of the +# VPATH. And we have to have the .x file in $cwd in order to +# have rpcgen generate "nice" #include directives +# i.e. (nice): +# #include "acl3-xdr.h" +# versus (not nice): +# #include "../../../../foo/src/rpc/xdr/src/acl3-xdr.h" +.PHONY : $(XDRGENFILES) +$(XDRGENFILES): + @if [ ! -e $@ ]; then ln -s $(xdrsrc)/$@ . ; fi; |