Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
also remove xbt/automaton which was only useful to stateful MC
[simgrid.git] / tools / cmake / MaintainerMode.cmake
index a277ad0..9a4f3b5 100644 (file)
@@ -8,42 +8,9 @@ set(FLEX_MIN_MAJOR 2)
 set(FLEX_MIN_MINOR 5)
 set(FLEX_MIN_PATCH 39)
 
-# the rest should only be changed if you understand what you're doing
-if(enable_maintainer_mode AND NOT WIN32)
-  if (PYTHON_EXECUTABLE)
-    add_custom_command(
-      OUTPUT
-      ${CMAKE_HOME_DIRECTORY}/src/simix/popping_generated.cpp
-      ${CMAKE_HOME_DIRECTORY}/src/simix/popping_bodies.cpp
-      ${CMAKE_HOME_DIRECTORY}/src/simix/popping_enum.h
-      ${CMAKE_HOME_DIRECTORY}/src/simix/popping_accessors.hpp
-
-      DEPENDS
-      ${CMAKE_HOME_DIRECTORY}/src/simix/simcalls.py
-      ${CMAKE_HOME_DIRECTORY}/src/simix/simcalls.in
-
-      COMMENT "Generating simcalls source files"
-      COMMAND ${PYTHON_EXECUTABLE} simcalls.py
-      WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}/src/simix/
-      )
-
-    add_custom_target(simcalls_generated_src
-      DEPENDS
-      ${CMAKE_HOME_DIRECTORY}/src/simix/popping_generated.cpp
-      ${CMAKE_HOME_DIRECTORY}/src/simix/popping_bodies.cpp
-      ${CMAKE_HOME_DIRECTORY}/src/simix/popping_enum.h
-      ${CMAKE_HOME_DIRECTORY}/src/simix/popping_accessors.hpp
-      )
-
-    SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES
-      "${CMAKE_HOME_DIRECTORY}/src/simix/popping_enum.h;${CMAKE_HOME_DIRECTORY}/src/simix/popping_generated.cpp;${CMAKE_HOME_DIRECTORY}/src/simix/popping_bodies.cpp;${CMAKE_HOME_DIRECTORY}/src/simix/popping_accessors.hpp"
-      )
-  endif()
-endif()
-
 # Let's generate header files required by SMPI when the call location tracing
 # has been activated.
-if(enable_maintainer_mode AND NOT WIN32)
+if(enable_maintainer_mode)
   add_custom_command(OUTPUT ${CMAKE_HOME_DIRECTORY}/include/smpi/smpi_extended_traces.h
                             ${CMAKE_HOME_DIRECTORY}/include/smpi/smpi_extended_traces_fortran.h
     DEPENDS
@@ -68,45 +35,14 @@ if(enable_maintainer_mode AND NOT WIN32)
   )
 endif()
 
-if(enable_maintainer_mode AND NOT WIN32)
+if(enable_maintainer_mode)
   find_program(FLEX_EXE NAMES flex)
   find_program(FLEXML_EXE NAMES flexml)
   find_program(SED_EXE NAMES sed)
-  find_program(BISON_EXE NAMES bison)
   find_program(LEX_EXE NAMES lex)
 
-  mark_as_advanced(BISON_EXE)
   mark_as_advanced(LEX_EXE)
 
