.if ${MACHINE_ARCH} == amd64 CC+= -m32 .endif LIBS_O= bzero64_tramp.o bcopy64_tramp.o memset64_tramp.o emm64_syscall.o emm64_mmap64.o emm64_msync64.o emm64_munmap64.o tramp64.o LIBS_SO=bzero64_tramp.o bcopy64_tramp.o memset64_tramp.o emm64_syscall.So emm64_mmap64.So emm64_msync64.So emm64_munmap64.So tramp64.o all: libemm64.a libemm64.so test_bcopy64 test_bzero64 test_memset64 test_emm64 test_bz64 # bcopy test_bcopy64: call_bcopy64.o libemm64.so ${CC} ${CFLAGS} -o test_bcopy64 call_bcopy64.o libemm64.so bcopy64_tramp.o: bcopy64_tramp.S ${CC} ${CFLAGS} -c bcopy64_tramp.S call_bcopy64.o: call_bcopy64.c libemm64.h ${CC} ${CFLAGS} -g -c call_bcopy64.c # bzero test_bzero64: call_bzero64.o libemm64.so ${CC} ${CFLAGS} -o test_bzero64 call_bzero64.o libemm64.so bzero64_tramp.o: bzero64_tramp.S ${CC} ${CFLAGS} -c bzero64_tramp.S call_bzero64.o: call_bzero64.c libemm64.h ${CC} ${CFLAGS} -g -c call_bzero64.c # memset test_memset64: call_memset64.o libemm64.so ${CC} ${CFLAGS} -o test_memset64 call_memset64.o libemm64.so memset64_tramp.o: memset64_tramp.S ${CC} ${CFLAGS} -c memset64_tramp.S call_memset64.o: call_memset64.c libemm64.h ${CC} ${CFLAGS} -g -c call_memset64.c # Generic C wrapper test_bz64: bz64.o call_bz64.o tramp64.o ${CC} ${CFLAGS} -o test_bz64 bz64.o call_bz64.o tramp64.o tramp64.o: tramp64.S ${CC} ${CFLAGS} -c tramp64.S bz64.o: bz64.c ${CC} ${CFLAGS} -m64 -g -c bz64.c call_bz64.o: call_bz64.c libemm64.h ${CC} ${CFLAGS} -c call_bz64.c # emm64 test_emm64: emm64.o libemm64.so ${CC} ${CFLAGS} -o test_emm64 emm64.o libemm64.so emm64.o: emm64.c libemm64.h emm64_syscall.h ${CC} ${CFLAGS} -g -c emm64.c # emm64 lib functions emm64_syscall.o: emm64_syscall.c libemm64.h emm64_syscall.h ${CC} ${CFLAGS} -g -c emm64_syscall.c emm64_syscall.So: emm64_syscall.c libemm64.h emm64_syscall.h ${CC} ${CFLAGS} -fpic -DPIC -g -c -o emm64_syscall.So emm64_syscall.c emm64_mmap64.o: emm64_mmap64.c libemm64.h emm64_syscall.h ${CC} ${CFLAGS} -g -c emm64_mmap64.c emm64_mmap64.So: emm64_mmap64.c libemm64.h emm64_syscall.h ${CC} ${CFLAGS} -fpic -DPIC -g -c -o emm64_mmap64.So emm64_mmap64.c emm64_msync64.o: emm64_msync64.c libemm64.h emm64_syscall.h ${CC} ${CFLAGS} -g -c emm64_msync64.c emm64_msync64.So: emm64_msync64.c libemm64.h emm64_syscall.h ${CC} ${CFLAGS} -fpic -DPIC -g -c -o emm64_msync64.So emm64_msync64.c emm64_munmap64.o: emm64_munmap64.c libemm64.h emm64_syscall.h ${CC} ${CFLAGS} -g -c emm64_munmap64.c emm64_munmap64.So: emm64_munmap64.c libemm64.h emm64_syscall.h ${CC} ${CFLAGS} -fpic -DPIC -g -c -o emm64_munmap64.So emm64_munmap64.c # dlsym64 etc libdl64.a: dlfunc64.o ar cq libdl64.a dlfunc64.o libdl64.so: dlfunc64.So ${CC} ${CFLAGS} -shared -Wl,-x,--soname,libdl64.so.1 -o libdl64.so.1 dlfunc64.So ln -sf libdl64.so.1 libdl64.so dlfunc64.o: dlfunc64.c libemm64.h ${CC} ${CFLAGS} -g -c dlfunc64.c dlfunc64.So: dlfunc64.c libemm64.h ${CC} ${CFLAGS} -fpic -DPIC -g -c -o dlfunc64.So dlfunc64.c # libs libemm64.a: ${LIBS_O} ar cq libemm64.a ${LIBS_O} # The tramp functions are all internally 100% PIC. libemm64.so: ${LIBS_SO} ${CC} ${CFLAGS} -shared -Wl,-x,--soname,libemm64.so.1 -o libemm64.so.1 ${LIBS_SO} ln -sf libemm64.so.1 libemm64.so # misc clean: rm -f test_bcopy64 bcopy64_tramp.o call_bcopy64.o rm -f test_bzero64 bzero64_tramp.o call_bzero64.o rm -f test_memset64 memset64_tramp.o call_memset64.o rm -f libemm64.a libemm64.so libemm64.so.1 rm -rf FreeBSD.*.package libemm64-*.tgz rm -f test_emm64 emm64.o rm -f test_bz64 call_bz64.o tramp64.o rm -f ${LIBS_O} ${LIBS_SO}