1# 2# makefile for architecture project. 3# 4 5# Defaults typically set by build system 6 7DEFAULT_ARCHS = i386 8 9RC_ARCHS ?= $(DEFAULT_ARCHS) 10 11SDKROOT ?= / 12 13# map x86_64 -> i386 14SUPPORTED_ARCHS = i386 15CANONICAL_ARCH_x86_64 = i386 16 17 18ARCHS = $(filter $(SUPPORTED_ARCHS),$(sort $(foreach x,$(RC_ARCHS),$(if $(CANONICAL_ARCH_$(x)),$(CANONICAL_ARCH_$(x)),$(x))))) 19 20 21 22# install machine-independent and per-arch headers 23DIRS = . $(ARCHS) 24 25ifeq ($(RC_ProjectName),architecture_Sim) 26 HEADER_INSTALL_PREFIX = $(SDKROOT) 27else 28 HEADER_INSTALL_PREFIX = 29endif 30 31EXPORT_DSTDIR=$(HEADER_INSTALL_PREFIX)/usr/include/architecture 32LOCAL_DSTDIR=$(HEADER_INSTALL_PREFIX)/System/Library/Frameworks/System.framework/Versions/B/PrivateHeaders/architecture 33 34INSTALL = /usr/bin/install 35INSTALL_FLAGS= -p -m 444 36MKDIRS = /bin/mkdir -p 37 38all: 39 40install: all installhdrs 41 42copyhdrs: all DSTROOT $(DSTROOT)$(LOCAL_DSTDIR) \ 43 $(DSTROOT)$(EXPORT_DSTDIR) 44 for i in ${DIRS}; \ 45 do \ 46 DSTDIR=$(DSTROOT)$(LOCAL_DSTDIR)/$$i; \ 47 (cd $$i; \ 48 $(MKDIRS) $$DSTDIR; \ 49 echo Installing *.h; \ 50 install $(INSTALL_FLAGS) *.h $$DSTDIR); \ 51 done 52 for i in ${DIRS}; \ 53 do \ 54 DSTDIR=$(DSTROOT)$(EXPORT_DSTDIR)/$$i; \ 55 (cd $$i; \ 56 $(MKDIRS) $$DSTDIR; \ 57 echo Installing *.h; \ 58 install $(INSTALL_FLAGS) *.h $$DSTDIR); \ 59 done 60 61installhdrs: copyhdrs 62 63 64 65.PHONY: clean 66 67clean: 68 rm -f *~ */*~ 69 rm -rf exports 70 71installsrc: SRCROOT $(SRCROOT) 72 pax -rw . ${SRCROOT} 73 74 75$(SRCROOT) $(DSTROOT)$(EXPORT_DSTDIR) $(DSTROOT)$(LOCAL_DSTDIR): 76 $(MKDIRS) $@ 77 78.PHONY: SRCROOT DSTROOT 79 80SRCROOT DSTROOT: 81 if [ -n "${$@}" ]; \ 82 then \ 83 exit 0; \ 84 else \ 85 echo Must define $@; \ 86 exit 1; \ 87 fi 88