From 614326fcb650f35cd81b4af78ade598ab3ed5162 Mon Sep 17 00:00:00 2001
From: Ben Avison <bavison@riscosopen.org>
Date: Tue, 4 Jun 2019 12:17:53 +0100
Subject: [PATCH] Fix merging of CmdHelp/Messages files when cross-compiling

---
 GNUmakefiles/AAsmModule |  2 +-
 GNUmakefiles/CModule    | 20 +++++++++++++++++---
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/GNUmakefiles/AAsmModule b/GNUmakefiles/AAsmModule
index e501221..f2c7c49 100644
--- a/GNUmakefiles/AAsmModule
+++ b/GNUmakefiles/AAsmModule
@@ -237,7 +237,7 @@ ${MERGEDMSGS}:
 	${MKDIR} ${MERGEDRDIR}/${TARGET}
 	${TOUCH} ${MERGEDRDIR}/tmp/Messages
 	${TOUCH} ${MERGEDRDIR}/tmp/CmdHelp
-	${INSTRES} -I Resources.${USERIF}.${LOCALE},Resources.${USERIF}.UK,Resources.${LOCALE},Resources.UK,Resources ${MERGEDRDIR} [Messages] [CmdHelp]
+	${INSTRES} -I Resources.${USERIF}.${LOCALE},Resources.${USERIF}.UK,Resources.${LOCALE},Resources.UK,Resources ${MERGEDRDIR}/tmp [Messages] [CmdHelp]
 	${CAT} ${MERGEDRDIR}/tmp/Messages ${MERGEDRDIR}/tmp/CmdHelp > $@
 	${WIPE} ${MERGEDRDIR}/tmp
 else
diff --git a/GNUmakefiles/CModule b/GNUmakefiles/CModule
index 5da3e50..3bb53a4 100644
--- a/GNUmakefiles/CModule
+++ b/GNUmakefiles/CModule
@@ -144,7 +144,7 @@ INSTRAM_DEPENDS ?= ${INSTRES_DEPENDS}
 INSTROM_FILES   ?= ${INSTRES_FILES}
 INSTROM_DEPENDS ?= ${INSTRES_DEPENDS}
 MERGEDRDIR   ?= _ResData_
-MERGEDMSGS   ?= ${MERGEDRDIR}/${TARGET}/Messages
+MERGEDMSGS   ?= ${MERGEDRDIR}/${TARGET}/MergedMessages
 RES_AREA     ?= Resources
 RES_OBJ      ?= ${TARGET}Msgs
 RES_PATH     ?= Resources
@@ -162,7 +162,7 @@ ROM_OBJS     += ${CMHGFILE}
 SA_OBJS      += ${CMHGFILE}
 DBG_OBJS     += ${CMHGFILE}
 ifeq ($(filter no custom,${CUSTOMRES}),)
-RESDIR       ?= ${MERGEDRDIR}  # Place to internally collect up contents of RES_OBJ
+RESDIR       ?= ${MERGEDRDIR}
 SA_OBJS      += ${RES_OBJ}
 DBG_OBJS     += ${RES_OBJ}
 endif
@@ -358,7 +358,7 @@ resources_common:
 	${INSTRES} -I Resources.${USERIF}.${LOCALE},Resources.${USERIF}.UK,Resources.${LOCALE},Resources.UK,Resources ${RESFSDIR} [Messages]
 
 resources_cmdhelp: ${MERGEDMSGS}
-	${CP} ${MERGEDMSGS} ${RESFSDIR}/Messages
+	mv ${MERGEDMSGS} ${RESFSDIR}/Messages
 
 resources-None: resources_common resources_extra
 	@${NOP}
@@ -373,6 +373,20 @@ ${RES_OBJ}.o: ${DIRS} resources-${CMDHELP}
 ${RES_OBJ}.od: ${RES_OBJ}.o
 	${CP} $< $@
 
+ifeq ($(filter no custom,${CUSTOMRES}),)
+${MERGEDMSGS}:
+	${MKDIR} ${MERGEDRDIR}/tmp
+	${MKDIR} ${MERGEDRDIR}/${TARGET}
+	${TOUCH} ${MERGEDRDIR}/tmp/Messages
+	${TOUCH} ${MERGEDRDIR}/tmp/CmdHelp
+	${INSTRES} -I Resources.${USERIF}.${LOCALE},Resources.${USERIF}.UK,Resources.${LOCALE},Resources.UK,Resources ${MERGEDRDIR}/tmp [Messages] [CmdHelp]
+	${CAT} ${MERGEDRDIR}/tmp/Messages ${MERGEDRDIR}/tmp/CmdHelp > $@
+	${WIPE} ${MERGEDRDIR}/tmp
+else
+${MERGEDMSGS}::
+	@${NOP}
+endif
+
 #
 # ROM build rules
 #
-- 
GitLab