Makefile   [plain text]



TESTROOT = ../..
include ${TESTROOT}/include/common.makefile

#
# Sanity check that ld can link a kext
#
FILE_TYPE = OBJECT
ifeq (${ARCH},x86_64)
	FILE_TYPE = KEXTBUNDLE
endif
ifeq (${FILEARCH},arm)
	FILE_TYPE = KEXTBUNDLE
endif

#CC = /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang

run: all

all:
	${CC} ${CCFLAGS} -static  -mkernel -c mykext.c -o mykext.o
	${CC} ${CCFLAGS} -static  -mkernel -c mykextinfo.c -o mykextinfo.o
	${CC} ${CCFLAGS} -Wl,-kext mykext.o mykextinfo.o -nostdlib -lkmodc++ -lkmod -lcc_kext -o mykext -Wl,-w -Wl,-new_linker
	otool -hv mykext | grep ${FILE_TYPE} | ${FAIL_IF_EMPTY}
	nm -nm mykext | grep '(undefined) external _extern_global' | ${FAIL_IF_EMPTY}
	nm -nm mykext | grep '(__DATA,__data) external _my_global' | ${FAIL_IF_EMPTY}
	otool -rv mykext | grep '_extern_global' | ${FAIL_IF_EMPTY}
	${PASS_IFF} true

clean:
	rm -f mykext.o mykextinfo.o mykext