Home | History | Annotate | Download | only in libcxx
      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