-  if(BISON_EXE AND LEX_EXE)
-    add_custom_command(
-      OUTPUT
-      ${CMAKE_HOME_DIRECTORY}/src/xbt/automaton/automaton_lexer.yy.c
-      ${CMAKE_HOME_DIRECTORY}/src/xbt/automaton/parserPromela.tab.cacc
-      ${CMAKE_HOME_DIRECTORY}/src/xbt/automaton/parserPromela.tab.hacc
-
-      DEPENDS
-      ${CMAKE_HOME_DIRECTORY}/src/xbt/automaton/parserPromela.lex
-      ${CMAKE_HOME_DIRECTORY}/src/xbt/automaton/parserPromela.yacc
-
-      COMMENT "Generating automaton source files"
-      COMMAND ${BISON_EXE} --name-prefix=xbt_automaton_parser_ -d parserPromela.yacc
-      COMMAND ${LEX_EXE} --prefix=xbt_automaton_parser_ --outfile=automaton_lexer.yy.c parserPromela.lex
-      WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}/src/xbt/automaton/
-      )
-
-    add_custom_target(automaton_generated_src
-      DEPENDS
-      ${CMAKE_HOME_DIRECTORY}/src/xbt/automaton/automaton_lexer.yy.c
-      ${CMAKE_HOME_DIRECTORY}/src/xbt/automaton/parserPromela.tab.cacc
-      ${CMAKE_HOME_DIRECTORY}/src/xbt/automaton/parserPromela.tab.hacc
-      )
-
-    SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES
-      "${CMAKE_HOME_DIRECTORY}/src/xbt/automaton/parserPromela.tab.cacc;${CMAKE_HOME_DIRECTORY}/src/xbt/automaton/parserPromela.tab.hacc;${CMAKE_HOME_DIRECTORY}/src/xbt/automaton/automaton_parse.yy.c"
-      )
-  endif()
-
   message(STATUS "Found flex: ${FLEX_EXE}")
   IF(FLEX_EXE)
     set(HAVE_FLEX 1)
@@ -162,66 +98,60 @@ if(enable_maintainer_mode AND NOT WIN32)
 
     set(string1  "'s/extern /XBT_PUBLIC_DATA /'")
     set(string2  "'s/XBT_PUBLIC_DATA \\([^(]*\\)(/XBT_PUBLIC \\1(/'")
+    set(string3  "'s/XBT_PUBLIC void STag_simgrid_parse_include/XBT_ATTRIB_NORETURN &/'") # remove with v5 of the dtd
+    set(string4  "'s/XBT_PUBLIC void STag_simgrid_parse_\\(mount\\|storage\\)/XBT_ATTRIB_NORETURN &/'") # remove with v5 of the dtd
     set(string5  "'s/SET(DOCTYPE)/SET(ROOT_dax__adag)/'")
