blob: ab7b5b603a04d83bc8f10face76774c8635ad2d6 [file] [log] [blame]
Dan Albert1d4a1ed2016-05-25 22:36:09 -07001##
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