1## 2# Copyright (c) 2005 Apple Computer, Inc. All rights reserved. 3# 4# @APPLE_LICENSE_HEADER_START@ 5# 6# This file contains Original Code and/or Modifications of Original Code 7# as defined in and that are subject to the Apple Public Source License 8# Version 2.0 (the 'License'). You may not use this file except in 9# compliance with the License. Please obtain a copy of the License at 10# http://www.opensource.apple.com/apsl/ and read it before using this 11# file. 12# 13# The Original Code and all software distributed under the License are 14# distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 15# EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 16# INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 17# FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 18# Please see the License for the specific language governing rights and 19# limitations under the License. 20# 21# @APPLE_LICENSE_HEADER_END@ 22## 23TESTROOT = ../.. 24include ${TESTROOT}/include/common.makefile 25 26PWD = $(shell pwd) 27 28# 29# tests combinations of dlopen() and LD_LIBRARY_PATH 30# 31# if dlopen() path contains a slash, LD_LIBRARY_PATH is ignored 32# 33# 1) leaf name found in current directory (On linux this fails because . is usually not in default LD_LIBRARY_PATH path) 34# 2) cwd relative path 35# 3) full path 36# 4) leaf name and LD_LIBRARY_PATH overrides cwd (On 10.3, this fails because cwd was always searched before LD_LIBRARY_PATH??) 37# 5) leaf name and LD_LIBRARY_PATH set to alternate directory 38# 6) fullpath and LD_LIBRARY_PATH set to alt 39# 40 41all-check: all check 42 43check: 44 cd alt1 && ../main "libfoo.dylib" 1 "leafname found in cwd" 45 ./main "./alt1/libfoo.dylib" 1 "relative path" 46 ./main "${PWD}/alt2/libfoo.dylib" 2 "fullpath" 47 export LD_LIBRARY_PATH="${PWD}/alt1" && ./main "libfoo.dylib" 1 "leafname and LD_LIBRARY_PATH overrides cwd" 48 export LD_LIBRARY_PATH="${PWD}/alt1" && cd alt3 && ../main "libfoo.dylib" 1 "leafname and alt LD_LIBRARY_PATH" 49 export LD_LIBRARY_PATH="${PWD}/alt1" && ./main "${PWD}/alt2/libfoo.dylib" 2 "fullpath and LD_LIBRARY_PATH" 50 51all: main alt1/libfoo.dylib alt2/libfoo.dylib alt3 52 53main : main.c libfoo.dylib 54 ${CC} ${CCFLAGS} -I${TESTROOT}/include -o main main.c libfoo.dylib 55 56 57alt1/libfoo.dylib : foo.c 58 mkdir -p alt1 59 ${CC} ${CCFLAGS} -dynamiclib foo.c -o "${PWD}/alt1/libfoo.dylib" -DVALUE=1 60 61alt2/libfoo.dylib : foo.c 62 mkdir -p alt2 63 ${CC} ${CCFLAGS} -dynamiclib foo.c -o "${PWD}/alt2/libfoo.dylib" -DVALUE=2 64 65libfoo.dylib : foo.c 66 ${CC} ${CCFLAGS} -dynamiclib foo.c -o "${PWD}/libfoo.dylib" -DVALUE=0 67 68alt3 : 69 mkdir -p alt3 70 71clean: 72 ${RM} ${RMFLAGS} *~ main libfoo.dylib alt1 alt2 alt3 73 74