1LEGACY = -D_MACH_I386_THREAD_STATUS_FPSTATE_LEGACY_FIELD_NAMES_ \ 2 -D_ARCHITECTURE_I386_FPU_FPSTATE_LEGACY_FIELD_NAMES_ 3 4KERN = -fno-builtin -finline -fno-keep-inline-functions -fsigned-bitfields \ 5 -msoft-float -nostdinc \ 6-I$(NEXT_ROOT)/System/Library/Frameworks/Kernel.framework/PrivateHeaders/libsa \ 7-I$(NEXT_ROOT)/System/Library/Frameworks/Kernel.framework/PrivateHeaders \ 8 -I$(NEXT_ROOT)/System/Library/Frameworks/Kernel.framework/Headers/libsa \ 9 -I$(NEXT_ROOT)/System/Library/Frameworks/Kernel.framework/Headers/bsd \ 10 -I$(NEXT_ROOT)/System/Library/Frameworks/Kernel.framework/Headers \ 11 -DKERNEL -DKERNEL_PRIVATE -DAPPLE -DNeXT -DLIBSA_PRIVATE 12 13ifneq "" "$(SDKROOT)" 14 SDK = -isysroot $(SDKROOT) 15 CC = $(shell xcrun -find -sdk $(SDKROOT) cc) 16endif 17 18OFLAG = -Os 19LTO = -DLTO_SUPPORT 20G = -g 21CFLAGS = $(OFLAG) $(LTO) $(G) -I$(SRCROOT)/../include -Wall $(LEGACY) $(SDK) 22PG = -pg 23 24MKDIRS = /bin/mkdir -p 25SRCROOT = . 26SYMROOT = . 27OBJROOT = . 28OFILE_DIRS = $(OBJROOT)/static_obj $(OBJROOT)/dynamic_obj \ 29 $(OBJROOT)/profile_obj $(OBJROOT)/shlib_obj \ 30 $(OBJROOT)/static_kld_obj 31OFILE_DIR = $(OBJROOT) 32VPATH = $(OFILE_DIR) 33 34ifeq "$(EFITOOLS)" "efitools" 35 COFF_BYTESEX = coff_bytesex.c 36else 37 COFF_BYTESEX = 38endif 39CFILES = allocate.c errors.c arch.c execute.c bytesex.c rnd.c hppa.c \ 40 swap_headers.c reloc.c version_number.c get_toc_byte_sex.c \ 41 best_arch.c fatals.c arch_usage.c ofile.c ofile_error.c print.c \ 42 set_arch_flag_name.c seg_addr_table.c dylib_table.c \ 43 breakout.c writeout.c checkout.c fatal_arch.c ofile_get_word.c \ 44 vm_flush_cache.c hash_string.c dylib_roots.c guess_short_name.c \ 45 SymLoc.c get_arch_from_host.c crc32.c macosx_deployment_target.c \ 46 symbol_list.c unix_standard_mode.c lto.c llvm.c $(COFF_BYTESEX) 47OBJS = $(CFILES:.c=.o) apple_version.o 48INSTALL_FILES = $(CFILES) Makefile notes 49 50ifeq "$(OLD_LIBKLD)" "YES" 51 STATIC_KLD = static_kld 52else 53 STATIC_KLD = 54endif 55 56all: $(OFILE_DIRS) $(SYMROOT) dynamic profile $(STATIC_KLD) 57 58lib_static_ofiles: $(STATIC_KLD) 59 60lib_ofiles: $(OFILE_DIRS) $(SYMROOT) dynamic 61 62lib_ofiles_install: lib_ofiles 63 64static: $(OBJROOT)/static_obj 65 @if [ $(SRCROOT) = . ]; \ 66 then \ 67 cd static_obj; \ 68 $(MAKE) -f ../Makefile libstuff.a \ 69 PRODUCT=libstuff.a \ 70 VPATH=.. \ 71 OFILE_DIR=. \ 72 SRCROOT=.. \ 73 SYMROOT=.. \ 74 COPTS="-static" \ 75 OFLAG="$(OFLAG)" \ 76 CFILES="$(CFILES)" \ 77 RC_CFLAGS="$(RC_CFLAGS)" \ 78 RC_ARCHS="$(RC_ARCHS)"; \ 79 else \ 80 cd $(OBJROOT)/static_obj; \ 81 $(MAKE) -f $(SRCROOT)/Makefile libstuff.a \ 82 PRODUCT=libstuff.a \ 83 VPATH=$(SRCROOT) \ 84 OFILE_DIR=$(OBJROOT)/static_obj \ 85 SRCROOT=$(SRCROOT) \ 86 SYMROOT=$(SYMROOT) \ 87 COPTS="-static" \ 88 OFLAG="$(OFLAG)" \ 89 CFILES="$(CFILES)" \ 90 RC_CFLAGS="$(RC_CFLAGS)" \ 91 RC_ARCHS="$(RC_ARCHS)"; \ 92 fi 93 94static_kld: $(OBJROOT)/static_kld_obj 95 @if [ $(SRCROOT) = . ]; \ 96 then \ 97 cd static_kld_obj; \ 98 $(MAKE) -f ../Makefile libstuff_kld.a \ 99 PRODUCT=libstuff_kld.a \ 100 VPATH=.. \ 101 OFILE_DIR=. \ 102 SRCROOT=.. \ 103 SYMROOT=.. \ 104 COPTS="-static -DRLD -DSA_RLD $(KERN)" \ 105 OFLAG="$(OFLAG)" \ 106 CFILES="$(CFILES)" \ 107 RC_CFLAGS="$(RC_CFLAGS)" \ 108 RC_ARCHS="$(RC_ARCHS)"; \ 109 else \ 110 cd $(OBJROOT)/static_kld_obj; \ 111 $(MAKE) -f $(SRCROOT)/Makefile libstuff_kld.a \ 112 PRODUCT=libstuff_kld.a \ 113 VPATH=$(SRCROOT) \ 114 OFILE_DIR=$(OBJROOT)/static_kld_obj \ 115 SRCROOT=$(SRCROOT) \ 116 SYMROOT=$(SYMROOT) \ 117 COPTS="-static -DRLD -DSA_RLD $(KERN)" \ 118 OFLAG="$(OFLAG)" \ 119 CFILES="$(CFILES)" \ 120 RC_CFLAGS="$(RC_CFLAGS)" \ 121 RC_ARCHS="$(RC_ARCHS)"; \ 122 fi 123 124dynamic: $(OBJROOT)/dynamic_obj 125 @if [ $(SRCROOT) = . ]; \ 126 then \ 127 cd dynamic_obj; \ 128 $(MAKE) -f ../Makefile libstuff.dylib \ 129 PRODUCT=libstuff.dylib \ 130 VPATH=.. \ 131 OFILE_DIR=. \ 132 SRCROOT=.. \ 133 SYMROOT=.. \ 134 COPTS="$(DYNAMIC)" \ 135 OFLAG="$(OFLAG)" \ 136 CFILES="$(CFILES)" \ 137 RC_CFLAGS="$(RC_CFLAGS)" \ 138 RC_ARCHS="$(RC_ARCHS)"; \ 139 else \ 140 cd $(OBJROOT)/dynamic_obj; \ 141 $(MAKE) -f $(SRCROOT)/Makefile libstuff.dylib \ 142 PRODUCT=libstuff.dylib \ 143 VPATH=$(SRCROOT) \ 144 OFILE_DIR=$(OBJROOT)/dynamic_obj \ 145 SRCROOT=$(SRCROOT) \ 146 SYMROOT=$(SYMROOT) \ 147 COPTS="$(DYNAMIC)" \ 148 OFLAG="$(OFLAG)" \ 149 CFILES="$(CFILES)" \ 150 RC_CFLAGS="$(RC_CFLAGS)" \ 151 RC_ARCHS="$(RC_ARCHS)"; \ 152 fi 153 154profile: $(OBJROOT)/profile_obj 155 @if [ $(SRCROOT) = . ]; \ 156 then \ 157 cd profile_obj; \ 158 $(MAKE) -f ../Makefile libstuff_p.a \ 159 PRODUCT=libstuff_p.a \ 160 VPATH=.. \ 161 OFILE_DIR=. \ 162 SRCROOT=.. \ 163 SYMROOT=.. \ 164 COPTS="$(DYNAMIC) $(PG)" \ 165 OFLAG="$(OFLAG)" \ 166 RC_CFLAGS="$(RC_CFLAGS)" \ 167 RC_ARCHS="$(RC_ARCHS)"; \ 168 else \ 169 cd $(OBJROOT)/profile_obj; \ 170 $(MAKE) -f $(SRCROOT)/Makefile libstuff_p.a \ 171 PRODUCT=libstuff_p.a \ 172 VPATH=$(SRCROOT) \ 173 OFILE_DIR=$(OBJROOT)/profile_obj \ 174 SRCROOT=$(SRCROOT) \ 175 SYMROOT=$(SYMROOT) \ 176 COPTS="$(DYNAMIC) $(PG)" \ 177 OFLAG="$(OFLAG)" \ 178 RC_CFLAGS="$(RC_CFLAGS)" \ 179 RC_ARCHS="$(RC_ARCHS)"; \ 180 fi 181 182shlib: $(OBJROOT)/shlib_obj 183 @if [ $(SRCROOT) = . ]; \ 184 then \ 185 cd shlib_obj; \ 186 $(MAKE) -f ../Makefile libstuff_s.a \ 187 PRODUCT=libstuff_s.a \ 188 VPATH=.. \ 189 OFILE_DIR=. \ 190 SRCROOT=.. \ 191 SYMROOT=.. \ 192 COPTS="-static -DSHLIB -I/LocalDeveloper/Headers/libsys" \ 193 OFLAG="$(OFLAG)" \ 194 RC_CFLAGS="$(RC_CFLAGS)" \ 195 RC_ARCHS="$(RC_ARCHS)"; \ 196 else \ 197 cd $(OBJROOT)/shlib_obj; \ 198 $(MAKE) -f $(SRCROOT)/Makefile libstuff_s.a \ 199 PRODUCT=libstuff_s.a \ 200 VPATH=$(SRCROOT) \ 201 OFILE_DIR=$(OBJROOT)/shlib_obj \ 202 SRCROOT=$(SRCROOT) \ 203 SYMROOT=$(SYMROOT) \ 204 COPTS="-static -DSHLIB -I/LocalDeveloper/Headers/libsys" \ 205 OFLAG="$(OFLAG)" \ 206 RC_CFLAGS="$(RC_CFLAGS)" \ 207 RC_ARCHS="$(RC_ARCHS)"; \ 208 fi 209 210$(PRODUCT): $(OFILE_DIR) $(SYMROOT) $(OBJS) 211 libtool -static -o $(SYMROOT)/$(PRODUCT) $(OBJS) 212 213apple_version.c: 214 echo "const char apple_version[]=" > $(OFILE_DIR)/$@ 215 echo "\"cctools-$(RC_ProjectSourceVersion)\";" >> $(OFILE_DIR)/$@ 216 217.c.o: 218 $(CC) $(CFLAGS) $(RC_CFLAGS) $(COPTS) -c -o $(OFILE_DIR)/$*.o $< 219 220lto.o: lto.c 221 $(CC) -std=c99 $(CFLAGS) $(RC_CFLAGS) $(COPTS) -c \ 222 -I/Developer/usr/local/include \ 223 -I$(DT_TOOLCHAIN_DIR)/usr/local/include \ 224 -o $(OFILE_DIR)/$*.o $< 225 226clean shlib_clean: 227 -rm -r -f $(OFILE_DIRS) 228 -rm -f libstuff.a libstuff.dylib libstuff_p.a libstuff_s.a 229 230install: all 231 232installsrc: 233 $(MKDIRS) $(SRCROOT) 234 chmod 755 $(SRCROOT) 235 gnutar cf - $(INSTALL_FILES) | (cd $(SRCROOT); gnutar xf -) 236 chmod 444 $(SRCROOT)/* 237 238installGASsrc: 239 $(MKDIRS) $(SRCROOT) 240 chmod 755 $(SRCROOT) 241 gnutar cf - Makefile bytesex.c rnd.c | (cd $(SRCROOT); gnutar xf -) 242 chmod 444 $(SRCROOT)/* 243 244fromGASsrc: $(OBJROOT)/dynamic_obj 245 @cd dynamic_obj; \ 246 $(MAKE) -f ../Makefile libstuff.dylib \ 247 PRODUCT=libstuff.dylib \ 248 VPATH=.. \ 249 OFILE_DIR=. \ 250 SRCROOT=.. \ 251 SYMROOT=.. \ 252 COPTS="$(DYNAMIC)" \ 253 OFLAG="$(OFLAG)" \ 254 CFILES="bytesex.c rnd.c" \ 255 RC_CFLAGS="$(RC_CFLAGS)" \ 256 RC_ARCHS="$(RC_ARCHS)"; 257 258$(OFILE_DIRS) $(SYMROOT): 259 $(MKDIRS) $@ 260