.ifndef DSTROOT
DSTROOT != x=`pwd`/DSTROOT && mkdir -p $$x && echo $$x
.endif
.ifndef OBJROOT
OBJROOT != x=`pwd`/OBJROOT && mkdir -p $$x && echo $$x
.endif
.ifndef SRCROOT
SRCROOT != dirname `pwd`
.endif
.ifndef SYMROOT
SYMROOT != x=`pwd`/SYMROOT && mkdir -p $$x && echo $$x
.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)
dynamic = dynamic
LOCAL_CFLAGS != echo $(RC_CFLAGS) | sed 's/ *-arch [^ ][^ ]*//g'
FORMS := debug dynamic profile
all: build
build: build-debug build-dynamic build-profile
.ifndef RC_ProjectName
install: installhdrs install-all
.else
.for F in $(FORMS)
install: BI-install-$(F)
.endfor .endif
.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)/$$_/$(F)/libc$(SUFFIX$(F)).a\"), qw($(RC_ARCHS))))'
.for A in $(RC_ARCHS)
build-$(F): build-$(A)-$(F)
.endfor build-$(F):
.if $(NARCHS) == 1
cp -p "$(OBJROOT)/$(RC_ARCHS)/$(F)/libc$(SUFFIX$(F)).a" "$(SYMROOT)"
.else
lipo -create $(LIPOARGS$(F)) -output "$(SYMROOT)/libc$(SUFFIX$(F)).a"
.endif
ranlib "$(SYMROOT)/libc$(SUFFIX$(F)).a"
.for A in $(RC_ARCHS)
build-$(A)-$(F): $(OBJROOT)/$(A)/libsystem.o
mkdir -p '$(OBJROOT)/$(A)/$(F)'
@set -x && \
cd '$(OBJROOT)/$(A)/$(F)' && \
ditto -arch $(A) '$(LIBSYS)/libc-partial$(SUFFIX$(F)).a' . && \
ar x 'libc-partial$(SUFFIX$(F)).a' && \
ditto -arch $(A) '$(LIBSYS)/libsyscall$(SUFFIX$(F)).a' . && \
ar x 'libsyscall$(SUFFIX$(F)).a' && \
'$(SRCROOT)/libsys/build-libc.pl' '$(LIBSYS)' '$(OBJROOT)/$(A)/$(F)' && \
ln -s ../libsystem.o && \
$(BSDMAKEJ)
.endfor .endfor
.for A in $(RC_ARCHS)
$(OBJROOT)/$(A)/libsystem.o: $(OBJROOT)/libsystem.c
mkdir -p '$(OBJROOT)/$(A)'
cc -c -o '$(.TARGET)' -arch $(A) '$(.ALLSRC)'
.endfor
$(OBJROOT)/libsystem.c:
/Developer/Makefiles/bin/version.pl Libsystem > $(.TARGET)
installhdrs:
.for F in $(FORMS)
BI-install-$(F): build-$(F)
mkdir -p "$(DSTROOT)/usr/local/lib/system"
@echo "Installing libc$(SUFFIX$(F)).a"
install "$(SYMROOT)/libc$(SUFFIX$(F)).a" "$(DSTROOT)/usr/local/lib/system"
ranlib "$(DSTROOT)/usr/local/lib/system/libc$(SUFFIX$(F)).a"
chmod 0444 "$(DSTROOT)/usr/local/lib/system/libc$(SUFFIX$(F)).a"
.endfor
install-all: build
.for F in $(FORMS)
install-all: BI-install-$(F)
.endfor
clean:
.for A in $(RC_ARCHS)
rm -rf $(OBJROOT)/$(A)
.endfor