TESTROOT = ../..
include ${TESTROOT}/include/common.makefile
LLVMGCC = /usr/local/bin/llvm-gcc
LLVMGXX = /usr/local/bin/llvm-g++
run:
@if [ -f /usr/local/bin/llvm-gcc ] ; then \
$(MAKE) all ; \
else \
${PASS_IFF} /usr/bin/true ; \
fi
all: zero one two three four five six seven eight nine ten eleven twelve thirteen
zero:
${LLVMGCC} ${CCFLAGS} --emit-llvm a.c -c -o a-${ARCH}.o ${OTHER}
${LLVMGCC} ${CCFLAGS} --emit-llvm b.c -c -o b-${ARCH}.o
${LLVMGCC} ${CCFLAGS} main.c -c -o main-${ARCH}.o
${LLVMGCC} ${CCFLAGS} a-${ARCH}.o b-${ARCH}.o main-${ARCH}.o -o main-${ARCH}
${PASS_IFF_GOOD_MACHO} main-${ARCH}
${PASS_IFF} ./main-${ARCH}
one:
${LLVMGCC} ${CCFLAGS} --emit-llvm a1.c -c -o a1-${ARCH}.o
${LLVMGCC} ${CCFLAGS} --emit-llvm b1.c -c -o b1-${ARCH}.o
${LLVMGCC} ${CCFLAGS} main1.c -c -o main1-${ARCH}.o
${LLVMGCC} ${CCFLAGS} a1-${ARCH}.o b1-${ARCH}.o main1-${ARCH}.o -o main1-${ARCH}
${PASS_IFF_GOOD_MACHO} main1-${ARCH}
${PASS_IFF} ./main1-${ARCH}
two:
${LLVMGCC} ${CCFLAGS} --emit-llvm a2.c -c -o a2-${ARCH}.o
${LLVMGCC} ${CCFLAGS} --emit-llvm b2.c -c -o b2-${ARCH}.o
${LLVMGCC} ${CCFLAGS} main2.c -c -o main2-${ARCH}.o
${LLVMGCC} ${CCFLAGS} a2-${ARCH}.o b2-${ARCH}.o main2-${ARCH}.o -o main2-${ARCH}
${PASS_IFF_GOOD_MACHO} main2-${ARCH}
${PASS_IFF} ./main2-${ARCH}
three:
${LLVMGCC} ${CCFLAGS} --emit-llvm a3.c -c -o a3-${ARCH}.o
${LLVMGCC} ${CCFLAGS} --emit-llvm b3.c -c -o b3-${ARCH}.o
${LLVMGCC} ${CCFLAGS} main3.c -c -o main3-${ARCH}.o
${LLVMGCC} ${CCFLAGS} a3-${ARCH}.o b3-${ARCH}.o main3-${ARCH}.o -o main3-${ARCH}
${PASS_IFF_GOOD_MACHO} main3-${ARCH}
${PASS_IFF} ./main3-${ARCH}
four:
${LLVMGCC} ${CCFLAGS} --emit-llvm a4.c -c -o a4-${ARCH}.o
${LLVMGCC} ${CCFLAGS} --emit-llvm b4.c -c -o b4-${ARCH}.o
${LLVMGCC} ${CCFLAGS} main4.c -c -o main4-${ARCH}.o
${LLVMGCC} ${CCFLAGS} a4-${ARCH}.o b4-${ARCH}.o main4-${ARCH}.o -o main4-${ARCH}
${PASS_IFF_GOOD_MACHO} main4-${ARCH}
${PASS_IFF} ./main4-${ARCH}
five:
${LLVMGCC} ${CCFLAGS} --emit-llvm a5.c -c -o a5-${ARCH}.o
${LLVMGCC} ${CCFLAGS} --emit-llvm b5.c -c -o b5-${ARCH}.o
${LLVMGCC} ${CCFLAGS} main5.c -c -o main5-${ARCH}.o
${LLVMGCC} ${CCFLAGS} a5-${ARCH}.o b5-${ARCH}.o main5-${ARCH}.o -o main5-${ARCH} -Wl,-dead_strip
${PASS_IFF_GOOD_MACHO} main5-${ARCH}
${PASS_IFF} ./main5-${ARCH}
${OTOOL} -tV main5-${ARCH} | grep foo3 | ${PASS_IFF_EMPTY}
six:
${LLVMGCC} ${CCFLAGS} --emit-llvm a6.c -c -o a6-${ARCH}.o
${LLVMGCC} ${CCFLAGS} main6.c -c -o main6-${ARCH}.o
${LLVMGCC} ${CCFLAGS} a6-${ARCH}.o main6-${ARCH}.o -o main6-${ARCH} -Wl,-dead_strip
${PASS_IFF_GOOD_MACHO} main6-${ARCH}
${PASS_IFF} ./main6-${ARCH}
${OTOOL} -tV main6-${ARCH} | grep foo2 | ${PASS_IFF_EMPTY}
seven:
${LLVMGCC} ${CCFLAGS} --emit-llvm a7.c -c -o a7-${ARCH}.o
${LLVMGCC} ${CCFLAGS} --emit-llvm b7.c -c -o b7-${ARCH}.o
${LLVMGCC} ${CCFLAGS} main7.c -c -o main7-${ARCH}.o
${LLVMGCC} ${CCFLAGS} a7-${ARCH}.o b7-${ARCH}.o main7-${ARCH}.o -o main7-${ARCH}
${PASS_IFF_GOOD_MACHO} main7-${ARCH}
${PASS_IFF} ./main7-${ARCH}
eight:
${LLVMGCC} ${CCFLAGS} --emit-llvm a8.c -c -o a8-${ARCH}.o
${LLVMGCC} ${CCFLAGS} main8.c -c -o main8-${ARCH}.o
${LLVMGCC} ${CCFLAGS} a8-${ARCH}.o main8-${ARCH}.o -o main8-${ARCH} -Wl,-dead_strip
${PASS_IFF} ./main8-${ARCH}
${OTOOL} -tV main8-${ARCH} | grep foo2 | ${PASS_IFF_EMPTY}
${OTOOL} -tV main8-${ARCH} | grep unnamed_2_1 | ${PASS_IFF_EMPTY}
nine:
${LLVMGCC} ${CCFLAGS} --emit-llvm a9.c -c -o a9-${ARCH}.o
${LLVMGCC} ${CCFLAGS} main9.c -c -o main9-${ARCH}.o
${LLVMGCC} ${CCFLAGS} a9-${ARCH}.o main9-${ARCH}.o -o main9-${ARCH} -Wl,-dead_strip
${PASS_IFF} ./main9-${ARCH}
${OTOOL} -tV main9-${ARCH} | grep foo2 | ${PASS_IFF_EMPTY}
${OTOOL} -tV main9-${ARCH} | grep foo4 | ${PASS_IFF_EMPTY}
${OTOOL} -tV main9-${ARCH} | grep unnamed_2_1 | ${PASS_IFF_EMPTY}
ten:
${LLVMGCC} ${CCFLAGS} --emit-llvm a10.c -c -o a10-${ARCH}.o
${LLVMGCC} ${CCFLAGS} --emit-llvm b10.c -c -o b10-${ARCH}.o
${LLVMGCC} ${CCFLAGS} main10.c -c -o main10-${ARCH}.o
${LLVMGCC} ${CCFLAGS} a10-${ARCH}.o b10-${ARCH}.o main10-${ARCH}.o -o main10-${ARCH}
${PASS_IFF_GOOD_MACHO} main10-${ARCH}
eleven:
${LLVMGCC} ${CCFLAGS} --emit-llvm a11.c -c -o a11-${ARCH}.o
${LLVMGCC} ${CCFLAGS} main11.c -c -o main11-${ARCH}.o
${LLVMGCC} ${CCFLAGS} a11-${ARCH}.o main11-${ARCH}.o -o main11-${ARCH}
${PASS_IFF_GOOD_MACHO} main11-${ARCH}
./main11-${ARCH} >& /dev/null
twelve:
${LLVMGCC} ${CCFLAGS} --emit-llvm a12.c -c -o a12-${ARCH}.o
${LLVMGCC} ${CCFLAGS} main12.c -c -o main12-${ARCH}.o
${LLVMGCC} ${CCFLAGS} a12-${ARCH}.o main12-${ARCH}.o -o main12-${ARCH}
${PASS_IFF_GOOD_MACHO} main12-${ARCH}
./main12-${ARCH}
thirteen:
${LLVMGCC} ${CXXFLAGS} --emit-llvm a13.cc -c -o a13-${ARCH}.o
${LLVMGCC} ${CXXFLAGS} main13.cc -c -o main13-${ARCH}.o
${LLVMGXX} a13-${ARCH}.o main13-${ARCH}.o -o main13-${ARCH}
${PASS_IFF_GOOD_MACHO} main13-${ARCH}
clean:
rm -rf *.o main*-* big.*