Loading...
BSDmakefile /dev/null Libc-391.5.22
--- /dev/null
+++ Libc/Libc-391.5.22/BSDmakefile
@@ -0,0 +1,170 @@
+.ifndef OBJROOT
+OBJROOT != pwd
+.endif
+.ifndef SYMROOT
+SYMROOT != pwd
+.endif
+ARCH != arch
+.ifndef RC_ARCHS
+RC_ARCHS = $(ARCH)
+RC_$(RC_ARCHS) = 1
+.endif
+NARCHS != echo $(RC_ARCHS) | wc -w
+.ifdef ALTUSRLOCALLIBSYSTEM
+LIBSYS = $(ALTUSRLOCALLIBSYSTEM)
+.else
+LIBSYS = $(NEXT_ROOT)/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)
+BSDMAKEJ = $(BSDMAKE) -j $(NJOBS) -P
+
+# This variables are to guarantee that the left-hand side of an expression is
+# always a variable
+dynamic = dynamic
+static = static
+
+# Remove the arch stuff, since we know better here.
+LOCAL_CFLAGS != echo $(RC_CFLAGS) | sed 's/ *-arch [^ ][^ ]*//g'
+
+FORMS := dynamic debug profile static
+
+all: build
+
+# These are the non B&I defaults
+.ifndef RC_ProjectName
+installhdrs: installhdrs-real
+build: build-static build-profile build-debug build-dynamic
+install: installhdrs install-all
+
+.else # RC_ProjectName
+
+# And these are to deal with B&I building libc differently 
+# based on RC_ProjectName.
+.if $(RC_ProjectName) == Libc
+installhdrs:
+build: build-dynamic
+install: BI-install-dynamic
+.endif
+.if $(RC_ProjectName) == Libc_headers
+installhdrs: installhdrs-real
+build:
+install: installhdrs-real
+.endif
+.if $(RC_ProjectName) == Libc_man
+installhdrs:
+build:
+install: install-man
+.endif
+.if $(RC_ProjectName) == Libc_static
+installhdrs:
+build: build-static
+install: BI-install-static
+.endif
+.if $(RC_ProjectName) == Libc_debug
+installhdrs:
+build: build-debug
+install: BI-install-debug
+.endif
+.if $(RC_ProjectName) == Libc_profile
+installhdrs:
+build: build-profile
+install: BI-install-profile
+.endif
+.endif # RC_ProjectName
+
+# Because of 3780028, there are random failures on HFS because the
+# CC_PRINT_OPTIONS_FILE can't be created.  So we touch it first.
+.if !empty $(CC_PRINT_OPTIONS_FILE)
+$(CC_PRINT_OPTIONS_FILE):
+	touch $(CC_PRINT_OPTIONS_FILE)
+.endif # CC_PRINT_OPTIONS_FILE
+
+.for F in $(FORMS)
+.if $(dynamic) == $(F)
+SUFFIX$(F) =
+.else
+SUFFIX$(F) = _$(F)
+.endif
+LIPOARGS$(F) != perl -e 'printf "%s\n", join(" ", map(qq(-arch $$_ \"$(OBJROOT)/obj.$$_/libc$(SUFFIX$(F)).a\"), qw($(RC_ARCHS))))'
+
+build-$(F): autopatch $(CC_PRINT_OPTIONS_FILE)
+.for A in $(RC_ARCHS)
+build-$(F): build-$(A)-$(F)
+.endfor # RC_ARCHS
+build-$(F):
+.if $(NARCHS) == 1
+	cp -p "$(OBJROOT)/obj.$(RC_ARCHS)/libc$(SUFFIX$(F)).a" "$(SYMROOT)"
+.else
+	lipo -create $(LIPOARGS$(F)) -output $(SYMROOT)/libc$(SUFFIX$(F)).a
+.endif
+
+.for A in $(RC_ARCHS)
+build-$(A)-$(F):
+	mkdir -p $(OBJROOT)/obj.$(A) && \
+	MAKEOBJDIR="$(OBJROOT)/obj.$(A)" MACHINE_ARCH="$(A)" \
+		MAKEFLAGS="" CFLAGS="-arch $(A) $(LOCAL_CFLAGS)" $(BSDMAKEJ) libc$(SUFFIX$(F)).a
+.endfor # RC_ARCHS
+.endfor # FORMS
+
+# We have to separately call bsdmake to patch the FreeBSD files, because of
+# the way its cache works, it would otherwise pick A file in ${SYMROOT}, even
+# over A .s file.
+autopatch:
+.for A in $(RC_ARCHS)
+	MACHINE_ARCH="$(A)" $(BSDMAKEJ) autopatch
+.endfor # RC_ARCHS
+
+installsrc:
+	pax -rw . "$(SRCROOT)"
+
+installhdrs-real: $(CC_PRINT_OPTIONS_FILE)
+	MAKEOBJDIR="$(OBJROOT)" DESTDIR="$(DSTROOT)" MAKEFLAGS="" \
+		$(BSDMAKEJ) installhdrs
+.for A in $(RC_ARCHS)
+	mkdir -p "$(OBJROOT)/obj.$(A)" && \
+	MAKEOBJDIR="$(OBJROOT)/obj.$(A)" MACHINE_ARCH="$(A)" \
+		MAKEFLAGS="" $(BSDMAKEJ) installhdrs-md
+.endfor # RC_ARCHS
+
+.for F in $(FORMS)
+BI-install-$(F): build-$(F)
+	mkdir -p $(DSTROOT)/usr/local/lib/system
+	if [ -f "$(SYMROOT)/libc$(SUFFIX$(F)).a" ]; then \
+		echo "Installing libc$(SUFFIX$(F)).a" && \
+		install -c -m 444 "$(SYMROOT)/libc$(SUFFIX$(F)).a" \
+			$(DSTROOT)/usr/local/lib/system && \
+		ranlib "$(DSTROOT)/usr/local/lib/system/libc$(SUFFIX$(F)).a"; \
+	fi
+.if !empty $(RC_ppc) && ($(static) != $(F))
+	if [ -f "$(OBJROOT)/obj.ppc/libc-ldbl128$(SUFFIX$(F)).a" ]; then \
+		echo "Installing libldbl128$(SUFFIX$(F)).a" ; \
+		$(SRCROOT)/make_libldbl128 "$(OBJROOT)/obj.ppc/libc-ldbl128$(SUFFIX$(F)).a" \
+			"$(SUFFIX$(F))" "$(DSTROOT)/usr/local/lib/system" $(LIBSYS) ; \
+	fi
+.endif # RC_ppc && !static
+.endfor # FORMS
+
+# Don't use -j here; it may try to make links before the files are copied
+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
+	MAKEOBJDIR="$(OBJROOT)" DESTDIR="$(DSTROOT)" NOMANCOMPRESS=1 \
+		MACHINE_ARCH="$(ARCH)" MAKEFLAGS="" $(BSDMAKE) autopatchman maninstall
+
+install-all: build install-man
+.for F in $(FORMS)
+install-all: BI-install-$(F)
+.endfor # FORMS
+
+clean:
+.for F in $(FORMS)
+	rm -f $(OBJROOT)/libc$(SUFFIX$(F)).a
+.endfor # FORMS
+.for A in $(RC_ARCHS)
+	rm -rf $(OBJROOT)/obj.$(A)
+.endfor # RC_ARCHS