1# inherited 2VERSION?= unknown 3MKDIR?= mkdir 4WGET?= wget 5 6# All the xnu releases which contain bsd/net/pfvar.h 7# Commented out are releases where the xnu version is known but the 8# corresponding source code has not been published by Apple yet. 9# If there were no API or ABI changes to the pf ioctl interface, 10# falling back to the latest published version should work fine. 11 12# Mac OS X Snow Leopard 13XNU_RELS+= 1456.1.26 # 10.6 14XNU_RELS+= 1456.1.26 # 10.6.1 15XNU_RELS+= 1486.2.11 # 10.6.2 16XNU_RELS+= 1504.3.12 # 10.6.3 17XNU_RELS+= 1504.7.4 # 10.6.4 18XNU_RELS+= 1504.9.17 # 10.6.5 19XNU_RELS+= 1504.9.26 # 10.6.6 20XNU_RELS+= 1504.9.37 # 10.6.7 21XNU_RELS+= 1504.15.3 # 10.6.8 22 23# Mac OS X Lion 24XNU_RELS+= 1699.22.73 # 10.7 25XNU_RELS+= 1699.22.81 # 10.7.1 26XNU_RELS+= 1699.24.8 # 10.7.2 27XNU_RELS+= 1699.24.23 # 10.7.3 28XNU_RELS+= 1699.26.8 # 10.7.4 29XNU_RELS+= 1699.32.7 # 10.7.5 30 31# OS X Mountain Lion 32XNU_RELS+= 2050.7.9 # 10.8 33XNU_RELS+= 2050.9.2 # 10.8.1 34XNU_RELS+= 2050.18.24 # 10.8.2 35XNU_RELS+= 2050.22.13 # 10.8.3 36XNU_RELS+= 2050.24.15 # 10.8.4 37XNU_RELS+= 2050.48.11 # 10.8.5 38 39# OS X Mavericks 40XNU_RELS+= 2422.1.72 # 10.9 41XNU_RELS+= 2422.1.72 # 10.9.1 42XNU_RELS+= 2422.90.20 # 10.9.2 43XNU_RELS+= 2422.100.13 # 10.9.3 44XNU_RELS+= 2422.110.17 # 10.9.4 45XNU_RELS+= 2422.115.4 # 10.9.5 46 47# OS X Yosemite 48XNU_RELS+= 2782.1.97 # 10.10 49XNU_RELS+= 2782.1.97 # 10.10.1 50XNU_RELS+= 2782.10.72 # 10.10.2 51XNU_RELS+= 2782.20.48 # 10.10.3 52XNU_RELS+= 2782.30.5 # 10.10.4 53XNU_RELS+= 2782.40.9 # 10.10.5 54 55# OS X El Capitan 56XNU_RELS+= 3247.1.106 # 10.11 57XNU_RELS+= 3247.10.11 # 10.11.1 58XNU_RELS+= 3248.20.55 # 10.11.2 59XNU_RELS+= 3248.30.4 # 10.11.3 60XNU_RELS+= 3248.40.184 # 10.11.4 61XNU_RELS+= 3248.50.21 # 10.11.5 62XNU_RELS+= 3248.60.10 # 10.11.6 63 64# macOS Sierra 65XNU_RELS+= 3789.1.32 # 10.12 66XNU_RELS+= 3789.21.4 # 10.12.1 67XNU_RELS+= 3789.31.2 # 10.12.2 68XNU_RELS+= 3789.41.3 # 10.12.3 69XNU_RELS+= 3789.51.2 # 10.12.4 70XNU_RELS+= 3789.60.24 # 10.12.5 71XNU_RELS+= 3789.70.16 # 10.12.6 72 73# macOS High Sierra 74XNU_RELS+= 4570.1.46 # 10.13 75XNU_RELS+= 4570.20.62 # 10.13.1 76XNU_RELS+= 4570.31.3 # 10.13.2 77XNU_RELS+= 4570.41.2 # 10.13.3 78XNU_RELS+= 4570.51.1 # 10.13.4 79XNU_RELS+= 4570.61.1 # 10.13.5 80XNU_RELS+= 4570.71.2 # 10.13.6 81 82# macOS Mojave 83#XNU_RELS+= 4903.201.2 # 10.14 # "coming soon!" 84XNU_RELS+= 4903.221.2 # 10.14.1 85XNU_RELS+= 4903.231.4 # 10.14.2 86XNU_RELS+= 4903.241.1 # 10.14.3 87#XNU_RELS+= 4903.251.3 # 10.14.4 # "coming soon!" 88#XNU_RELS+= 4903.261.4 # 10.14.5 # "coming soon!" 89 90# macOS Catalina 91 92# defaults 93XNURL?= https://opensource.apple.com/source/xnu/ 94XNU_IDIRS?= libkern net 95XNU_FILES?= APPLE_LICENSE \ 96 libkern/libkern/tree.h bsd/net/radix.h bsd/net/pfvar.h 97 98all: fetch 99 100fetch: $(foreach ver,$(sort $(XNU_RELS)),xnu-$(ver)) 101 102xnu-%: 103 $(MKDIR) -p $@ $(foreach dir,$(XNU_IDIRS),$@/$(dir)) 104 for f in $(XNU_FILES); do \ 105 ff=`echo "$$f"|sed 's/^[^/]*\///'`; \ 106 $(WGET) -O- $(XNURL)$@/$$f?txt >$@/$$ff; \ 107 done 108 109xnu-1456.%: XNU_IDIRS=sys net 110xnu-1456.%: XNU_FILES=APPLE_LICENSE bsd/sys/tree.h bsd/net/radix.h bsd/net/pfvar.h 111 112xnu-1486.%: XNU_IDIRS=sys net 113xnu-1486.%: XNU_FILES=APPLE_LICENSE bsd/sys/tree.h bsd/net/radix.h bsd/net/pfvar.h 114 115xnu-1504.%: XNU_IDIRS=sys net 116xnu-1504.%: XNU_FILES=APPLE_LICENSE bsd/sys/tree.h bsd/net/radix.h bsd/net/pfvar.h 117 118