1## 2# libc++ Makefile 3## 4 5SRCDIRS = . 6DESTDIR = $(DSTROOT) 7 8OBJROOT=. 9SYMROOT=. 10export TRIPLE=-apple- 11 12ifeq (,$(RC_INDIGO)) 13 INSTALL_PREFIX="" 14else 15 INSTALL_PREFIX="$(SDKROOT)" 16endif 17INSTALL_DIR=$(DSTROOT)/$(INSTALL_PREFIX) 18 19.PHONY: help installsrc clean installheaders install 20 21help:: 22 @echo "Use make install DSTROOT=<destination>" 23 24installsrc:: $(SRCROOT) 25 26 ditto $(SRCDIRS)/include $(SRCROOT)/include 27 ditto $(SRCDIRS)/lib $(SRCROOT)/lib 28 ditto $(SRCDIRS)/src $(SRCROOT)/src 29 ditto $(SRCDIRS)/Makefile $(SRCROOT)/Makefile 30 31clean:: 32 33# The installheaders target is used by clang's runtime/libcxx makefile. 34installheaders:: 35 mkdir -p $(HEADER_DIR)/c++/v1/ext 36 (cd $(SRCDIRS)/include && \ 37 tar cf - --exclude=".*" --exclude=support \ 38 --exclude=CMakeLists.txt *) | \ 39 (cd $(HEADER_DIR)/c++/v1 && tar xf -) 40 chmod 755 $(HEADER_DIR)/c++/v1 41 chmod 644 $(HEADER_DIR)/c++/v1/* 42 chmod 755 $(HEADER_DIR)/c++/v1/ext 43 chmod 644 $(HEADER_DIR)/c++/v1/ext/* 44 chmod 755 $(HEADER_DIR)/c++/v1/experimental 45 chmod 644 $(HEADER_DIR)/c++/v1/experimental/* 46 47install:: 48 49 cd lib && ./buildit 50 ditto lib/libc++.1.dylib $(SYMROOT)/usr/lib/libc++.1.dylib 51 cd lib && dsymutil -o $(SYMROOT)/libc++.1.dylib.dSYM \ 52 $(SYMROOT)/usr/lib/libc++.1.dylib 53 mkdir -p $(INSTALL_DIR)/usr/lib 54 strip -S -o $(INSTALL_DIR)/usr/lib/libc++.1.dylib \ 55 $(SYMROOT)/usr/lib/libc++.1.dylib 56 cd $(INSTALL_DIR)/usr/lib && ln -s libc++.1.dylib libc++.dylib 57