]> git.saurik.com Git - apple/libsystem.git/blob - libsys/Makefile
Libsystem-123.tar.gz
[apple/libsystem.git] / libsys / Makefile
1 NAME = libc
2
3 .include <CoreOS/Standard/Commands.mk>
4 .include <CoreOS/Standard/Variables.mk>
5
6 NARCHS != $(ECHO) $(RC_ARCHS) | $(WC) -w
7 .ifdef ALTUSRLOCALLIBSYSTEM
8 LIBSYS = $(ALTUSRLOCALLIBSYSTEM)
9 .else
10 LIBSYS = $(SDKROOT)/usr/local/lib/system
11 .endif
12 NJOBS != $(PERL) -e '$$n = `$(SYSCTL) -n hw.ncpu`; printf "%d\n", $$n < 2 ? 2 : ($$n * 1.5)'
13 BSDMAKEJ = $(BSDMAKE) -f Makefile -j $(NJOBS)
14
15 # These variables are to guarantee that the left-hand side of an expression is
16 # always a variable
17 dynamic = dynamic
18
19 FORMS := debug dynamic profile
20
21 all: build
22
23 build: build-debug build-dynamic build-profile
24
25 # These are the non B&I defaults
26 .ifndef RC_ProjectName
27 install: installhdrs install-all
28
29 .else # RC_ProjectName
30
31 .for F in $(FORMS)
32 install: BI-install-$(F)
33 .endfor # FORMS
34 .endif # RC_ProjectName
35
36 .for F in $(FORMS)
37 .if $(dynamic) == $(F)
38 SUFFIX$(F) =
39 .else
40 SUFFIX$(F) = _$(F)
41 .endif
42 LIPOARGS$(F) != $(PERL) -e 'printf "%s\n", join(" ", map(qq(-arch $$_ \"$(OBJROOT)/$$_/$(F)/$(NAME)$(SUFFIX$(F)).a\"), qw($(RC_ARCHS))))'
43
44 .for A in $(RC_ARCHS)
45 build-$(F): build-$(A)-$(F)
46 .endfor # RC_ARCHS
47 build-$(F):
48 .if $(NARCHS) == 1
49 $(CP) "$(OBJROOT)/$(RC_ARCHS)/$(F)/$(NAME)$(SUFFIX$(F)).a" "$(SYMROOT)"
50 .else
51 $(LIPO) -create $(LIPOARGS$(F)) -output "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).a"
52 .endif
53 $(RANLIB) "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).a"
54
55 .for A in $(RC_ARCHS)
56 build-$(A)-$(F): $(OBJROOT)/$(A)/libsystem.o
57 $(MKDIR) '$(OBJROOT)/$(A)/$(F)'
58 @set -x && \
59 cd '$(OBJROOT)/$(A)/$(F)' && \
60 if $(LIPO) -info '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' | $(GREP) -q '^Non-'; then \
61 $(CP) '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' .; \
62 else \
63 arch=`$(LIPO) -detailed_info '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' | $(SED) -E -n 's/.*architecture:? //p' | $(SORT) | $(GREP) '^$(A)' | $(HEAD) -n 1` && \
64 $(LIPO) -thin $$arch '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' -output '$(NAME)-partial$(SUFFIX$(F)).a'; \
65 fi && \
66 $(AR) x '$(NAME)-partial$(SUFFIX$(F)).a' && \
67 if $(LIPO) -info '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' | $(GREP) -q '^Non-'; then \
68 $(CP) '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' .; \
69 else \
70 arch=`$(LIPO) -detailed_info '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' | $(SED) -E -n 's/.*architecture:? //p' | $(SORT) | $(GREP) '^$(A)' | $(HEAD) -n 1` && \
71 $(LIPO) -thin $$arch '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' -output 'libsyscall$(SUFFIX$(F)).a'; \
72 fi && \
73 $(AR) x 'libsyscall$(SUFFIX$(F)).a' && \
74 NM=$(NM) '$(SRCROOT)/libsys/build-libc.pl' '$(LIBSYS)' '$(OBJROOT)/$(A)/$(F)' && \
75 $(LN) -s ../libsystem.o && \
76 $(BSDMAKEJ)
77 .endfor # RC_ARCHS
78 .endfor # FORMS
79
80 .for A in $(RC_ARCHS)
81 $(OBJROOT)/$(A)/libsystem.o: $(OBJROOT)/libsystem.c
82 $(MKDIR) '$(OBJROOT)/$(A)'
83 $(CC) -c -o '$(.TARGET)' -arch $(A) '$(.ALLSRC)'
84 .endfor # RC_ARCHS
85
86 $(OBJROOT)/libsystem.c:
87 $(SDKROOT)/Developer/Makefiles/bin/version.pl Libsystem > $(.TARGET)
88
89 installhdrs:
90
91 .for F in $(FORMS)
92 BI-install-$(F): build-$(F)
93 $(MKDIR) "$(DSTROOT)/usr/local/lib/system"
94 @$(ECHO) "===== Installing $(NAME)$(SUFFIX$(F)).a ====="
95 $(INSTALL) "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).a" "$(DSTROOT)/usr/local/lib/system"
96 $(RANLIB) "$(DSTROOT)/usr/local/lib/system/$(NAME)$(SUFFIX$(F)).a"
97 $(CHMOD) 0444 "$(DSTROOT)/usr/local/lib/system/$(NAME)$(SUFFIX$(F)).a"
98 .endfor # FORMS
99
100 install-all: build
101 .for F in $(FORMS)
102 install-all: BI-install-$(F)
103 .endfor # FORMS
104
105 clean:
106 .for A in $(RC_ARCHS)
107 $(RMDIR) $(OBJROOT)/$(A)
108 .endfor # RC_ARCHS