#! /bin/bash
set -e SCRATCH=${TMPDIR:-$(getconf DARWIN_USER_TEMP_DIR)}/$$
[[ -d "$SCRATCH" ]] || mkdir -p "$SCRATCH"
usage()
{
echo Usage: make-idl-client INCLUDES IDL
exit 2
}
client_stubs()
{
local idl=$(basename "$1")
echo ${idl%.idl}_client.c
}
client_header()
{
local idl=$(basename "$1")
echo ${idl%.idl}_client.h
}
if [ "$#" != 2 ] ; then
usage
fi
includes="$1"
idl="$2"
stubs=$(client_stubs "$idl")
header=$(client_header "$idl")
echo generating client stubs for $(basename $idl)
xcrun dceidl "$idl" \
-server none \
-keep c_source \
-I "$includes" \
-I ${SMBFS_RPC_HEADERS} \
-cstub "$SCRATCH/$stubs" \
-header "$SCRATCH/$header"
if [ "$idl" -nt "${DERIVED_FILES_DIR}/$header" ] ; then
rm -f "${DERIVED_FILES_DIR}/$header"
fi
if [ "$idl" -nt "${DERIVED_FILES_DIR}/$stubs" ] ; then
rm -f "${DERIVED_FILES_DIR}/$stubs"
fi
mv -n "$SCRATCH/$header" "${DERIVED_FILES_DIR}/$header" || true
mv -n "$SCRATCH/$stubs" "${DERIVED_FILES_DIR}/$stubs" || true