Orb/lib/flm/doxygen.flm
changeset 1 82f11024044a
parent 0 42188c7ea2d9
--- a/Orb/lib/flm/doxygen.flm	Thu Jan 21 17:29:01 2010 +0000
+++ b/Orb/lib/flm/doxygen.flm	Thu Mar 18 18:26:18 2010 +0000
@@ -13,10 +13,21 @@
 # to generate documentation.
 
 
+
 #Print version and generated dox file in log file
 $(info Using Doxygen Extension Version: 0.1)
 $(info DOXYFILE: $(OUTPUTPATH)/$(DOXY_FILE))
 
+# The groupin10 macro allows us to construct a via file, 10 objects at a time
+# to avoid limits on argument lengths and sizes on Windows.
+# It expands to a list of commands, each of which is on a separate line.
+# This causes the shell to be invoked once for each line but each line should
+# be shorter than the maximum allowed by windows.
+define groupin10
+	$(if $1,echo -e $(foreach L,$(wordlist 1,10,$1),"<header>$(L)</header>\\n") >>$(OUTPUTPATH)/meta.xml,)
+	$(if $1,$(call groupin10,$(wordlist 11,$(words $1),$1)),@true)
+endef
+
 #definition that generates a doxygen configuration file and runs doxygen on it
 define generatedoxconfig
 ALL:: $(OUTPUTPATH)/$(DOXY_FILE).done
@@ -28,14 +39,13 @@
 	$(SBS_DOXYGEN) $(OUTPUTPATH)/$(DOXY_FILE) &&  \
 	$(GNUTOUCH) $(OUTPUTPATH)/$(DOXY_FILE).done && \
 	$(SBS_PYTHON) "$(SBS_HOME)/python/doxygen/mapfilter.py" $(OUTPUTPATH)/dox/dita/$(TARGET).ditamap $(OUTPUTPATH)/meta.xml && \
-	$(SBS_PYTHON) "$(SBS_HOME)/python/doxygen/linkinserter.py" $(OUTPUTPATH)/dox/dita && \
 	$(GNUCP) -r $(OUTPUTPATH)/dox/dita $(EPOCROOT)/epoc32/release/doxygen \
 	$(call endrule,rundoxygen)
 
 # Create a meta.xml file which lists all of the project exports (header files exported by this target to epoc32)
 $(OUTPUTPATH)/meta.xml: $(PROJECT_META)
 	echo "<exports>" > $(OUTPUTPATH)/meta.xml && \
-	echo -e "$(foreach header,$(EXPORTHEADERS),<header>$(header)</header>\n)" >> $(OUTPUTPATH)/meta.xml && \
+    $(call groupin10,$(EXPORTHEADERS)) && \
 	echo "</exports>" >> $(OUTPUTPATH)/meta.xml
 	
 #Generate the doxygen configuration file from a template
@@ -109,6 +119,7 @@
 DOXY_FILE:=config.dox
 TMP_HRH_DEFINES_FILE:=hrhdefines.txt.tmp
 HRH_DEFINES_FILE:=hrhdefines.txt
+
 $(eval $(generatedoxconfig))
 
 # make the output directories while reading makefile - some build engines prefer this