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