-    set(string9  "'s/#include <unistd.h>/#if defined(_WIN32)\\n#  ifndef __STRICT_ANSI__\\n#    include <io.h>\\n#    include <process.h>\\n#  endif\\n#else\\n#  include <unistd.h>\\n#endif/g'")
     set(string14 "'\\!^ \\* Generated [0-9/]\\{10\\} [0-9:]\\{8\\}\\.$$!d'")
 
     ADD_CUSTOM_COMMAND(
-      OUTPUT   ${CMAKE_HOME_DIRECTORY}/src/surf/xml/simgrid_dtd.h
-                ${CMAKE_HOME_DIRECTORY}/src/simdag/dax_dtd.h
-                ${CMAKE_HOME_DIRECTORY}/src/surf/xml/simgrid_dtd.c
-                ${CMAKE_HOME_DIRECTORY}/src/simdag/dax_dtd.c
-
-      DEPENDS  ${CMAKE_HOME_DIRECTORY}/src/surf/xml/simgrid.dtd
-                ${CMAKE_HOME_DIRECTORY}/src/simdag/dax.dtd
-
-      #${CMAKE_HOME_DIRECTORY}/src/surf/xml/simgrid_dtd.l: ${CMAKE_HOME_DIRECTORY}/src/surf/xml/simgrid.dtd
-      COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_HOME_DIRECTORY}/src/surf/xml
-      COMMAND ${FLEXML_EXE} --root-tags platform -b 1000000 -P surfxml --sysid=http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd -S src/surf/xml/simgrid_dtd.l -L src/surf/xml/simgrid.dtd
-      COMMAND ${SED_EXE} -i ${string14} src/surf/xml/simgrid_dtd.l
-      COMMAND ${SED_EXE} -i "'s/FAIL(\"Bad declaration %s.\",yytext)/FAIL(\"Bad declaration %s.\\\\nIf your are using a XML v3 file (check the version attribute in <platform>), please update it with tools\\/simgrid_update_xml.pl\",yytext)/'" src/surf/xml/simgrid_dtd.l
-      COMMAND ${CMAKE_COMMAND} -E echo "       Generated src/surf/xml/simgrid_dtd.l"
-
-      #${CMAKE_HOME_DIRECTORY}/src/simdag/dax_dtd.l: ${CMAKE_HOME_DIRECTORY}/src/simdag/dax.dtd
-      COMMAND ${FLEXML_EXE} -b 1000000 --root-tags adag -P dax_ --sysid=dax.dtd -S src/simdag/dax_dtd.l -L src/simdag/dax.dtd
-      COMMAND ${SED_EXE} -i ${string5} src/simdag/dax_dtd.l
-      COMMAND ${SED_EXE} -i ${string14} src/simdag/dax_dtd.l
-      COMMAND ${CMAKE_COMMAND} -E echo "       Generated src/simdag/dax_dtd.l"
-
-      #${CMAKE_HOME_DIRECTORY}/src/surf/xml/simgrid_dtd.h: ${CMAKE_HOME_DIRECTORY}/src/surf/xml/simgrid.dtd
-      COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_HOME_DIRECTORY}/include/surf/simgrid.h
-      COMMAND ${FLEXML_EXE} --root-tags platform -P surfxml --sysid=http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd -H src/surf/xml/simgrid_dtd.h -L src/surf/xml/simgrid.dtd
-      COMMAND ${SED_EXE} -i ${string1} src/surf/xml/simgrid_dtd.h
-      COMMAND ${SED_EXE} -i ${string2} src/surf/xml/simgrid_dtd.h
-      COMMAND ${SED_EXE} -i ${string14} src/surf/xml/simgrid_dtd.h
-      COMMAND ${CMAKE_COMMAND} -E echo "       Generated src/surf/xml/simgrid_dtd.h"
-
-      #${CMAKE_HOME_DIRECTORY}/src/simdag/dax_dtd.h: ${CMAKE_HOME_DIRECTORY}/src/simdag/dax.dtd
-      COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_HOME_DIRECTORY}/src/simdag/dax_dtd.h
-      COMMAND ${FLEXML_EXE} --root-tags adag -P dax_ --sysid=dax.dtd -H src/simdag/dax_dtd.h -L src/simdag/dax.dtd
-      COMMAND ${SED_EXE} -i ${string1} src/simdag/dax_dtd.h
-      COMMAND ${SED_EXE} -i ${string2} src/simdag/dax_dtd.h
-      COMMAND ${SED_EXE} -i ${string14} src/simdag/dax_dtd.h
-      COMMAND ${CMAKE_COMMAND} -E echo "       Generated src/simdag/dax_dtd.h"
-
-      #surf/xml/simgrid_dtd.c: surf/xml/simgrid_dtd.l
-      COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_HOME_DIRECTORY}/src/surf/xml/simgrid_dtd.c
-      COMMAND ${FLEX_EXE} -o src/surf/xml/simgrid_dtd.c -Psurf_parse_ --noline src/surf/xml/simgrid_dtd.l
-      COMMAND ${SED_EXE} -i ${string9} src/surf/xml/simgrid_dtd.c
-      COMMAND ${SED_EXE} -i 's/int yyl\;/unsigned int yyl\;/' src/surf/xml/simgrid_dtd.c
-      COMMAND ${SED_EXE} -i 's/int surf_parse_leng\;/unsigned int surf_parse_leng\;/' src/surf/xml/simgrid_dtd.c
-      COMMAND ${SED_EXE} -i 's/n = 0\; n < max_size/n = 0\; n < (size_t) max_size/' src/surf/xml/simgrid_dtd.c
-      COMMAND ${SED_EXE} -i "s/register //" src/surf/xml/simgrid_dtd.c
-      COMMAND ${CMAKE_COMMAND} -E echo "       Generated surf/xml/simgrid_dtd.c"
-
-      #simdag/dax_dtd.c: simdag/dax_dtd.l
-      COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_HOME_DIRECTORY}/src/simdag/dax_dtd.c
-      COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_HOME_DIRECTORY}/src/simdag
-      COMMAND ${FLEX_EXE} -o src/simdag/dax_dtd.c -Pdax_ --noline src/simdag/dax_dtd.l
-      COMMAND ${SED_EXE} -i ${string9}                        src/simdag/dax_dtd.c
-      COMMAND ${SED_EXE} -i 's/int yyl\;/unsigned int yyl\;/' src/simdag/dax_dtd.c
-      COMMAND ${SED_EXE} -i 's/int dax_leng\;/unsigned int dax_leng\;/' src/simdag/dax_dtd.c
-      COMMAND ${CMAKE_COMMAND} -E echo "       Generated src/simdag/dax_dtd.c"
+      OUTPUT   ${CMAKE_HOME_DIRECTORY}/src/kernel/xml/simgrid_dtd.h
+                ${CMAKE_HOME_DIRECTORY}/src/dag/dax_dtd.h
+                ${CMAKE_HOME_DIRECTORY}/src/kernel/xml/simgrid_dtd.c
+                ${CMAKE_HOME_DIRECTORY}/src/dag/dax_dtd.c
+
+      DEPENDS  ${CMAKE_HOME_DIRECTORY}/src/kernel/xml/simgrid.dtd
+                ${CMAKE_HOME_DIRECTORY}/src/dag/dax.dtd
+
+      #${CMAKE_HOME_DIRECTORY}/src/kernel/xml/simgrid_dtd.l: ${CMAKE_HOME_DIRECTORY}/src/kernel/xml/simgrid.dtd
+      COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_HOME_DIRECTORY}/src/kernel/xml
+      COMMAND ${FLEXML_EXE} --root-tags platform -b 1000000 -P simgrid_parse --sysid=https://simgrid.org/simgrid.dtd -S src/kernel/xml/simgrid_dtd.l -L src/kernel/xml/simgrid.dtd
+      COMMAND ${PERL_EXE} ${CMAKE_HOME_DIRECTORY}/tools/cmake/scripts/fixup_simgrid_dtd_l.pl < src/kernel/xml/simgrid_dtd.l > src/kernel/xml/simgrid_dtd.l.tmp
+      COMMAND mv src/kernel/xml/simgrid_dtd.l.tmp src/kernel/xml/simgrid_dtd.l
+      COMMAND ${CMAKE_COMMAND} -E echo "       Generated src/kernel/xml/simgrid_dtd.l"
+
+      #${CMAKE_HOME_DIRECTORY}/src/dag/dax_dtd.l: ${CMAKE_HOME_DIRECTORY}/src/dag/dax.dtd
+      COMMAND ${FLEXML_EXE} -b 1000000 --root-tags adag -P dax_ --sysid=dax.dtd -S src/dag/dax_dtd.l -L src/dag/dax.dtd
+      COMMAND ${SED_EXE} -i ${string5} src/dag/dax_dtd.l
+      COMMAND ${SED_EXE} -i ${string14} src/dag/dax_dtd.l
+      COMMAND ${CMAKE_COMMAND} -E echo "       Generated src/dag/dax_dtd.l"
+
+      #${CMAKE_HOME_DIRECTORY}/src/kernel/xml/simgrid_dtd.h: ${CMAKE_HOME_DIRECTORY}/src/kernel/xml/simgrid.dtd
+      COMMAND ${FLEXML_EXE} --root-tags platform -P simgrid_parse --sysid=https://simgrid.org/simgrid.dtd -H src/kernel/xml/simgrid_dtd.h -L src/kernel/xml/simgrid.dtd
+      COMMAND ${SED_EXE} -i ${string1} src/kernel/xml/simgrid_dtd.h
+      COMMAND ${SED_EXE} -i ${string2} src/kernel/xml/simgrid_dtd.h
+      COMMAND ${SED_EXE} -i ${string3} src/kernel/xml/simgrid_dtd.h
+      COMMAND ${SED_EXE} -i ${string4} src/kernel/xml/simgrid_dtd.h
+      COMMAND ${SED_EXE} -i ${string14} src/kernel/xml/simgrid_dtd.h
+      COMMAND ${CMAKE_COMMAND} -E echo "       Generated src/kernel/xml/simgrid_dtd.h"
+
+      #${CMAKE_HOME_DIRECTORY}/src/dag/dax_dtd.h: ${CMAKE_HOME_DIRECTORY}/src/dag/dax.dtd
+      COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_HOME_DIRECTORY}/src/dag/dax_dtd.h
+      COMMAND ${FLEXML_EXE} --root-tags adag -P dax_ --sysid=dax.dtd -H src/dag/dax_dtd.h -L src/dag/dax.dtd
+      COMMAND ${SED_EXE} -i ${string1} src/dag/dax_dtd.h
+      COMMAND ${SED_EXE} -i ${string2} src/dag/dax_dtd.h
+      COMMAND ${SED_EXE} -i ${string14} src/dag/dax_dtd.h
+      COMMAND ${CMAKE_COMMAND} -E echo "       Generated src/dag/dax_dtd.h"
+
+      #kernel/xml/simgrid_dtd.c: kernel/xml/simgrid_dtd.l
+      COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_HOME_DIRECTORY}/src/kernel/xml/simgrid_dtd.c
+      COMMAND ${FLEX_EXE} -o src/kernel/xml/simgrid_dtd.c -Psimgrid_parse_ --noline src/kernel/xml/simgrid_dtd.l
+      COMMAND ${CMAKE_COMMAND} -E echo "       Generated kernel/xml/simgrid_dtd.c"
+
+      #dag/dax_dtd.c: dag/dax_dtd.l
+      COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_HOME_DIRECTORY}/src/dag/dax_dtd.c
+      COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_HOME_DIRECTORY}/src/dag
+      COMMAND ${FLEX_EXE} -o src/dag/dax_dtd.c -Pdax_ --noline src/dag/dax_dtd.l
+      COMMAND ${CMAKE_COMMAND} -E echo "       Generated src/dag/dax_dtd.c"
 
       WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}
       COMMENT "Generating files in maintainer mode..."
