1 ## 2 # libc++ Makefile 3 ## 4 5 SRCDIRS = . 6 DESTDIR = $(DSTROOT) 7 8 OBJROOT=. 9 SYMROOT=. 10 export TRIPLE=-apple- 11 12 ifeq (,$(RC_INDIGO)) 13 INSTALL_PREFIX="" 14 else 15 INSTALL_PREFIX="$(SDKROOT)" 16 endif 17 INSTALL_DIR=$(DSTROOT)/$(INSTALL_PREFIX) 18 19 .PHONY: help installsrc clean installheaders install 20 21 help:: 22 @echo "Use make install DSTROOT=<destination>" 23 24 installsrc:: $(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 31 clean:: 32 33 # The installheaders target is used by clang's runtime/libcxx makefile. 34 installheaders:: 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 47 install:: 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