]> git.saurik.com Git - apple/libc.git/blobdiff - BSDmakefile
Libc-583.tar.gz
[apple/libc.git] / BSDmakefile
index b7e1fdec50b437fd9b5eb453d4c3a5abfacbb80c..51f03de849c5a09578c1b64bfacb82b569640d64 100644 (file)
@@ -1,5 +1,8 @@
+.include <CoreOS/Standard/Commands.mk>
+.include <CoreOS/Standard/Variables.mk>
+
 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 # }