150e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o# 250e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o# This is a Makefile stub which handles the creation of Linux ELF shared 350e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o# libraries. 450e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o# 550e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o# In order to use this stub, the following makefile variables must be defined. 650e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o# 750e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o# ELF_VERSION = 1.0 874becf3c0a065f8d64e07ce4d31f9fe53be91d62Theodore Ts'o# ELF_SO_VERSION = 1 950e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o# ELF_IMAGE = libce 1050e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o# ELF_MYDIR = et 1150e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o# ELF_INSTALL_DIR = $(SHLIBDIR) 1221c84b71e205b5ab13f14343da5645dcc985856dTheodore Ts'o# ELF_OTHER_LIBS = -lc 1350e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o 1402ef19621032044c1488931b3f970e11dca0afe0Theodore Ts'oall:: image 1550e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o 163f546fcc27e9bfca8d365c4d78c6e6c99ca32512Theodore Ts'oreal-subdirs:: Makefile 17c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o $(E) " MKDIR elfshared" 18c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o $(Q) mkdir -p elfshared 1950e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o 2050e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'oELF_LIB = $(ELF_IMAGE).so.$(ELF_VERSION) 21297f47a13edce54d08517182e714083a0a7f196cTheodore Ts'oELF_SONAME = $(ELF_IMAGE).so.$(ELF_SO_VERSION) 2250e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o 2350e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'oimage: $(ELF_LIB) 2450e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o 2550e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o$(ELF_LIB): $(OBJS) 26c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o $(E) " GEN_ELF_SOLIB $(ELF_LIB)" 270eb9fb99da686ac87bbd58554ad88f9567552ae9Theodore Ts'o $(Q) (cd elfshared; $(CC) -o $(ELF_LIB) \ 280eb9fb99da686ac87bbd58554ad88f9567552ae9Theodore Ts'o -L$(top_builddir)/../lib $(LDFLAGS_SHLIB) -fPIC -shared \ 29d5aa6a82b37a0e78d8882601e6ad9da9d9dcb4daTheodore Ts'o -Wl,-soname,$(ELF_SONAME) $(OBJS) $(ELF_OTHER_LIBS)) 30c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o $(Q) $(MV) elfshared/$(ELF_LIB) . 31c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o $(Q) $(RM) -f ../$(ELF_LIB) ../$(ELF_IMAGE).so ../$(ELF_SONAME) 325aa6c3f61c0559f03b68bdeef886f34ece106757Theodore Ts'o $(Q) (cd ..; $(LN) $(LINK_BUILD_FLAGS) \ 335aa6c3f61c0559f03b68bdeef886f34ece106757Theodore Ts'o `echo $(my_dir) | sed -e 's;lib/;;'`/$(ELF_LIB) $(ELF_LIB)) 345aa6c3f61c0559f03b68bdeef886f34ece106757Theodore Ts'o $(Q) (cd ..; $(LN) $(LINK_BUILD_FLAGS) $(ELF_LIB) $(ELF_IMAGE).so) 355aa6c3f61c0559f03b68bdeef886f34ece106757Theodore Ts'o $(Q) (cd ..; $(LN) $(LINK_BUILD_FLAGS) $(ELF_LIB) $(ELF_SONAME)) 3650e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o 371e3472c5f37ca3686dd69b079d4d02a302f5798dTheodore Ts'oinstalldirs-elf-lib:: 38c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o $(E) " MKINSTALLDIRS $(ELF_INSTALL_DIR) $(libdir)" 39c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o $(Q) $(MKINSTALLDIRS) $(DESTDIR)$(ELF_INSTALL_DIR) \ 4039b503491b25ba25fcdc74ea27887d291875d612Theodore Ts'o $(DESTDIR)$(libdir) 4150e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o 421e3472c5f37ca3686dd69b079d4d02a302f5798dTheodore Ts'oinstalldirs:: installdirs-elf-lib 431e3472c5f37ca3686dd69b079d4d02a302f5798dTheodore Ts'o 44183c73b02615acc33fc22e89b8cc7fdc5f22ee0eTheodore Ts'oinstall-shlibs install:: $(ELF_LIB) installdirs-elf-lib $(DEP_INSTALL_SYMLINK) 45c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o $(E) " INSTALL-ELF-LIB $(ELF_INSTALL_DIR)/$(ELF_LIB)" 46c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o $(Q) $(INSTALL_PROGRAM) $(ELF_LIB) $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB) 47c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o $(E) " SYMLINK $(ELF_INSTALL_DIR)/$(ELF_SONAME)" 48183c73b02615acc33fc22e89b8cc7fdc5f22ee0eTheodore Ts'o $(Q) $(INSTALL_SYMLINK) $(ELF_INSTALL_DIR)/$(ELF_LIB) \ 49183c73b02615acc33fc22e89b8cc7fdc5f22ee0eTheodore Ts'o $(ELF_INSTALL_DIR)/$(ELF_SONAME) $(DESTDIR) 50c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o $(E) " SYMLINK $(libdir)/$(ELF_IMAGE).so" 51183c73b02615acc33fc22e89b8cc7fdc5f22ee0eTheodore Ts'o $(Q) $(INSTALL_SYMLINK) $(ELF_INSTALL_DIR)/$(ELF_SONAME) \ 52183c73b02615acc33fc22e89b8cc7fdc5f22ee0eTheodore Ts'o $(libdir)/$(ELF_IMAGE).so $(DESTDIR) 53c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o $(E) " LDCONFIG" 54c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o $(Q) -$(LDCONFIG) 55522798d3428807800d8471f5ac3050b82aa9de97Theodore Ts'o 56522798d3428807800d8471f5ac3050b82aa9de97Theodore Ts'oinstall-strip: install 57c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o $(E) " STRIP-LIB $(ELF_INSTALL_DIR)/$(ELF_LIB)" 58c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o $(Q) $(STRIP) --strip-unneeded --remove-section=.comment \ 59522798d3428807800d8471f5ac3050b82aa9de97Theodore Ts'o --remove-section=.note $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB) 60522798d3428807800d8471f5ac3050b82aa9de97Theodore Ts'o 61522798d3428807800d8471f5ac3050b82aa9de97Theodore Ts'oinstall-shlibs-strip: install-shlibs 62c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o $(E) " STRIP-LIB $(ELF_INSTALL_DIR)/$(ELF_LIB)" 63c13351f6c53f175696044c0203bb3009af606c64Theodore Ts'o $(Q) $(STRIP) --strip-unneeded --remove-section=.comment \ 64522798d3428807800d8471f5ac3050b82aa9de97Theodore Ts'o --remove-section=.note $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB) 6539b503491b25ba25fcdc74ea27887d291875d612Theodore Ts'o 6639b503491b25ba25fcdc74ea27887d291875d612Theodore Ts'ouninstall-shlibs uninstall:: 6739b503491b25ba25fcdc74ea27887d291875d612Theodore Ts'o $(RM) -f $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB) \ 6839b503491b25ba25fcdc74ea27887d291875d612Theodore Ts'o $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_SONAME) \ 6939b503491b25ba25fcdc74ea27887d291875d612Theodore Ts'o $(DESTDIR)$(libdir)/$(ELF_IMAGE).so 7020562a48a57c521a2853cf839abe8d754ba844e0Theodore Ts'o -$(LDCONFIG) 7150e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o 7250e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'oclean:: 7350e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o $(RM) -rf elfshared 7450e1e10fa0ac12a3e2a9d20a75ee9041873cda96Theodore Ts'o $(RM) -f $(ELF_LIB) 7562c06f790c4920ec2721515e36d599751f6d4d2dTheodore Ts'o $(RM) -f ../$(ELF_LIB) ../$(ELF_IMAGE).so ../$(ELF_SONAME) 76