• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
3# See https://llvm.org/LICENSE.txt for license information.
4# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
5CCDIR=/usr/bin
6#CCDIR=/Volumes/Keep/gcc/usr/bin
7
8all: std
9
10clean:
11	rm -fr *.dSYM *.o *-bin testfilerunner
12
13TFR = ~public/bin/testfilerunner
14
15testfilerunner: testfilerunner.h testfilerunner.m
16	gcc -fobjc-gc-only -g -arch x86_64 -arch i386 -std=gnu99 testfilerunner.m -o testfilerunner -framework Foundation
17
18tests:
19	grep CONFIG *.[cmCM] | $(TFR) $(CCDIR) --
20
21open:
22	grep CONFIG *.[cmCM] | $(TFR) $(CCDIR) -open --
23
24fast:
25	grep CONFIG *.[cmCM] | $(TFR) -fast $(CCDIR) --
26
27std:
28	grep CONFIG *.[cmCM] | $(TFR) --
29
30clang:
31	grep CONFIG *.[cmCM] | $(TFR) -clang -fast --
32
33fastd:
34	grep CONFIG *.[cmCM] | $(TFR) -fast --
35
36
37# Hack Alert: arguably most of the following belongs in libclosure's Makefile; sticking it here until I get around to grokking what goes on in that file.
38sudid:
39	@echo Enabling sudo:  # Hack Alert: enable sudo first thing so we don't hang at the password prompt later
40	@sudo echo Thanks
41
42
43RootsDirectory ?= /tmp/
44# Note: the libsystem project (built by the libsystemroot target below) uses the ALTUSRLOCALLIBSYSTEM variable, so we use it here to maintain parity
45ALTUSRLOCALLIBSYSTEM ?= $(RootsDirectory)/alt-usr-local-lib-system/
46altusrlocallibsystem:
47	ditto /usr/local/lib/system $(ALTUSRLOCALLIBSYSTEM)  # FIXME: conditionalize this copy
48
49
50# <rdar://problem/6456031> ER: option to not require extra privileges (-nosudo or somesuch)
51Buildit ?= ~rc/bin/buildit -rootsDirectory $(RootsDirectory) -arch i386 -arch ppc -arch x86_64
52blocksroot: sudid clean altusrlocallibsystem
53	sudo $(Buildit) ..
54	ditto $(RootsDirectory)/libclosure.roots/libclosure~dst/usr/local/lib/system $(ALTUSRLOCALLIBSYSTEM)
55
56
57LibsystemVersion ?= 121
58LibsystemPath ?= ~rc/Software/SnowLeopard/Projects/Libsystem/Libsystem-$(LibsystemVersion)
59LibsystemTmpPath ?= $(RootsDirectory)/Libsystem-$(LibsystemVersion)
60libsystemroot: blocksroot
61	ditto $(LibsystemPath) $(LibsystemTmpPath)  # FIXME: conditionalize this copy
62	sudo ALTUSRLOCALLIBSYSTEM=$(ALTUSRLOCALLIBSYSTEM) $(Buildit) $(LibsystemTmpPath)
63
64
65# Defaults to product of the libsystemroot target but does not automatically rebuild that, make both targets if you want a fresh root
66LibsystemRootPath ?= $(RootsDirectory)/Libsystem-$(LibsystemVersion).roots/Libsystem-$(LibsystemVersion)~dst/usr/lib/
67roottests:
68	grep CONFIG *.[cmCM] | $(TFR) -dyld $(LibsystemRootPath) --  # FIXME: figure out if I can "call" the std target instead of duplicating it
69
70