Whamcloud - gitweb
Use Linux-kernel-style makefile output to make it easier to
[tools/e2fsprogs.git] / lib / Makefile.elf-lib
1 #
2 # This is a Makefile stub which handles the creation of Linux ELF shared
3 # libraries.
4 #
5 # In order to use this stub, the following makefile variables must be defined.
6
7 # ELF_VERSION = 1.0
8 # ELF_SO_VERSION = 1
9 # ELF_IMAGE = libce
10 # ELF_MYDIR = et
11 # ELF_INSTALL_DIR = $(SHLIBDIR)
12 # ELF_OTHER_LIBS = -lc
13
14 all:: elfshared image
15
16 subdirs:: elfshared
17
18 elfshared:
19         @echo " MKDIR elfshared"
20         @mkdir elfshared
21
22 ELF_LIB = $(ELF_IMAGE).so.$(ELF_VERSION)
23 ELF_SONAME = $(ELF_IMAGE).so.$(ELF_SO_VERSION)
24
25 image:          $(ELF_LIB)
26
27 $(ELF_LIB): $(OBJS)
28         @echo " GEN_ELF_SOLIB $(ELF_LIB)"
29         @(cd elfshared; $(CC) --shared -o $(ELF_LIB) \
30                 -Wl,-soname,$(ELF_SONAME) $(OBJS) $(ELF_OTHER_LIBS))
31         @$(MV) elfshared/$(ELF_LIB) .
32         @$(RM) -f ../$(ELF_LIB) ../$(ELF_IMAGE).so ../$(ELF_SONAME)
33         @$(LN) $(ELF_LIB) ../$(ELF_LIB)
34         @$(LN) ../$(ELF_LIB) ../$(ELF_IMAGE).so
35         @$(LN) ../$(ELF_LIB) ../$(ELF_SONAME)
36
37 installdirs-elf-lib::
38         $(top_srcdir)/mkinstalldirs $(DESTDIR)$(ELF_INSTALL_DIR) \
39                 $(DESTDIR)$(libdir)
40
41 installdirs:: installdirs-elf-lib
42
43 install-shlibs install:: $(ELF_LIB) installdirs-elf-lib
44         $(INSTALL_PROGRAM) $(ELF_LIB) $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB)
45         $(STRIP) --strip-debug \
46                 $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB)
47         $(LN_S) -f $(ELF_LIB) $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_SONAME)
48         $(LN_S) -f $(ELF_INSTALL_DIR)/$(ELF_SONAME) \
49                 $(DESTDIR)$(libdir)/$(ELF_IMAGE).so
50         -$(LDCONFIG)
51
52 uninstall-shlibs uninstall::
53         $(RM) -f $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB) \
54                 $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_SONAME) \
55                 $(DESTDIR)$(libdir)/$(ELF_IMAGE).so
56         -$(LDCONFIG)
57
58 clean::
59         $(RM) -rf elfshared
60         $(RM) -f $(ELF_LIB)
61         $(RM) -f ../$(ELF_LIB) ../$(ELF_IMAGE).so ../$(ELF_SONAME)