Skip to content
Snippets Groups Projects
Commit 8adc88ca authored by Paul McCarthy's avatar Paul McCarthy :mountain_bicyclist:
Browse files

RF: Go back to having depend.mk logic inline, rather than in separate script,

as passing/escaping variables with special characters is far too painful.
parent fed82872
No related branches found
No related tags found
1 merge request!42RF: Go back to having depend.mk logic inline, rather than in separate script
...@@ -19,7 +19,6 @@ install: ...@@ -19,7 +19,6 @@ install:
${INSTALL} -m 0755 bin/* ${PREFIX}/share/fsl/bin/ ${INSTALL} -m 0755 bin/* ${PREFIX}/share/fsl/bin/
${INSTALL} -m 0644 config/* ${PREFIX}/config/ ${INSTALL} -m 0644 config/* ${PREFIX}/config/
${INSTALL} -m 0755 config/supportedGencodes.sh ${PREFIX}/config/ ${INSTALL} -m 0755 config/supportedGencodes.sh ${PREFIX}/config/
${INSTALL} -m 0755 config/depend.sh ${PREFIX}/config/
${INSTALL} -m 0644 doc/fsl.css ${PREFIX}/doc/ ${INSTALL} -m 0644 doc/fsl.css ${PREFIX}/doc/
${INSTALL} -m 0644 doc/images/* ${PREFIX}/doc/images/ ${INSTALL} -m 0644 doc/images/* ${PREFIX}/doc/images/
${INSTALL} -m 0644 etc/fslconf/* ${PREFIX}/etc/fslconf/ ${INSTALL} -m 0644 etc/fslconf/* ${PREFIX}/etc/fslconf/
......
#!/bin/sh
#
# This script is called by the depend.mk rule defined in
# $FSLDIR/config/rules.mk.
#
# It is assumed that this script is executed from a
# project directory (i.e. the project directory is the cwd).
#
# Automatically generate Make rules and dependencies for
# all source files in the project. This creates a file
# called depend.mk which contains a rule for every object
# file to be compiled, which has all header files
# that the source file includes as dependencies. If
# object files are to be saved into a separate build
# directory, the project Makefile should set the BUILDDIR
# variable.
#
# If the NVCC environment variable is set to a nvcc compiler,
# rules are generated for CUDA .cu files. If CUDA object files
# are to be saved into a separate build directory, the project
# Makefile should set the CUDABUILDDIR variable.
set -e
echo "Building dependency file depend.mk"
srcfiles=`find -name "*.c" -or -name "*.cc" -or -name "*.cxx" -or -name "*.cpp" -or -name "*.inc" -or -name "*.hpp" -or -name "*.cu"`
for srcfile in ${srcfiles} dummyname; do
if [ -f "${srcfile}" ]; then
srcfile="${srcfile#./}"
prefix="${srcfile%.*}"
basename="${prefix##*/}"
objfile="${basename}.o"
depfile="${basename}.mk"
# if nvcc is present, use it for .cu files
if [ "${srcfile%.cu}" = "${prefix}" ]; then
if [ -f "${NVCC}" ]; then
${NVCC} -MM -MT "${CUDABUILDDIR}${objfile}" -MF "${depfile}" \
${CPPFLAGS} ${INCFLAGS} "${srcfile}" > /dev/null 2>&1
fi
else
${CC} -MM -MT "${BUILDDIR}${objfile}" -MF "${depfile}" \
${CPPFLAGS} ${INCFLAGS} "${srcfile}" > /dev/null 2>&1
fi
if [ -f "${depfile}" ]; then
cat "${depfile}" >> depend.mk
rm -f "${depfile}"
fi
else
touch depend.mk
fi
done
...@@ -20,15 +20,46 @@ depend: ...@@ -20,15 +20,46 @@ depend:
${RM} -f depend.mk ${RM} -f depend.mk
${MAKE} depend.mk ${MAKE} depend.mk
# Automatically generate Make rules and dependencies for
# all source files in the project. This creates a file
# called depend.mk which contains a rule for every object
# file to be compiled, which has all header files
# that the source file includes as dependencies. If
# object files are to be saved into a separate build
# directory, the project Makefile should set the BUILDDIR
# variable.
#
# If the NVCC environment variable is set to a nvcc compiler,
# rules are generated for CUDA .cu files. If CUDA object files
# are to be saved into a separate build directory, the project
# Makefile should set the CUDABUILDDIR variable.
depend.mk: depend.mk:
@NVCC="${NVCC}" \ echo "Building dependency file depend.mk" ; \
CC="${CC}" \ srcfiles=`find -name "*.c" -or -name "*.cc" -or -name "*.cxx" -or -name "*.cpp" -or -name "*.inc" -or -name "*.hpp" -or -name "*.cu"` ; \
CPPFLAGS="${CPPFLAGS}" \ for srcfile in ${srcfiles} dummyname; do \
INCFLAGS="${INCFLAGS}" \ if [ -f "${srcfile}" ]; then \
BUILDDIR="${BUILDDIR}" \ srcfile="${srcfile#./}" ; \
CUDABUILDDIR="${CUDABUILDDIR}" \ prefix="${srcfile%.*}" ; \
${FSLCONFDIR}/depend.sh basename="${prefix##*/}" ; \
objfile="${basename}.o" ; \
depfile="${basename}.mk" ; \
if [ "${srcfile%.cu}" = "${prefix}" ]; then \
if [ -f "${NVCC}" ]; then \
${NVCC} -MM -MT "${CUDABUILDDIR}${objfile}" -MF "${depfile}" \
${CPPFLAGS} ${INCFLAGS} "${srcfile}" > /dev/null 2>&1 ; \
fi ; \
else \
${CC} -MM -MT "${BUILDDIR}${objfile}" -MF "${depfile}" \
${CPPFLAGS} ${INCFLAGS} "${srcfile}" > /dev/null 2>&1 ; \
fi ; \
if [ -f "${depfile}" ]; then \
cat "${depfile}" >> depend.mk ; \
rm -f "${depfile}" ; \
fi ; \
else \
touch depend.mk ; \
fi ; \
done
install: install:
@${MAKE} "DESTDIR=${FSLDEVDIR}" master-install-script @${MAKE} "DESTDIR=${FSLDEVDIR}" master-install-script
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment