X-Git-Url: https://git.saurik.com/apple/libc.git/blobdiff_plain/b5d655f7532a546b54809da387f7467d128a756b..34e8f8296870d0e8695f90e1a54240a589d41312:/BSDmakefile diff --git a/BSDmakefile b/BSDmakefile index b7e1fde..51f03de 100644 --- a/BSDmakefile +++ b/BSDmakefile @@ -1,5 +1,8 @@ +.include +.include + ALLARCHS = arm i386 ppc ppc64 x86_64 # installsrc doesn't set RC_ARCHS -PWD != pwd +TOP != ${PWD} .ifdef DSTROOT DESTDIR = $(DSTROOT) .else @@ -11,19 +14,20 @@ DESTDIR = / .endif .endif .ifndef OBJROOT -OBJROOT = $(PWD)/OBJROOT +OBJROOT = $(TOP)/OBJROOT .endif .ifndef SRCROOT -SRCROOT = $(PWD) +SRCROOT = $(TOP) .endif .ifndef SYMROOT -SYMROOT = $(PWD)/SYMROOT +SYMROOT = $(TOP)/SYMROOT .endif -ARCH != arch +MYARCH != ${ARCH} .ifndef RC_ARCHS -RC_ARCHS = $(ARCH) +RC_ARCHS = $(MYARCH) RC_$(RC_ARCHS) = 1 .endif +FIRST_ARCH != ${PERL} -e 'print $$ARGV[0]' ${RC_ARCHS} .ifndef RC_NONARCH_CFLAGS RC_NONARCH_CFLAGS = -pipe .endif @@ -32,10 +36,13 @@ 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) -P -BSDMAKEJ = $(BSDMAKE) -j $(NJOBS) +NJOBS != ${PERL} -e '$$n = `$(SYSCTL) -n hw.ncpu`; printf "%d\n", $$n < 2 ? 2 : ($$n * 1.5)' +.ifdef DEBUG +MYBSDMAKE = $(BSDMAKE) -f Makefile -P +.else +MYBSDMAKE = $(BSDMAKE) -f Makefile +.endif +MYBSDMAKEJ = $(MYBSDMAKE) -j $(NJOBS) # Set the DONT-BUILD-arch-form variable to non-empty to turn off building #DONT-BUILD-x86_64-static = 1 @@ -46,7 +53,7 @@ dynamic = dynamic static = static # Map RC_ARCHS to MACHINE_ARCH -.for A in $(RC_ARCHS) $(ARCH) # { +.for A in $(RC_ARCHS) $(MYARCH) # { MACHINE_ARCH-$(A) = $(A:C/^armv.*/arm/) .endfor # RC_ARCHS } @@ -63,7 +70,7 @@ ROOTS := DSTROOT OBJROOT SYMROOT .for R in $(ROOTS) # { roots: $($(R)) $($(R)): - mkdir -p '$($(R))' + ${MKDIR} '$($(R))' .endfor # ROOTS } # These are the non B&I defaults @@ -122,7 +129,7 @@ FRAMEWORKPATH = ${SDKROOT}/System/Library/Frameworks .endif $(FRAMEWORKS): $(SRCROOT)/patchHeaders $(FRAMEWORKPATH)/$(PRIVATEHEADERPATH) $(FRAMEWORKS)/$(PRIVATEHEADERPATH:H) - ln -fs $(VERSIONSB)/PrivateHeaders $(FRAMEWORKS)/$(SYSTEMFRAMEWORK)/PrivateHeaders + ${LN} -fs $(VERSIONSB)/PrivateHeaders $(FRAMEWORKS)/$(SYSTEMFRAMEWORK)/PrivateHeaders AUTOPATCHED = $(SRCROOT)/.autopatched PARTIAL = -partial @@ -138,19 +145,19 @@ PSUFFIX-$(F) = $(PARTIAL)$(SUFFIX-$(F)) .if empty(DONT-BUILD-$(A)-$(F)) # { ARCHS-$(F) += $(A) build-$(A)-$(F): - mkdir -p $(OBJROOT)/obj.$(A) && \ + ${MKDIR} $(OBJROOT)/obj.$(A) && \ MAKEOBJDIR="$(OBJROOT)/obj.$(A)" MACHINE_ARCH=$(MACHINE_ARCH-$(A)) CCARCH=$(A) \ DSTROOT=$(DSTROOT) OBJROOT=$(OBJROOT) SYMROOT=$(SYMROOT) \ RC_NONARCH_CFLAGS="$(RC_NONARCH_CFLAGS)" MAKEFLAGS="" \ OBJSUFFIX="$(OBJSUFFIX-$(F))" \ - $(BSDMAKEJ) libc$(SUFFIX-$(F)).a + $(MYBSDMAKEJ) libc$(SUFFIX-$(F)).a .else # } { build-$(A)-$(F): @echo Not building libc$(PSUFFIX-$(F)).a for $(A) .endif # } .endfor # RC_ARCHS } -NARCHS-$(F) != echo $(ARCHS-$(F)) | wc -w +NARCHS-$(F) != ${ECHO} $(ARCHS-$(F)) | ${WC} -w build-$(F): $(FRAMEWORKS) $(AUTOPATCHED) .for A in $(RC_ARCHS) # { @@ -160,12 +167,21 @@ build-$(F): build-$(A)-$(F) build-$(F): @echo No libc$(PSUFFIX-$(F)).a built .else # } { -LIPOARGS-$(F) != perl -e 'printf "%s\n", join(" ", map(qq(-arch $$_ \"$(OBJROOT)/obj.$$_/libc$(SUFFIX-$(F)).a\"), qw($(ARCHS-$(F)))))' +LIPOARGS-$(F) != ${PERL} -e 'printf "%s\n", join(" ", map(qq(-arch $$_ \"$(OBJROOT)/obj.$$_/libc$(SUFFIX-$(F)).a\"), qw($(ARCHS-$(F)))))' +.if $(dynamic) == $(F) # { +LIPODYLDARGS-$(F) != ${PERL} -e 'printf "%s\n", join(" ", map(qq(-arch $$_ \"$(OBJROOT)/obj.$$_/libc-dyld.a\"), qw($(ARCHS-$(F)))))' +.endif # } build-$(F): .if $(NARCHS-$(F)) == 1 # { - cp -p "$(OBJROOT)/obj.$(RC_ARCHS)/libc$(SUFFIX-$(F)).a" "$(SYMROOT)/libc$(PSUFFIX-$(F)).a" + ${CP} "$(OBJROOT)/obj.$(RC_ARCHS)/libc$(SUFFIX-$(F)).a" "$(SYMROOT)/libc$(PSUFFIX-$(F)).a" +.if $(dynamic) == $(F) # { + ${CP} "$(OBJROOT)/obj.$(RC_ARCHS)/libc-dyld.a" "$(SYMROOT)/libc-dyld.a" +.endif # } .else # } { - lipo -create $(LIPOARGS-$(F)) -output "$(SYMROOT)/libc$(PSUFFIX-$(F)).a" + ${LIPO} -create $(LIPOARGS-$(F)) -output "$(SYMROOT)/libc$(PSUFFIX-$(F)).a" +.if $(dynamic) == $(F) # { + ${LIPO} -create $(LIPODYLDARGS-$(F)) -output "$(SYMROOT)/libc-dyld.a" +.endif # } .endif # } .endif # } .endfor # FORMS } @@ -175,60 +191,69 @@ build-$(F): $(AUTOPATCHED): .for A in $(ALLARCHS) # { MACHINE_ARCH=$(A) SRCROOT="$(SRCROOT)" \ - $(BSDMAKE) -C "$(SRCROOT)" autopatch + $(MYBSDMAKE) -C "$(SRCROOT)" autopatch .endfor # ALLARCHS # } touch $(AUTOPATCHED) copysrc: - pax -rw -p p . "$(SRCROOT)" + ${PAX} -rw -p p . "$(SRCROOT)" installsrc: copysrc $(AUTOPATCHED) installhdrs-real: MAKEOBJDIR="$(OBJROOT)" DESTDIR="$(DSTROOT)" MAKEFLAGS="" \ DSTROOT=$(DSTROOT) OBJROOT=$(OBJROOT) SYMROOT=$(SYMROOT) \ - $(BSDMAKEJ) installhdrs + $(MYBSDMAKEJ) installhdrs .for A in $(RC_ARCHS) # { - mkdir -p "$(OBJROOT)/obj.$(A)" && \ + ${MKDIR} "$(OBJROOT)/obj.$(A)" && \ MAKEOBJDIR="$(OBJROOT)/obj.$(A)" MACHINE_ARCH=$(MACHINE_ARCH-$(A)) CCARCH=$(A) \ DSTROOT=$(DSTROOT) OBJROOT=$(OBJROOT) SYMROOT=$(SYMROOT) \ MAKEFLAGS="" RC_NONARCH_CFLAGS="$(RC_NONARCH_CFLAGS)" \ - $(BSDMAKEJ) installhdrs-md + $(MYBSDMAKEJ) installhdrs-md .endfor # RC_ARCHS # } .for F in $(FORMS) # { BI-install-$(F): build-$(F) - mkdir -p $(DSTROOT)/usr/local/lib/system + ${MKDIR} $(DSTROOT)/usr/local/lib/system if [ -f "$(SYMROOT)/libc$(PSUFFIX-$(F)).a" ]; then \ - echo "Installing libc$(PSUFFIX-$(F)).a" && \ - install -c -m 444 "$(SYMROOT)/libc$(PSUFFIX-$(F)).a" \ + ${ECHO} "Installing libc$(PSUFFIX-$(F)).a" && \ + ${INSTALL} -m 444 "$(SYMROOT)/libc$(PSUFFIX-$(F)).a" \ $(DSTROOT)/usr/local/lib/system && \ - ranlib "$(DSTROOT)/usr/local/lib/system/libc$(PSUFFIX-$(F)).a" || exit 1; \ + ${RANLIB} "$(DSTROOT)/usr/local/lib/system/libc$(PSUFFIX-$(F)).a" || exit 1; \ fi .if $(dynamic) == $(F) # { + if [ -f "$(SYMROOT)/libc-dyld.a" ]; then \ + ${ECHO} "Installing libc-dyld.a" && \ + ${INSTALL} -m 444 "$(SYMROOT)/libc-dyld.a" \ + $(DSTROOT)/usr/local/lib/system && \ + ${RANLIB} "$(DSTROOT)/usr/local/lib/system/libc-dyld.a" || exit 1; \ + fi .for A in $(RC_ARCHS) # { MAKEOBJDIR="$(OBJROOT)/obj.$(A)" MACHINE_ARCH=$(MACHINE_ARCH-$(A)) CCARCH=$(A) \ DSTROOT=$(DSTROOT) OBJROOT=$(OBJROOT) SYMROOT=$(SYMROOT) \ DSTROOT=$(DSTROOT) OBJROOT=$(OBJROOT) SYMROOT=$(SYMROOT) \ MAKEFLAGS="" RC_NONARCH_CFLAGS="$(RC_NONARCH_CFLAGS)" \ - $(BSDMAKE) copyfiles + $(MYBSDMAKE) copyfiles .endfor # RC_ARCHS # } .endif # } .endfor # FORMS } # Don't use -j here; it may try to make links before the files are copied -MANARGS != test `id -u` -eq 0 || echo MINSTALL=/usr/bin/install +MANARGS != ${TEST} `id -u` -eq 0 || ${ECHO} MINSTALL=/usr/bin/install +# Variables.mk defines MANDIR=${SHAREDIR}/man, but bsd.man.mk expects that +# MANDIR=${SHAREDIR}/man/man, so we override. +MANARGS += MANDIR=${SHAREDIR}/man/man install-man: - mkdir -p $(DSTROOT)/usr/share/man/man2 - mkdir -p $(DSTROOT)/usr/share/man/man3 - mkdir -p $(DSTROOT)/usr/share/man/man4 - mkdir -p $(DSTROOT)/usr/share/man/man5 - mkdir -p $(DSTROOT)/usr/share/man/man7 + ${MKDIR} $(DSTROOT)/usr/share/man/man2 + ${MKDIR} $(DSTROOT)/usr/share/man/man3 + ${MKDIR} $(DSTROOT)/usr/share/man/man4 + ${MKDIR} $(DSTROOT)/usr/share/man/man5 + ${MKDIR} $(DSTROOT)/usr/share/man/man7 MAKEOBJDIR="$(OBJROOT)" DESTDIR="$(DSTROOT)" \ DSTROOT='$(DSTROOT)' OBJROOT='$(OBJROOT)' SYMROOT='$(SYMROOT)' \ - MACHINE_ARCH="$(MACHINE_ARCH-$(ARCH))" CCARCH=$(ARCH) MAKEFLAGS="" \ + MACHINE_ARCH="$(MACHINE_ARCH-$(FIRST_ARCH))" CCARCH=$(FIRST_ARCH) MAKEFLAGS="" \ RC_NONARCH_CFLAGS="$(RC_NONARCH_CFLAGS)" \ - $(BSDMAKE) all-man maninstall $(MANARGS) + $(MYBSDMAKE) all-man maninstall $(MANARGS) install-all: build install-man .for F in $(FORMS) # { @@ -237,8 +262,8 @@ install-all: BI-install-$(F) clean: .for F in $(FORMS) # { - rm -f $(SYMROOT)/libc$(PSUFFIX-$(F)).a + ${RM} $(SYMROOT)/libc$(PSUFFIX-$(F)).a .endfor # FORMS } .for A in $(RC_ARCHS) # { - rm -rf $(OBJROOT)/obj.$(A) + ${RMDIR} $(OBJROOT)/obj.$(A) .endfor # RC_ARCHS # }