From 7fb50b8c6646f1572bdc55e6494aedf889488640 Mon Sep 17 00:00:00 2001 From: Angus Leeming Date: Thu, 13 Mar 2003 11:37:15 +0000 Subject: [PATCH] Fix bug 944: src/frontends/xforms/forms/fdfix.sh uses fixed file names for temporary files, thus make dist on SMP fails. Fix is trivial -- all temporary files should have $$ (PID) appended to them. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@6483 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/xforms/ChangeLog | 6 +++++ src/frontends/xforms/forms/fdfix.sh | 34 ++++++++++++++++++--------- src/frontends/xforms/forms/fdfixh.sed | 5 ++-- 3 files changed, 32 insertions(+), 13 deletions(-) diff --git a/src/frontends/xforms/ChangeLog b/src/frontends/xforms/ChangeLog index dbe21084f9..7f662946dd 100644 --- a/src/frontends/xforms/ChangeLog +++ b/src/frontends/xforms/ChangeLog @@ -1,3 +1,9 @@ +2003-03-13 Angus Leeming + + * forms/fdfix.sh: + * forms/fdfixh.sed: fix #944 by making the temporary filenames unique + and so enable reentrant builds on SMP machines. + 2003-03-12 Angus Leeming * Dialogs.C: diff --git a/src/frontends/xforms/forms/fdfix.sh b/src/frontends/xforms/forms/fdfix.sh index 2d12d3a3b0..7a8f3754b8 100644 --- a/src/frontends/xforms/forms/fdfix.sh +++ b/src/frontends/xforms/forms/fdfix.sh @@ -15,13 +15,17 @@ INTRO_MESSAGE () { +test $# -eq 1 || { + echo "Expected a file name!" + exit 1 +} + # Note that we can't create a variable containing this and then # echo it across because some machines require -e to recognize \n et al. # Other machines, of course output -e, it not being an option they # recognise ;-) -# Set ${OUTPUT_FILE} to ${HOUT} or ${COUT} as appropriate -cat - > ${OUTPUT_FILE} < $1 < ${EXTERN_FUNCS} if [ -s ${EXTERN_FUNCS} ]; then - sort -u ${EXTERN_FUNCS} > tmp + TMP=tmp.$$ + sort -u ${EXTERN_FUNCS} > ${TMP} echo "extern \"C\" {" > ${EXTERN_FUNCS} - cat tmp >> ${EXTERN_FUNCS} + cat ${TMP} >> ${EXTERN_FUNCS} echo "}" >> ${EXTERN_FUNCS} - rm -f tmp + rm -f ${TMP} fi -FDFIXH=${DIRNAME}/fdfixh.sed +# First ensure that the sed script knows where to find ${EXTERN_FUNCS} +FDFIXH=fdfixh.$$ +sed "s/EXTERN_FUNCS/${EXTERN_FUNCS}/" ${DIRNAME}/fdfixh.sed > ${FDFIXH} -OUTPUT_FILE=${HOUT}; INTRO_MESSAGE +INTRO_MESSAGE ${HOUT} sed -f ${FDFIXH} < ${HIN} >> ${HOUT} -rm -f ${EXTERN_FUNCS} + +# Don't forget to clean up the temporary files. +rm -f ${EXTERN_FUNCS} ${FDFIXH} # Patch the .h file if a patch exists if [ -f "${HPATCH}" ] ; then @@ -122,8 +133,9 @@ FINAL_COUT=${BASENAME}.C # Pass 1. The bulk of the clean-up FDFIXC=${DIRNAME}/fdfixc.sed -TMP=tmp -OUTPUT_FILE=${TMP}; INTRO_MESSAGE + +TMP=tmp.$$ +INTRO_MESSAGE ${TMP} echo "#include " >> ${TMP} echo "#include \"forms_gettext.h\"" >> ${TMP} diff --git a/src/frontends/xforms/forms/fdfixh.sed b/src/frontends/xforms/forms/fdfixh.sed index e1bf0dc8db..7925b78c56 100644 --- a/src/frontends/xforms/forms/fdfixh.sed +++ b/src/frontends/xforms/forms/fdfixh.sed @@ -29,14 +29,15 @@ s/[ ]*$// # Immediately after line "#define FD_xxx_h_" that starts off the header file, -# #include "fdesign_base.h" and append the contents of file "extern.tmp". +# #include "fdesign_base.h" and append the contents of file EXTERN_FUNCS. # This latter is a sorted, unique list of any function declarations. +# The actual name of the file is inserted by the parent shell script. /#define FD/{ a\ \ #include "fdesign_base.h"\ -r extern.tmp +r EXTERN_FUNCS } -- 2.39.2