1*6a54128fSAndroid Build Coastguard Worker# 2*6a54128fSAndroid Build Coastguard Worker# This is a Makefile stub which handles the creation of Linux ELF shared 3*6a54128fSAndroid Build Coastguard Worker# libraries. 4*6a54128fSAndroid Build Coastguard Worker# 5*6a54128fSAndroid Build Coastguard Worker# In order to use this stub, the following makefile variables must be defined. 6*6a54128fSAndroid Build Coastguard Worker# 7*6a54128fSAndroid Build Coastguard Worker# ELF_VERSION = 1.0 8*6a54128fSAndroid Build Coastguard Worker# ELF_SO_VERSION = 1 9*6a54128fSAndroid Build Coastguard Worker# ELF_IMAGE = libce 10*6a54128fSAndroid Build Coastguard Worker# ELF_MYDIR = et 11*6a54128fSAndroid Build Coastguard Worker# ELF_INSTALL_DIR = $(SHLIBDIR) 12*6a54128fSAndroid Build Coastguard Worker# ELF_OTHER_LIBS = -lc 13*6a54128fSAndroid Build Coastguard Worker 14*6a54128fSAndroid Build Coastguard Workerall:: image 15*6a54128fSAndroid Build Coastguard Worker 16*6a54128fSAndroid Build Coastguard Workerreal-subdirs:: Makefile 17*6a54128fSAndroid Build Coastguard Worker $(E) " MKDIR elfshared" 18*6a54128fSAndroid Build Coastguard Worker $(Q) mkdir -p elfshared 19*6a54128fSAndroid Build Coastguard Worker 20*6a54128fSAndroid Build Coastguard WorkerELF_LIB = $(ELF_IMAGE).so.$(ELF_VERSION) 21*6a54128fSAndroid Build Coastguard WorkerELF_SONAME = $(ELF_IMAGE).so.$(ELF_SO_VERSION) 22*6a54128fSAndroid Build Coastguard Worker 23*6a54128fSAndroid Build Coastguard Workerimage: $(ELF_LIB) 24*6a54128fSAndroid Build Coastguard Worker 25*6a54128fSAndroid Build Coastguard Worker$(ELF_LIB): $(OBJS) 26*6a54128fSAndroid Build Coastguard Worker $(E) " GEN_ELF_SOLIB $(ELF_LIB)" 27*6a54128fSAndroid Build Coastguard Worker $(Q) (cd elfshared; $(CC) -o $(ELF_LIB) \ 28*6a54128fSAndroid Build Coastguard Worker -L$(top_builddir)/../lib $(LDFLAGS_SHLIB) -fPIC -shared \ 29*6a54128fSAndroid Build Coastguard Worker -Wl,-soname,$(ELF_SONAME) $(OBJS) $(ELF_OTHER_LIBS)) 30*6a54128fSAndroid Build Coastguard Worker $(Q) $(MV) elfshared/$(ELF_LIB) . 31*6a54128fSAndroid Build Coastguard Worker $(Q) $(RM) -f ../$(ELF_LIB) ../$(ELF_IMAGE).so ../$(ELF_SONAME) 32*6a54128fSAndroid Build Coastguard Worker $(Q) (cd ..; $(LN) $(LINK_BUILD_FLAGS) \ 33*6a54128fSAndroid Build Coastguard Worker `echo $(my_dir) | sed -e 's;lib/;;'`/$(ELF_LIB) $(ELF_LIB)) 34*6a54128fSAndroid Build Coastguard Worker $(Q) (cd ..; $(LN) $(LINK_BUILD_FLAGS) $(ELF_LIB) $(ELF_IMAGE).so) 35*6a54128fSAndroid Build Coastguard Worker $(Q) (cd ..; $(LN) $(LINK_BUILD_FLAGS) $(ELF_LIB) $(ELF_SONAME)) 36*6a54128fSAndroid Build Coastguard Worker 37*6a54128fSAndroid Build Coastguard Workerinstalldirs-elf-lib:: 38*6a54128fSAndroid Build Coastguard Worker $(E) " MKDIR_P $(ELF_INSTALL_DIR) $(libdir)" 39*6a54128fSAndroid Build Coastguard Worker $(Q) $(MKDIR_P) $(DESTDIR)$(ELF_INSTALL_DIR) \ 40*6a54128fSAndroid Build Coastguard Worker $(DESTDIR)$(libdir) 41*6a54128fSAndroid Build Coastguard Worker 42*6a54128fSAndroid Build Coastguard Workerinstalldirs:: installdirs-elf-lib 43*6a54128fSAndroid Build Coastguard Worker 44*6a54128fSAndroid Build Coastguard Workerinstall-shlibs install:: $(ELF_LIB) installdirs-elf-lib $(DEP_INSTALL_SYMLINK) 45*6a54128fSAndroid Build Coastguard Worker $(E) " INSTALL-ELF-LIB $(ELF_INSTALL_DIR)/$(ELF_LIB)" 46*6a54128fSAndroid Build Coastguard Worker $(Q) $(INSTALL_PROGRAM) $(ELF_LIB) $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB) 47*6a54128fSAndroid Build Coastguard Worker $(E) " SYMLINK $(ELF_INSTALL_DIR)/$(ELF_SONAME)" 48*6a54128fSAndroid Build Coastguard Worker $(Q) $(INSTALL_SYMLINK) $(ELF_INSTALL_DIR)/$(ELF_LIB) \ 49*6a54128fSAndroid Build Coastguard Worker $(ELF_INSTALL_DIR)/$(ELF_SONAME) $(DESTDIR) 50*6a54128fSAndroid Build Coastguard Worker $(E) " SYMLINK $(libdir)/$(ELF_IMAGE).so" 51*6a54128fSAndroid Build Coastguard Worker $(Q) $(INSTALL_SYMLINK) $(ELF_INSTALL_DIR)/$(ELF_SONAME) \ 52*6a54128fSAndroid Build Coastguard Worker $(libdir)/$(ELF_IMAGE).so $(DESTDIR) 53*6a54128fSAndroid Build Coastguard Worker $(E) " LDCONFIG" 54*6a54128fSAndroid Build Coastguard Worker $(Q) -$(LDCONFIG) 55*6a54128fSAndroid Build Coastguard Worker 56*6a54128fSAndroid Build Coastguard Workerinstall-strip: install 57*6a54128fSAndroid Build Coastguard Worker $(E) " STRIP-LIB $(ELF_INSTALL_DIR)/$(ELF_LIB)" 58*6a54128fSAndroid Build Coastguard Worker $(Q) $(STRIP) --strip-unneeded --remove-section=.comment \ 59*6a54128fSAndroid Build Coastguard Worker --remove-section=.note $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB) 60*6a54128fSAndroid Build Coastguard Worker 61*6a54128fSAndroid Build Coastguard Workerinstall-shlibs-strip:: install-shlibs 62*6a54128fSAndroid Build Coastguard Worker $(E) " STRIP-LIB $(ELF_INSTALL_DIR)/$(ELF_LIB)" 63*6a54128fSAndroid Build Coastguard Worker $(Q) $(STRIP) --strip-unneeded --remove-section=.comment \ 64*6a54128fSAndroid Build Coastguard Worker --remove-section=.note $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB) 65*6a54128fSAndroid Build Coastguard Worker 66*6a54128fSAndroid Build Coastguard Workeruninstall-shlibs uninstall:: 67*6a54128fSAndroid Build Coastguard Worker $(RM) -f $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB) \ 68*6a54128fSAndroid Build Coastguard Worker $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_SONAME) \ 69*6a54128fSAndroid Build Coastguard Worker $(DESTDIR)$(libdir)/$(ELF_IMAGE).so 70*6a54128fSAndroid Build Coastguard Worker -$(LDCONFIG) 71*6a54128fSAndroid Build Coastguard Worker 72*6a54128fSAndroid Build Coastguard Workerclean:: 73*6a54128fSAndroid Build Coastguard Worker $(RM) -rf elfshared 74*6a54128fSAndroid Build Coastguard Worker $(RM) -f $(ELF_LIB) 75*6a54128fSAndroid Build Coastguard Worker $(RM) -f ../$(ELF_LIB) ../$(ELF_IMAGE).so ../$(ELF_SONAME) 76