X-Git-Url: https://git.saurik.com/apple/libsystem.git/blobdiff_plain/c9e8bbd6db2dd3826646d72ddf34fa6c442d8889..be4d04e3c2bf07f131cfa7fbaf5820d4b1987c2c:/libsys/Makefile diff --git a/libsys/Makefile b/libsys/Makefile index 409ef46..786c9c5 100644 --- a/libsys/Makefile +++ b/libsys/Makefile @@ -1,20 +1,30 @@ NAME = libc -NARCHS != echo $(RC_ARCHS) | wc -w +.include +.include + +NARCHS != $(ECHO) $(RC_ARCHS) | $(WC) -w .ifdef ALTUSRLOCALLIBSYSTEM LIBSYS = $(ALTUSRLOCALLIBSYSTEM) .else LIBSYS = $(SDKROOT)/usr/local/lib/system .endif -NJOBS != perl -e '$$n = `/usr/sbin/sysctl -n hw.ncpu`; printf "%d\n", $$n < 2 ? 2 : ($$n * 1.5)' -BSDMAKE = bsdmake -f Makefile -BSDMAKEJ = $(BSDMAKE) -j $(NJOBS) +NJOBS != $(PERL) -e '$$n = `$(SYSCTL) -n hw.ncpu`; printf "%d\n", $$n < 2 ? 2 : ($$n * 1.5)' +BSDMAKEJ = $(BSDMAKE) -f Makefile -j $(NJOBS) # These variables are to guarantee that the left-hand side of an expression is # always a variable dynamic = dynamic -FORMS := debug dynamic profile +FORMS := dynamic + +.if !empty(FEATURE_DEBUG_DYLIB) +FORMS += debug +.endif + +.if !empty(FEATURE_PROFILE_DYLIB) +FORMS += profile +.endif all: build @@ -37,48 +47,48 @@ SUFFIX$(F) = .else SUFFIX$(F) = _$(F) .endif -LIPOARGS$(F) != perl -e 'printf "%s\n", join(" ", map(qq(-arch $$_ \"$(OBJROOT)/$$_/$(F)/$(NAME)$(SUFFIX$(F)).a\"), qw($(RC_ARCHS))))' +LIPOARGS$(F) != $(PERL) -e 'printf "%s\n", join(" ", map(qq(-arch $$_ \"$(OBJROOT)/$$_/$(F)/$(NAME)$(SUFFIX$(F)).a\"), qw($(RC_ARCHS))))' .for A in $(RC_ARCHS) build-$(F): build-$(A)-$(F) .endfor # RC_ARCHS build-$(F): .if $(NARCHS) == 1 - cp -p "$(OBJROOT)/$(RC_ARCHS)/$(F)/$(NAME)$(SUFFIX$(F)).a" "$(SYMROOT)" + $(CP) "$(OBJROOT)/$(RC_ARCHS)/$(F)/$(NAME)$(SUFFIX$(F)).a" "$(SYMROOT)" .else - lipo -create $(LIPOARGS$(F)) -output "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).a" + $(LIPO) -create $(LIPOARGS$(F)) -output "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).a" .endif - ranlib "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).a" + $(RANLIB) "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).a" .for A in $(RC_ARCHS) build-$(A)-$(F): $(OBJROOT)/$(A)/libsystem.o - mkdir -p '$(OBJROOT)/$(A)/$(F)' + $(MKDIR) '$(OBJROOT)/$(A)/$(F)' @set -x && \ cd '$(OBJROOT)/$(A)/$(F)' && \ - if lipo -info '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' | grep -q '^Non-'; then \ - cp -p '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' .; \ + if $(LIPO) -info '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' | $(GREP) -q '^Non-'; then \ + $(CP) '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' .; \ else \ - arch=`lipo -detailed_info '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' | sed -E -n 's/.*architecture:? //p' | sort | grep '^$(A)' | head -n 1` && \ - lipo -thin $$arch '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' -output '$(NAME)-partial$(SUFFIX$(F)).a'; \ + arch=`$(LIPO) -detailed_info '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' | $(SED) -E -n 's/.*architecture:? //p' | $(SORT) | $(GREP) '^$(A)' | $(HEAD) -n 1` && \ + $(LIPO) -thin $$arch '$(LIBSYS)/$(NAME)-partial$(SUFFIX$(F)).a' -output '$(NAME)-partial$(SUFFIX$(F)).a'; \ fi && \ - ar x '$(NAME)-partial$(SUFFIX$(F)).a' && \ - if lipo -info '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' | grep -q '^Non-'; then \ - cp -p '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' .; \ + $(AR) x '$(NAME)-partial$(SUFFIX$(F)).a' && \ + if $(LIPO) -info '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' | $(GREP) -q '^Non-'; then \ + $(CP) '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' .; \ else \ - arch=`lipo -detailed_info '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' | sed -E -n 's/.*architecture:? //p' | sort | grep '^$(A)' | head -n 1` && \ - lipo -thin $$arch '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' -output 'libsyscall$(SUFFIX$(F)).a'; \ + arch=`$(LIPO) -detailed_info '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' | $(SED) -E -n 's/.*architecture:? //p' | $(SORT) | $(GREP) '^$(A)' | $(HEAD) -n 1` && \ + $(LIPO) -thin $$arch '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' -output 'libsyscall$(SUFFIX$(F)).a'; \ fi && \ - ar x 'libsyscall$(SUFFIX$(F)).a' && \ - '$(SRCROOT)/libsys/build-libc.pl' '$(LIBSYS)' '$(OBJROOT)/$(A)/$(F)' && \ - ln -s ../libsystem.o && \ + $(AR) x 'libsyscall$(SUFFIX$(F)).a' && \ + NM=$(NM) '$(SRCROOT)/libsys/build-libc.pl' '$(LIBSYS)' '$(OBJROOT)/$(A)/$(F)' && \ + $(LN) -s ../libsystem.o && \ $(BSDMAKEJ) .endfor # RC_ARCHS .endfor # FORMS .for A in $(RC_ARCHS) $(OBJROOT)/$(A)/libsystem.o: $(OBJROOT)/libsystem.c - mkdir -p '$(OBJROOT)/$(A)' - cc -c -o '$(.TARGET)' -arch $(A) '$(.ALLSRC)' + $(MKDIR) '$(OBJROOT)/$(A)' + $(CC) -c -o '$(.TARGET)' -arch $(A) '$(.ALLSRC)' .endfor # RC_ARCHS $(OBJROOT)/libsystem.c: @@ -88,11 +98,11 @@ installhdrs: .for F in $(FORMS) BI-install-$(F): build-$(F) - mkdir -p "$(DSTROOT)/usr/local/lib/system" - @echo "===== Installing $(NAME)$(SUFFIX$(F)).a =====" - install "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).a" "$(DSTROOT)/usr/local/lib/system" - ranlib "$(DSTROOT)/usr/local/lib/system/$(NAME)$(SUFFIX$(F)).a" - chmod 0444 "$(DSTROOT)/usr/local/lib/system/$(NAME)$(SUFFIX$(F)).a" + $(MKDIR) "$(DSTROOT)/usr/local/lib/system" + @$(ECHO) "===== Installing $(NAME)$(SUFFIX$(F)).a =====" + $(INSTALL) "$(SYMROOT)/$(NAME)$(SUFFIX$(F)).a" "$(DSTROOT)/usr/local/lib/system" + $(RANLIB) "$(DSTROOT)/usr/local/lib/system/$(NAME)$(SUFFIX$(F)).a" + $(CHMOD) 0444 "$(DSTROOT)/usr/local/lib/system/$(NAME)$(SUFFIX$(F)).a" .endfor # FORMS install-all: build @@ -102,5 +112,5 @@ install-all: BI-install-$(F) clean: .for A in $(RC_ARCHS) - rm -rf $(OBJROOT)/$(A) + $(RMDIR) $(OBJROOT)/$(A) .endfor # RC_ARCHS