@@ -238,14 +168,14 @@ if(enable_maintainer_mode AND NOT WIN32)
       message(STATUS "Error : Install sed before use maintainer mode.")
     endif()
 
-    message(FATAL_ERROR STATUS "Error : Need to install all tools for maintainer mode !!!")
+    message(FATAL_ERROR STATUS "Error : Need to install all (flexml, flex, sed) tools for maintainer mode !!!")
   endif()
 
 endif()
 
     add_custom_target(maintainer_files
-      DEPENDS ${CMAKE_HOME_DIRECTORY}/src/surf/xml/simgrid_dtd.h
-              ${CMAKE_HOME_DIRECTORY}/src/surf/xml/simgrid_dtd.c
-              ${CMAKE_HOME_DIRECTORY}/src/simdag/dax_dtd.h
-              ${CMAKE_HOME_DIRECTORY}/src/simdag/dax_dtd.c
+      DEPENDS ${CMAKE_HOME_DIRECTORY}/src/kernel/xml/simgrid_dtd.h
+              ${CMAKE_HOME_DIRECTORY}/src/kernel/xml/simgrid_dtd.c
+              ${CMAKE_HOME_DIRECTORY}/src/dag/dax_dtd.h
+              ${CMAKE_HOME_DIRECTORY}/src/dag/dax_dtd.c
       )