PROJECT = Libsystem
no_target:
@$(MAKE) -f Makefile
ALLARCHS = hppa i386 m68k ppc ppc64 sparc x86_64
NARCHS = $(words $(RC_ARCHS))
USRLIB = /usr/lib
ifdef ALTUSRLOCALLIBSYSTEM
LIBSYS = $(ALTUSRLOCALLIBSYSTEM)
else
LIBSYS = $(NEXT_ROOT)/usr/local/lib/system
endif
install: fake $(DSTROOT)/usr/local/lib/system/libc.a $(RC_ARCHS)
ifneq "$(NARCHS)" "1"
rsync -aH $(OBJROOT)/$(word 1,$(RC_ARCHS))/dstroot/ $(DSTROOT)
rsync -aH $(OBJROOT)/$(word 1,$(RC_ARCHS))/symroot/ $(SYMROOT)
@set -x && \
for i in libSystem.B.dylib libSystem.B_debug.dylib libSystem.B_profile.dylib; do \
rm -f $(DSTROOT)$(USRLIB)/$$i && \
lipo -create -o $(DSTROOT)$(USRLIB)/$$i $(foreach ARCH,$(RC_ARCHS),$(OBJROOT)/$(ARCH)/dstroot$(USRLIB)/$$i) && \
rm -f $(SYMROOT)/$$i && \
lipo -create -o $(SYMROOT)/$$i $(foreach ARCH,$(RC_ARCHS),$(OBJROOT)/$(ARCH)/symroot/$$i) || exit 1; \
done
endif
@set -x && \
for i in libSystem.B.dylib libSystem.B_debug.dylib libSystem.B_profile.dylib; do \
dsymutil $(SYMROOT)/$$i || exit 1; \
done
fake:
@set -x && \
cd $(OBJROOT) && \
echo 'main() { __getpid(); return 0; }' > fake.c && \
cc -c fake.c && \
ld -r -o fake fake.o -lsyscall -L$(LIBSYS)
$(DSTROOT)/usr/local/lib/system/libc.a:
bsdmake -C libsys install
$(ALLARCHS):
ifneq "$(NARCHS)" "1"
mkdir -p $(OBJROOT)/$@/objroot $(OBJROOT)/$@/dstroot $(OBJROOT)/$@/symroot
$(MAKE) -f Makefile install \
OBJROOT='$(OBJROOT)/$@/objroot' \
TOPOBJROOT='$(OBJROOT)' \
DSTROOT='$(OBJROOT)/$@/dstroot' \
SYMROOT='$(OBJROOT)/$@/symroot' \
DESTDIR='$(DSTROOT)' \
RC_CFLAGS='-arch $@ $(RC_NONARCH_CFLAGS)' \
RC_ARCHS='$@' \
RC_$@=YES $(foreach ARCH,$(filter-out $@,$(ALLARCHS)),RC_$(ARCH)=)
else $(MAKE) -f Makefile install TOPOBJROOT='$(OBJROOT)' DESTDIR='$(DSTROOT)'
endif
.DEFAULT:
@$(MAKE) -f Makefile $@