e2fsprogs/lib/Makefile.elf-lib
Theodore Ts'o 3f546fcc27 Fix the subdirs logic so it works with GNU make 3.80
The previous fix which fixed the problem with GNU make 3.81 building
all of the library object files caused GNU make 3.80 fail because the
subdirectories (such as elfshared) were not getting created.  This fix
should allow the Makefiles to work with both GNU make 3.80 and GNU
make 3.81.
2006-03-10 21:39:40 -05:00

73 lines
2.2 KiB
Makefile

#
# This is a Makefile stub which handles the creation of Linux ELF shared
# libraries.
#
# In order to use this stub, the following makefile variables must be defined.
#
# ELF_VERSION = 1.0
# ELF_SO_VERSION = 1
# ELF_IMAGE = libce
# ELF_MYDIR = et
# ELF_INSTALL_DIR = $(SHLIBDIR)
# ELF_OTHER_LIBS = -lc
all:: image
real-subdirs:: Makefile
@echo " MKDIR elfshared"
@mkdir -p elfshared
ELF_LIB = $(ELF_IMAGE).so.$(ELF_VERSION)
ELF_SONAME = $(ELF_IMAGE).so.$(ELF_SO_VERSION)
image: $(ELF_LIB)
$(ELF_LIB): $(OBJS)
@echo " GEN_ELF_SOLIB $(ELF_LIB)"
@(cd elfshared; $(CC) --shared -o $(ELF_LIB) $(LDFLAGS) \
-Wl,-soname,$(ELF_SONAME) $(OBJS) $(ELF_OTHER_LIBS))
@$(MV) elfshared/$(ELF_LIB) .
@$(RM) -f ../$(ELF_LIB) ../$(ELF_IMAGE).so ../$(ELF_SONAME)
@$(LN) $(ELF_LIB) ../$(ELF_LIB)
@$(LN) ../$(ELF_LIB) ../$(ELF_IMAGE).so
@$(LN) ../$(ELF_LIB) ../$(ELF_SONAME)
installdirs-elf-lib::
@echo " MKINSTALLDIRS $(ELF_INSTALL_DIR) $(libdir)"
@$(MKINSTALLDIRS) $(DESTDIR)$(ELF_INSTALL_DIR) \
$(DESTDIR)$(libdir)
installdirs:: installdirs-elf-lib
install-shlibs install:: $(ELF_LIB) installdirs-elf-lib
@echo " INSTALL-ELF-LIB $(ELF_INSTALL_DIR)/$(ELF_LIB)"
@$(INSTALL_PROGRAM) $(ELF_LIB) $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB)
@echo " SYMLINK $(ELF_INSTALL_DIR)/$(ELF_SONAME)"
@$(LN_S) -f $(ELF_LIB) $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_SONAME)
@echo " SYMLINK $(libdir)/$(ELF_IMAGE).so"
@$(LN_S) -f $(ELF_INSTALL_DIR)/$(ELF_SONAME) \
$(DESTDIR)$(libdir)/$(ELF_IMAGE).so
@echo " LDCONFIG"
@-$(LDCONFIG)
install-strip: install
@echo " STRIP-LIB $(ELF_INSTALL_DIR)/$(ELF_LIB)"
@$(STRIP) --strip-unneeded --remove-section=.comment \
--remove-section=.note $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB)
install-shlibs-strip: install-shlibs
@echo " STRIP-LIB $(ELF_INSTALL_DIR)/$(ELF_LIB)"
@$(STRIP) --strip-unneeded --remove-section=.comment \
--remove-section=.note $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB)
uninstall-shlibs uninstall::
$(RM) -f $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB) \
$(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_SONAME) \
$(DESTDIR)$(libdir)/$(ELF_IMAGE).so
-$(LDCONFIG)
clean::
$(RM) -rf elfshared
$(RM) -f $(ELF_LIB)
$(RM) -f ../$(ELF_LIB) ../$(ELF_IMAGE).so ../$(ELF_SONAME)