Add fine-grained build/install targets.

This commit is contained in:
Jason Evans 2012-03-02 16:38:37 -08:00
parent 84f7cdb0c5
commit 7b398aca3b
2 changed files with 31 additions and 9 deletions

13
INSTALL
View File

@ -169,11 +169,24 @@ PATH="?"
=== Advanced compilation ======================================================= === Advanced compilation =======================================================
To build only parts of jemalloc, use the following targets:
build_lib_shared
build_lib_static
build_lib
build_doc_html
build_doc_man
build_doc
To install only parts of jemalloc, use the following targets: To install only parts of jemalloc, use the following targets:
install_bin install_bin
install_include install_include
install_lib_shared
install_lib_static
install_lib install_lib
install_doc_html
install_doc_man
install_doc install_doc
To clean up build results to varying degrees, use the following make targets: To clean up build results to varying degrees, use the following make targets:

View File

@ -76,9 +76,9 @@ CTESTS := @srcroot@test/allocated.c @srcroot@test/allocm.c \
.SECONDARY : $(CTESTS:@srcroot@%.c=@objroot@%.o) .SECONDARY : $(CTESTS:@srcroot@%.c=@objroot@%.o)
# Default target. # Default target.
all: $(DSOS) $(STATIC_LIBS) all: build
dist: doc dist: build_doc
@srcroot@doc/%.html : @objroot@doc/%.xml @srcroot@doc/stylesheet.xsl @objroot@doc/html.xsl @srcroot@doc/%.html : @objroot@doc/%.xml @srcroot@doc/stylesheet.xsl @objroot@doc/html.xsl
@XSLTPROC@ -o $@ @objroot@doc/html.xsl $< @XSLTPROC@ -o $@ @objroot@doc/html.xsl $<
@ -86,9 +86,9 @@ dist: doc
@srcroot@doc/%.3 : @objroot@doc/%.xml @srcroot@doc/stylesheet.xsl @objroot@doc/manpages.xsl @srcroot@doc/%.3 : @objroot@doc/%.xml @srcroot@doc/stylesheet.xsl @objroot@doc/manpages.xsl
@XSLTPROC@ -o $@ @objroot@doc/manpages.xsl $< @XSLTPROC@ -o $@ @objroot@doc/manpages.xsl $<
doc_html: $(DOCS_HTML) build_doc_html: $(DOCS_HTML)
doc_man: $(DOCS_MAN3) build_doc_man: $(DOCS_MAN3)
doc: $(DOCS) build_doc: $(DOCS)
# #
# Include generated dependency files. # Include generated dependency files.
@ -140,6 +140,10 @@ else
$(CC) -o $@ $< -L@objroot@lib -ljemalloc@install_suffix@ -lpthread $(CC) -o $@ $< -L@objroot@lib -ljemalloc@install_suffix@ -lpthread
endif endif
build_lib_shared: $(DSOS)
build_lib_static: $(STATIC_LIBS)
build: build_lib_shared build_lib_static
install_bin: install_bin:
install -d $(BINDIR) install -d $(BINDIR)
@for b in $(BINS); do \ @for b in $(BINS); do \
@ -154,28 +158,33 @@ install_include:
install -m 644 $$h $(INCLUDEDIR)/jemalloc; \ install -m 644 $$h $(INCLUDEDIR)/jemalloc; \
done done
install_lib: $(DSOS) $(STATIC_LIBS) install_lib_shared: $(DSOS)
install -d $(LIBDIR) install -d $(LIBDIR)
install -m 755 @objroot@lib/libjemalloc@install_suffix@.$(SO).$(REV) $(LIBDIR) install -m 755 @objroot@lib/libjemalloc@install_suffix@.$(SO).$(REV) $(LIBDIR)
ln -sf libjemalloc@install_suffix@.$(SO).$(REV) $(LIBDIR)/libjemalloc@install_suffix@.$(SO) ln -sf libjemalloc@install_suffix@.$(SO).$(REV) $(LIBDIR)/libjemalloc@install_suffix@.$(SO)
install_lib_static: $(DSOS) $(STATIC_LIBS)
install -d $(LIBDIR)
install -m 755 @objroot@lib/libjemalloc@install_suffix@_pic.a $(LIBDIR) install -m 755 @objroot@lib/libjemalloc@install_suffix@_pic.a $(LIBDIR)
install -m 755 @objroot@lib/libjemalloc@install_suffix@.a $(LIBDIR) install -m 755 @objroot@lib/libjemalloc@install_suffix@.a $(LIBDIR)
install_html: install_lib: install_lib_shared install_lib_static
install_doc_html:
install -d $(DATADIR)/doc/jemalloc@install_suffix@ install -d $(DATADIR)/doc/jemalloc@install_suffix@
@for d in $(DOCS_HTML); do \ @for d in $(DOCS_HTML); do \
echo "install -m 644 $$d $(DATADIR)/doc/jemalloc@install_suffix@"; \ echo "install -m 644 $$d $(DATADIR)/doc/jemalloc@install_suffix@"; \
install -m 644 $$d $(DATADIR)/doc/jemalloc@install_suffix@; \ install -m 644 $$d $(DATADIR)/doc/jemalloc@install_suffix@; \
done done
install_man: install_doc_man:
install -d $(MANDIR)/man3 install -d $(MANDIR)/man3
@for d in $(DOCS_MAN3); do \ @for d in $(DOCS_MAN3); do \
echo "install -m 644 $$d $(MANDIR)/man3"; \ echo "install -m 644 $$d $(MANDIR)/man3"; \
install -m 644 $$d $(MANDIR)/man3; \ install -m 644 $$d $(MANDIR)/man3; \
done done
install_doc: install_html install_man install_doc: install_doc_html install_doc_man
install: install_bin install_include install_lib install_doc install: install_bin install_include install_lib install_doc