phonebookui/Phonebook/Help/bldphobhelp.mk
changeset 0 e686773b3f54
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/Phonebook/Help/bldphobhelp.mk	Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,232 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+#
+#	Build the PhoneBook help files
+#	================================
+#
+#	Also, compare the (definitive) phob.hlp.hrh exported from the source tree
+#	against the one generated from the RTF file, and throw an error if anything 
+#	is different.
+#
+#	Assumptions:
+#	The generated HRH file created by manually building help the first time is
+#	kept as part of the source for the component and exported to 
+#	epoc32\include\cshelp. This is so that this .mk file can pick up the file 
+#	for verfication against the newly generated one.
+#
+#	NB2 There are items in here which are also defined in the project file -
+#	attempts to modify this file to build for other components will require
+#	matching modifications in the project file. These are marked with
+#	"# Also defined in phob.xml"
+#
+#	NB3 Since I had to use the pseudotarget COMPARISON, the comparison of the 
+#	generated and exported HRH files will happen EVERY TIME the final stage 
+#	is run for this component.
+#
+
+#---------------------------------------#
+#										#
+#	Build tools							#
+#										#
+#---------------------------------------#
+
+
+PREPROCESSORTOOL=\epoc32\gcc\bin\cpp.exe
+HELPCOMPILERTOOL=\epoc32\tools\cshlpcmp
+
+#---------------------------------------#
+#										#
+#	Help project file					#
+#										#
+#---------------------------------------#
+
+HELPPROJECTFILE=\PhoneBook\help\phob.xml
+
+#---------------------------------------#
+#										#
+#	Intermediate build directory		#
+#										#
+#---------------------------------------#
+
+PROJECT=PhoneBook
+
+INTERMEDIATEDIR=..\..\epoc32\build\$(PROJECT)\help	# Also defined in phob.xml
+													# as the <output> and <working> fields.
+													# (Has to be defined here as a relative
+													# path because it is passed as a 
+													# parameter to the GCC preprocessor)
+
+$(INTERMEDIATEDIR) :
+	if not exist "\epoc32" md "\epoc32"
+	if not exist "\epoc32\build" md "\epoc32\build"
+	if not exist "\epoc32\build\$(PROJECT)" md "\epoc32\build\$(PROJECT)"
+	if not exist "\epoc32\build\$(PROJECT)\help" md "\epoc32\build\$(PROJECT)\help"
+
+#---------------------------------------#
+#										#
+#	Help build tool output				#
+#										#
+#---------------------------------------#
+
+HELPTOOLTARGETNAME=phob.hlp						#	Also defined in phob.xml
+
+
+#	Define the anticipated output files we're interested in
+
+HELPFILE=$(INTERMEDIATEDIR)\$(HELPTOOLTARGETNAME)
+HELPFILEHRH=$(INTERMEDIATEDIR)\$(HELPTOOLTARGETNAME).hrh
+HELPFILEOPH=$(INTERMEDIATEDIR)\$(HELPTOOLTARGETNAME).oph
+HELPFILEOPHTXT=$(INTERMEDIATEDIR)\$(HELPTOOLTARGETNAME).oph.txt
+
+HELPTOOLOUTPUT=$(HELPFILE) $(HELPFILEHRH) $(HELPFILEOPH) $(HELPFILEOPHTXT)
+
+#	Build the help files
+
+$(HELPTOOLOUTPUT) : $(INTERMEDIATEDIR) $(HELPPROJECTFILE)
+	$(HELPCOMPILERTOOL) $(HELPPROJECTFILE)
+
+#---------------------------------------#
+#										#
+#	Final destinations for output		#
+#										#
+#---------------------------------------#
+
+!IF "$(PLATFORM)"=="WINS"
+HELPTARGETDIR=\EPOC32\release\$(PLATFORM)\$(CFG)\z\system\help
+OPHTARGETDIR=\EPOC32\release\$(PLATFORM)\$(CFG)\z\system\opl
+!ELSE
+HELPTARGETDIR=\EPOC32\release\$(PLATFORM)\$(CFG)
+OPHTARGETDIR=\EPOC32\release\$(PLATFORM)\$(CFG)
+!ENDIF
+
+
+#	Create the destination directory for the helpfile
+
+#	NB Unpleasant use of IF WINS block below avoids error U4004
+#	in ARMI builds where the two paths are the same.
+
+$(HELPTARGETDIR) :
+	@if not exist "\EPOC32" md "\EPOC32"
+	@if not exist "\EPOC32\release" md "\EPOC32\release"
+	@if not exist "\EPOC32\release\$(PLATFORM)\" md "\EPOC32\release\$(PLATFORM)\"
+	@if not exist "\EPOC32\release\$(PLATFORM)\$(CFG)" md "\EPOC32\release\$(PLATFORM)\$(CFG)"
+!IF "$(PLATFORM)"=="WINS"
+	@if not exist "\EPOC32\release\$(PLATFORM)\$(CFG)\z" md "\EPOC32\release\$(PLATFORM)\$(CFG)\z"
+	@if not exist "\EPOC32\release\$(PLATFORM)\$(CFG)\z\System" md "\EPOC32\release\$(PLATFORM)\$(CFG)\z\System"
+	@if not exist "\EPOC32\release\$(PLATFORM)\$(CFG)\z\System\help" md "\EPOC32\release\$(PLATFORM)\$(CFG)\z\System\help"
+
+#	Create the destination directory for the OPH file
+
+$(OPHTARGETDIR) :
+	@if not exist "\EPOC32" md "\EPOC32"
+	@if not exist "\EPOC32\release" md "\EPOC32\release"
+	@if not exist "\EPOC32\release\$(PLATFORM)\" md "\EPOC32\release\$(PLATFORM)\"
+	@if not exist "\EPOC32\release\$(PLATFORM)\$(CFG)" md "\EPOC32\release\$(PLATFORM)\$(CFG)"
+	@if not exist "\EPOC32\release\$(PLATFORM)\$(CFG)\z" md "\EPOC32\release\$(PLATFORM)\$(CFG)\z"
+	@if not exist "\EPOC32\release\$(PLATFORM)\$(CFG)\z\System" md "\EPOC32\release\$(PLATFORM)\$(CFG)\z\System"
+	@if not exist "\EPOC32\release\$(PLATFORM)\$(CFG)\z\System\opl" md "\EPOC32\release\$(PLATFORM)\$(CFG)\z\System\opl"
+!ENDIF
+
+
+#	Copy the helpfile to its final destination
+
+HELPFILEFINAL=$(HELPTARGETDIR)\$(HELPTOOLTARGETNAME)
+
+$(HELPFILEFINAL) : $(HELPTARGETDIR) $(HELPFILE)
+	copy $(HELPFILE) $@
+
+
+#	Copy the helpfile OPH to its final destination
+
+OPHFILEFINAL=$(OPHTARGETDIR)\$(HELPTOOLTARGETNAME).oph
+
+$(OPHFILEFINAL) : $(OPHTARGETDIR) 
+	copy $(HELPFILEOPH) $@
+
+#---------------------------------------#
+#										#
+#	Preprocess and compare the two		#
+#	HRH files (one exported from		#
+#	source, one generated).				#
+#										#
+#---------------------------------------#
+
+
+#	Preprocess the generated HRH file
+
+PPGENERATEDHELPFILEHRH=$(HELPFILEHRH).gen.pp
+
+$(PPGENERATEDHELPFILEHRH) : $(HELPTOOLOUTPUT)
+	$(PREPROCESSORTOOL) -P $(HELPFILEHRH) $(PPGENERATEDHELPFILEHRH)
+
+
+#	Preprocess the exported HRH file
+
+EXPORTEDHELPFILEHRH=..\..\epoc32\include\cshelp\$(HELPTOOLTARGETNAME).hrh
+# NB Has to be defined as a relative path because it is going to be used
+# as a parameter for the GCC preprocessor.
+
+PPEXPORTEDHELPFILEHRH=$(INTERMEDIATEDIR)\$(HELPTOOLTARGETNAME).hrh.exp.pp
+
+$(PPEXPORTEDHELPFILEHRH) : $(INTERMEDIATEDIR) $(EXPORTEDHELPFILEHRH)
+	@$(PREPROCESSORTOOL) -P $(EXPORTEDHELPFILEHRH) $(PPEXPORTEDHELPFILEHRH)
+
+
+#	Do the comparison
+#	NB. we have to use the -call so that we can use the errorlevel
+#	returned by fc4bat without breaking NMAKE
+
+COMPARISON : $(PPEXPORTEDHELPFILEHRH) $(PPGENERATEDHELPFILEHRH)
+	@-call ..\help\compare.cmd $(PPEXPORTEDHELPFILEHRH) $(PPGENERATEDHELPFILEHRH)
+
+#---------------------------------------#
+#										#
+#	The targets invoked by bld...		#
+#										#
+#---------------------------------------#
+
+do_nothing :
+
+MAKMAKE : do_nothing
+
+BLD : do_nothing
+
+SAVESPACE : BLD
+
+CLEAN :
+	@if exist $(HELPFILE) erase $(HELPFILE)
+	@if exist $(HELPFILEHRH) erase $(HELPFILEHRH)
+	@if exist $(HELPFILEOPH) erase $(HELPFILEOPH)
+	@if exist $(HELPFILEOPHTXT) erase $(HELPFILEOPHTXT)
+	@if exist $(OPHFILEFINAL) erase $(OPHFILEFINAL)
+	@if exist $(HELPFILEFINAL) erase $(HELPFILEFINAL)
+	@if exist $(PPEXPORTEDHELPFILEHRH) erase $(PPEXPORTEDHELPFILEHRH)
+	@if exist $(PPGENERATEDHELPFILEHRH) erase $(PPGENERATEDHELPFILEHRH)
+
+FREEZE : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+RESOURCE : do_nothing
+
+RELEASABLES :
+	@echo $(OPHFILEFINAL)
+	@echo $(HELPFILEFINAL)
+
+FINAL : COMPARISON $(OPHFILEFINAL) $(HELPFILEFINAL) 
+