summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2011-11-27 05:39:58 +0000
committerBob Wilson <bob.wilson@apple.com>2011-11-27 05:39:58 +0000
commit8a3c663e95513912f705bbcd0c0ba922159a732b (patch)
tree68f9ce934643da661538ca5f563858412a735de1
parent97b3da5433e799c077f3f139b1f0e339d04b932d (diff)
downloadbcm5719-llvm-8a3c663e95513912f705bbcd0c0ba922159a732b.tar.gz
bcm5719-llvm-8a3c663e95513912f705bbcd0c0ba922159a732b.zip
Refactor libcxx makefile. No functional changes intended.
Besides cleaning up the repetition in the installhdrs target, the point of this change is to provide a separate do-installhdrs target that can be used directly from clang's runtime/libcxx makefile to install a copy of the headers along with clang. <rdar://problem/10397739> llvm-svn: 145162
-rw-r--r--libcxx/Makefile64
1 files changed, 25 insertions, 39 deletions
diff --git a/libcxx/Makefile b/libcxx/Makefile
index 7c75a32a079..ec68880dc0a 100644
--- a/libcxx/Makefile
+++ b/libcxx/Makefile
@@ -14,6 +14,9 @@ ifeq (,$(RC_INDIGO))
else
INSTALL_PREFIX="$(SDKROOT)"
endif
+INSTALL_DIR=$(DSTROOT)/$(INSTALL_PREFIX)
+
+.PHONY: help installsrc clean installhdrs do-installhdrs install
help::
echo Use make install DSTROOT=<destination>
@@ -29,47 +32,30 @@ clean::
installhdrs::
- mkdir -p $(DSTROOT)/$(INSTALL_PREFIX)/usr/include/c++/v1/ext
- mkdir -p $(DSTROOT)/$(INSTALL_PREFIX)/usr/lib/c++/v1/ext
- mkdir -p $(DSTROOT)/$(INSTALL_PREFIX)/usr/clang-ide/lib/c++/v1/ext
- mkdir -p $(DSTROOT)/$(INSTALL_PREFIX)/Developer/usr/lib/c++/v1/ext
- mkdir -p $(DSTROOT)/$(INSTALL_PREFIX)/Developer/Platforms/iPhoneOS.platform/usr/lib/c++/v1/ext
- rsync -r --exclude=".*" --exclude="support" $(SRCDIRS)/include/* $(DSTROOT)/$(INSTALL_PREFIX)/usr/include/c++/v1/
- rsync -r --exclude=".*" --exclude="support" $(SRCDIRS)/include/* $(DSTROOT)/$(INSTALL_PREFIX)/usr/lib/c++/v1/
- rsync -r --exclude=".*" --exclude="support" $(SRCDIRS)/include/* $(DSTROOT)/$(INSTALL_PREFIX)/usr/clang-ide/lib/c++/v1/
- rsync -r --exclude=".*" --exclude="support" $(SRCDIRS)/include/* $(DSTROOT)/$(INSTALL_PREFIX)/Developer/usr/lib/c++/v1/
- rsync -r --exclude=".*" --exclude="support" $(SRCDIRS)/include/* $(DSTROOT)/$(INSTALL_PREFIX)/Developer/Platforms/iPhoneOS.platform/usr/lib/c++/v1/
- chown -R root:wheel $(DSTROOT)/$(INSTALL_PREFIX)/usr/include/c++
- chown -R root:wheel $(DSTROOT)/$(INSTALL_PREFIX)/usr/lib/c++
- chown -R root:wheel $(DSTROOT)/$(INSTALL_PREFIX)/usr/clang-ide/lib/c++
- chown -R root:wheel $(DSTROOT)/$(INSTALL_PREFIX)/Developer/usr/lib/c++
- chown -R root:wheel $(DSTROOT)/$(INSTALL_PREFIX)/Developer/Platforms/iPhoneOS.platform/usr/lib/c++
- chmod 755 $(DSTROOT)/$(INSTALL_PREFIX)/usr/include/c++/v1
- chmod 755 $(DSTROOT)/$(INSTALL_PREFIX)/usr/lib/c++/v1
- chmod 755 $(DSTROOT)/$(INSTALL_PREFIX)/usr/clang-ide/lib/c++/v1
- chmod 755 $(DSTROOT)/$(INSTALL_PREFIX)/Developer/usr/lib/c++/v1
- chmod 755 $(DSTROOT)/$(INSTALL_PREFIX)/Developer/Platforms/iPhoneOS.platform/usr/lib/c++/v1
- chmod 644 $(DSTROOT)/$(INSTALL_PREFIX)/usr/include/c++/v1/*
- chmod 644 $(DSTROOT)/$(INSTALL_PREFIX)/usr/lib/c++/v1/*
- chmod 644 $(DSTROOT)/$(INSTALL_PREFIX)/usr/clang-ide/lib/c++/v1/*
- chmod 644 $(DSTROOT)/$(INSTALL_PREFIX)/Developer/usr/lib/c++/v1/*
- chmod 644 $(DSTROOT)/$(INSTALL_PREFIX)/Developer/Platforms/iPhoneOS.platform/usr/lib/c++/v1/*
- chmod 755 $(DSTROOT)/$(INSTALL_PREFIX)/usr/include/c++/v1/ext
- chmod 755 $(DSTROOT)/$(INSTALL_PREFIX)/usr/lib/c++/v1/ext
- chmod 755 $(DSTROOT)/$(INSTALL_PREFIX)/usr/clang-ide/lib/c++/v1/ext
- chmod 755 $(DSTROOT)/$(INSTALL_PREFIX)/Developer/usr/lib/c++/v1/ext
- chmod 755 $(DSTROOT)/$(INSTALL_PREFIX)/Developer/Platforms/iPhoneOS.platform/usr/lib/c++/v1/ext
- chmod 644 $(DSTROOT)/$(INSTALL_PREFIX)/usr/include/c++/v1/ext/*
- chmod 644 $(DSTROOT)/$(INSTALL_PREFIX)/usr/lib/c++/v1/ext/*
- chmod 644 $(DSTROOT)/$(INSTALL_PREFIX)/usr/clang-ide/lib/c++/v1/ext/*
- chmod 644 $(DSTROOT)/$(INSTALL_PREFIX)/Developer/usr/lib/c++/v1/ext/*
- chmod 644 $(DSTROOT)/$(INSTALL_PREFIX)/Developer/Platforms/iPhoneOS.platform/usr/lib/c++/v1/ext/*
+ $(MAKE) HEADER_DIR=$(INSTALL_DIR)/usr/include do-installhdrs
+ $(MAKE) HEADER_DIR=$(INSTALL_DIR)/usr/lib do-installhdrs
+ $(MAKE) HEADER_DIR=$(INSTALL_DIR)/usr/clang-ide/lib do-installhdrs
+ $(MAKE) HEADER_DIR=$(INSTALL_DIR)/Developer/usr/lib do-installhdrs
+ $(MAKE) HEADER_DIR=$(INSTALL_DIR)/Developer/Platforms/iPhoneOS.platform/usr/lib do-installhdrs
+
+# The do-installhdrs target is also used by clang's runtime/libcxx makefile.
+do-installhdrs:
+ mkdir -p $(HEADER_DIR)/c++/v1/ext
+ rsync -r --exclude=".*" --exclude="support" $(SRCDIRS)/include/* \
+ $(HEADER_DIR)/c++/v1/
+ chown -R root:wheel $(HEADER_DIR)/c++
+ chmod 755 $(HEADER_DIR)/c++/v1
+ chmod 644 $(HEADER_DIR)/c++/v1/*
+ chmod 755 $(HEADER_DIR)/c++/v1/ext
+ chmod 644 $(HEADER_DIR)/c++/v1/ext/*
install:: installhdrs $(DESTDIR)
cd lib && ./buildit
ditto lib/libc++.1.dylib $(SYMROOT)/usr/lib/libc++.1.dylib
- cd lib && dsymutil -o $(SYMROOT)/libc++.1.dylib.dSYM $(SYMROOT)/usr/lib/libc++.1.dylib
- mkdir -p $(DSTROOT)/$(INSTALL_PREFIX)/usr/lib
- strip -S -o $(DSTROOT)/$(INSTALL_PREFIX)/usr/lib/libc++.1.dylib $(SYMROOT)/usr/lib/libc++.1.dylib
- cd $(DSTROOT)/$(INSTALL_PREFIX)/usr/lib && ln -s libc++.1.dylib libc++.dylib
+ cd lib && dsymutil -o $(SYMROOT)/libc++.1.dylib.dSYM \
+ $(SYMROOT)/usr/lib/libc++.1.dylib
+ mkdir -p $(INSTALL_DIR)/usr/lib
+ strip -S -o $(INSTALL_DIR)/usr/lib/libc++.1.dylib \
+ $(SYMROOT)/usr/lib/libc++.1.dylib
+ cd $(INSTALL_DIR)/usr/lib && ln -s libc++.1.dylib libc++.dylib
OpenPOWER on IntegriCloud