Changeset 483 for CMT


Ignore:
Timestamp:
Dec 13, 2008, 11:04:56 PM (15 years ago)
Author:
rybkin
Message:

See C.L. 378

Location:
CMT/HEAD
Files:
2 added
23 edited

Legend:

Unmodified
Added
Removed
  • CMT/HEAD/ChangeLog

    r482 r483  
     12008-12-13    <rybkin@lal.in2p3.fr> 378
     2       
     3        * source/cmt_language.h: In class Language, introduce the members
     4        dependencies_options, native_dependencies
     5        * source/cmt_language.cxx: In class Language, in function action, add the
     6        parsing of the -dependencies_options=OPTIONS option, in function show,
     7        add the display of that option, implement the setup_native_dependencies
     8        function to set <language>.native_dependencies to true, if
     9        <language>.dependencies_options expands to a non-empty string
     10        * source/cmt_generator.h: In class CmtGenerator, add the m_DEPENDENCIESOPTS
     11        member
     12        * source/cmt_generator.cxx: Handle the m_DEPENDENCIESOPTS member
     13        * source/cmt_generators.cxx: In function LibraryGenerator::module_file_action,
     14        replace the DEPENDENCIESOPTS template in the <language>, <language>_library
     15        fragments with the value of <language>.dependencies_options, do not include
     16        the dependencies fragment in the constituent (library/application) Make
     17        file, if the language preprocessor(s) of all the source file(s) support the
     18        generation of dependencies and the corresponding compiler options are
     19        passed via the -dependencies_options=OPTIONS option of the language(s)
     20        * mgr/fragments/cpp: Implement the generation of dependencies Make files
     21        (one per source file) making use of the language compiler if the
     22        the corresponding compiler options are passed
     23        * mgr/fragments/cpp_library: idem
     24        * mgr/fragments/c: idem
     25        * mgr/fragments/c_library: idem
     26        * mgr/fragments/nmake/cpp: idem
     27        * mgr/fragments/nmake/cpp_library: idem
     28        * mgr/fragments/nmake/c: idem
     29        * mgr/fragments/nmake/c_library: idem
     30        * mgr/requirements: define the cppdepflags, cdepflags macros to generate
     31        dependencies making use of the language compiler for Linux, Darwin, VisualC
     32        when the tags cpp_native_dependencies, c_native_dependencies are activated,
     33        pass cppdepflags, cdepflags to the c++, c languages, define the
     34        format_dependencies macro
     35        * src/Makefile.core: Add the dep_echo, dep_silent macros to be used when
     36        generating dependencies, add .make .stamp .cxx to the list of known
     37        suffixes for optimisation
     38        * src/NMakefile.core: idem
     39        * src/Makefile.header: Remove the Make rule for src/Makefile.core
     40        * mgr/fragments/constituent: In case STRUCTURED_OUTPUT is defined, create
     41        the $(bin)${CONSTITUENT} here rather than in the constituent Make file
     42        * mgr/fragments/constituent_lock: idem
     43        * mgr/fragments/make_header: idem
     44        * mgr/NMake: Filter macros containing personal names out of VisualC.nmake
     45        * mgr/VisualC.nmake: idem
     46        * mgr/cmt_format_deps.sh: Introduced to be used for the generation of
     47        one dependencies Make file per source file
     48        * mgr/cmt_format_deps.bat: idem
     49       
    1502008-11-29    <rybkin@lal.in2p3.fr> 377
    251       
  • CMT/HEAD/mgr/NMake

    r23 r483  
    4343cmttag ::
    4444        @echo Rebuilding VisualC.nmake
    45         @$(cmtexe) build tag_makefile | find /I /V "Arnault" | find /I /V "include=" | find /I /V "lib=" | find /I /V "PATH=" | find /I /V "CMTROOT=" >VisualC.nmake
     45        @$(cmtexe) build tag_makefile | find /I /V "Arnault" | find /I /V "rybkin" | find /I /V "include=" | find /I /V "lib=" | find /I /V "PATH=" | find /I /V "CMTROOT=" >VisualC.nmake
    4646
    4747democlean ::
  • CMT/HEAD/mgr/VisualC.nmake

    r469 r483  
    11CMT_tag=$(tag)
    2 CMT_root=Y:\user\g\grybkine\labs\CMT\HEAD
    32CMTVERSION=HEAD
    4 CMT_project=grybkine
    5 CMT_project_release=labs
    63cmt_hardware_query_command=uname -m
    74cmt_hardware=WIN32
     
    4037build_dependencies=$(cmtexe) -tag=$(tags) build dependencies
    4138build_triggers=$(cmtexe) build triggers
     39format_dependencies=$(CMTROOT)\mgr\cmt_format_deps.bat /no_stamps
    4240implied_library_prefix=-l
    4341implied_library_suffix=.lib
     
    8280srcdir=..\src
    8381bin=..\$(CMT_tag)\
    84 BIN=Y:\user\g\grybkine\labs\CMT\HEAD\$(CMT_tag)\
    8582javabin=..\classes\
    8683mgrdir=mgr
    87 project=grybkine
    88 cmt_installarea_paths= $(cmt_installarea_prefix)/$(CMTCONFIG)/bin $(grybkine_installarea_prefix)/$(CMTCONFIG)/lib $(grybkine_installarea_prefix)/share/lib $(grybkine_installarea_prefix)/share/bin
    89 use_linkopts= $(cmt_installarea_linkopts)   $(CMT_linkopts) 
    90 grybkine_installarea_prefix=$(cmt_installarea_prefix)
    91 grybkine_installarea_prefix_remove=$(grybkine_installarea_prefix)
    92 cmt_installarea_linkopts= /LIBPATH:Y:\user\g\grybkine\labs\$(grybkine_installarea_prefix)\$(CMTCONFIG)\lib 
    93 CMTINSTALLAREA=Y:\user\g\grybkine\labs\$(cmt_installarea_prefix)
    94 use_requirements=requirements 
    95 use_includes= 
    96 use_fincludes= $(use_includes)
    97 use_stamps= $(CMT_stamps) 
    98 use_cflags=  $(CMT_cflags) 
    99 use_pp_cflags=  $(CMT_pp_cflags) 
    100 use_cppflags=  $(CMT_cppflags) 
    101 use_pp_cppflags=  $(CMT_pp_cppflags) 
    102 use_fflags=  $(CMT_fflags) 
    103 use_pp_fflags=  $(CMT_pp_fflags) 
    104 includes= $(ppcmd)"$(srcdir)" $(use_includes)
    105 fincludes= $(includes)
     84cmt_installarea_paths= $(cmt_installarea_prefix)/$(CMTCONFIG)/bin
     85use_linkopts= $(cmt_installarea_linkopts) 
     86cmt_GUID={88BF15AB-5A2D-4bea-B64F-02752C2A1F4F}
    10687cmt_use_linkopts=  $(CMT_linkopts) 
     88make_GUID={88BF15AB-5A2D-4bea-B64F-02752C2A1F4F}
    10789constituents= cmt 
    10890constituentsclean= cmtclean 
  • CMT/HEAD/mgr/fragments/c

    r469 r483  
    11#-- start of c ------
    22
     3ifneq (${DEPENDENCIESOPTS},)
     4
     5ifneq ($(MAKECMDGOALS),${CONSTITUENT}clean)
     6-include $(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.d
     7
     8$(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.d : $(use_requirements) $(cmt_final_setup_${CONSTITUENT})
     9
     10$(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.d : ${FULLNAME}
     11        $(dep_echo) $@
     12        $(c_silent) $(ccomp) ${DEPENDENCIESOPTS} -o $(@D)/${NAME}${CONSTITUENTSUFFIX}.dep $(use_pp_cflags) $(${CONSTITUENT}_pp_cflags) $(app_${CONSTITUENT}_pp_cflags) $(${NAME}_pp_cflags) $(use_cflags) $(${CONSTITUENT}_cflags) $(app_${CONSTITUENT}_cflags) $(${NAME}_cflags) $(${NAME}_${FILESUFFIX}_cflags) ${ADDINCLUDE} ${FULLNAME}
     13        $(c_silent) $(format_dependencies) $@ $(@D)/${NAME}${CONSTITUENTSUFFIX}.o ${FULLNAME} $(@D)/${NAME}${CONSTITUENTSUFFIX}.dep
     14endif
     15
     16$(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.o : ${FULLNAME}
     17else
    318$(bin)${CONSTITUENT}_dependencies.make : $(${NAME}_${FILESUFFIX}_dependencies)
    419
    5 $(bin)${NAME}${CONSTITUENTSUFFIX}.o : $(${NAME}_${FILESUFFIX}_dependencies)
     20$(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.o : $(${NAME}_${FILESUFFIX}_dependencies)
     21endif
    622        $(c_echo) ${FULLNAME}
    723        $(c_silent) $(ccomp) -o $@ $(use_pp_cflags) $(${CONSTITUENT}_pp_cflags) $(app_${CONSTITUENT}_pp_cflags) $(${NAME}_pp_cflags) $(use_cflags) $(${CONSTITUENT}_cflags) $(app_${CONSTITUENT}_cflags) $(${NAME}_cflags) $(${NAME}_${FILESUFFIX}_cflags) ${ADDINCLUDE} ${FULLNAME}
    8 #       $(c_silent) cd $(bin); $(ccomp) -o ${NAME}${CONSTITUENTSUFFIX}.o $(use_pp_cflags) $(${CONSTITUENT}_pp_cflags) $(app_${CONSTITUENT}_pp_cflags) $(${NAME}_pp_cflags) $(use_cflags) $(${CONSTITUENT}_cflags) $(app_${CONSTITUENT}_cflags) $(${NAME}_cflags) $(${NAME}_${FILESUFFIX}_cflags) ${ADDINCLUDE} ${FULLNAME}
    924
    1025#-- end of c ------
  • CMT/HEAD/mgr/fragments/c_library

    r469 r483  
    11#-- start of c_library ------
    22
     3ifneq (${DEPENDENCIESOPTS},)
     4
     5ifneq ($(MAKECMDGOALS),${CONSTITUENT}clean)
     6-include $(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.d
     7
     8$(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.d : $(use_requirements) $(cmt_final_setup_${CONSTITUENT})
     9
     10$(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.d : ${FULLNAME}
     11        $(dep_echo) $@
     12        $(c_silent) $(ccomp) ${DEPENDENCIESOPTS} -o $(@D)/${NAME}${CONSTITUENTSUFFIX}.dep $(use_pp_cflags) $(${CONSTITUENT}_pp_cflags) $(lib_${CONSTITUENT}_pp_cflags) $(${NAME}_pp_cflags) $(use_cflags) $(${CONSTITUENT}_cflags) $(lib_${CONSTITUENT}_cflags) $(${NAME}_cflags) $(${NAME}_${FILESUFFIX}_cflags) ${ADDINCLUDE} ${FULLNAME}
     13        $(c_silent) $(format_dependencies) $@ $(@D)/${NAME}${CONSTITUENTSUFFIX}.o ${FULLNAME} $(@D)/${NAME}${CONSTITUENTSUFFIX}.dep
     14endif
     15
     16$(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.o : ${FULLNAME}
     17else
    318$(bin)${CONSTITUENT}_dependencies.make : $(${NAME}_${FILESUFFIX}_dependencies)
    419
    520$(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.o : $(${NAME}_${FILESUFFIX}_dependencies)
     21endif
    622        $(c_echo) ${FULLNAME}
    723        $(c_silent) $(ccomp) -o $@ $(use_pp_cflags) $(${CONSTITUENT}_pp_cflags) $(lib_${CONSTITUENT}_pp_cflags) $(${NAME}_pp_cflags) $(use_cflags) $(${CONSTITUENT}_cflags) $(lib_${CONSTITUENT}_cflags) $(${NAME}_cflags) $(${NAME}_${FILESUFFIX}_cflags) ${ADDINCLUDE} ${FULLNAME}
    8 #       $(c_silent) cd $(bin); $(ccomp) -o $(binobj)${NAME}${CONSTITUENTSUFFIX}.o $(use_pp_cflags) $(${CONSTITUENT}_pp_cflags) $(lib_${CONSTITUENT}_pp_cflags) $(${NAME}_pp_cflags) $(use_cflags) $(${CONSTITUENT}_cflags) $(lib_${CONSTITUENT}_cflags) $(${NAME}_cflags) $(${NAME}_${FILESUFFIX}_cflags) ${ADDINCLUDE} ${FULLNAME}
    924
    1025#-- end of c_library ------
  • CMT/HEAD/mgr/fragments/constituent

    r459 r483  
    4949
    5050ifndef QUICK
     51ifdef STRUCTURED_OUTPUT
     52 ${CONSTITUENT}dirs ::
     53        @if test ! -d $(bin)${CONSTITUENT}; then $(mkdir) -p $(bin)${CONSTITUENT}; fi
     54        $(echo) "STRUCTURED_OUTPUT="$(bin)${CONSTITUENT}
     55
     56$(cmt_local_${CONSTITUENT}_makefile) :: $(${CONSTITUENT}_dependencies) $(cmt_local_tagfile_${CONSTITUENT}) build_library_links dirs ${CONSTITUENT}dirs
     57else
    5158$(cmt_local_${CONSTITUENT}_makefile) :: $(${CONSTITUENT}_dependencies) $(cmt_local_tagfile_${CONSTITUENT}) build_library_links dirs
     59endif
    5260else
    5361$(cmt_local_${CONSTITUENT}_makefile) :: $(cmt_local_tagfile_${CONSTITUENT})
  • CMT/HEAD/mgr/fragments/constituent_lock

    r466 r483  
    4949
    5050ifndef QUICK
     51ifdef STRUCTURED_OUTPUT
     52${CONSTITUENT}dirs ::
     53        @if test ! -d $(bin)${CONSTITUENT}; then $(mkdir) -p $(bin)${CONSTITUENT}; fi
     54        $(echo) "STRUCTURED_OUTPUT="$(bin)${CONSTITUENT}
     55
     56$(cmt_local_${CONSTITUENT}_makefile) :: $(${CONSTITUENT}_dependencies) $(cmt_local_tagfile_${CONSTITUENT}) build_library_links dirs ${CONSTITUENT}dirs
     57else
    5158$(cmt_local_${CONSTITUENT}_makefile) :: $(${CONSTITUENT}_dependencies) $(cmt_local_tagfile_${CONSTITUENT}) build_library_links dirs
     59endif
    5260else
    5361$(cmt_local_${CONSTITUENT}_makefile) :: $(cmt_local_tagfile_${CONSTITUENT})
  • CMT/HEAD/mgr/fragments/cpp

    r469 r483  
    11#-- start of cpp ------
    22
     3ifneq (${DEPENDENCIESOPTS},)
     4
     5ifneq ($(MAKECMDGOALS),${CONSTITUENT}clean)
     6-include $(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.d
     7
     8$(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.d : $(use_requirements) $(cmt_final_setup_${CONSTITUENT})
     9
     10$(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.d : ${FULLNAME}
     11        $(dep_echo) $@
     12        $(cpp_silent) $(cppcomp) ${DEPENDENCIESOPTS} -o $(@D)/${NAME}${CONSTITUENTSUFFIX}.dep $(use_pp_cppflags) $(${CONSTITUENT}_pp_cppflags) $(app_${CONSTITUENT}_pp_cppflags) $(${NAME}_pp_cppflags) $(use_cppflags) $(${CONSTITUENT}_cppflags) $(app_${CONSTITUENT}_cppflags) $(${NAME}_cppflags) $(${NAME}_${FILESUFFIX}_cppflags) ${ADDINCLUDE} ${FULLNAME}
     13        $(cpp_silent) $(format_dependencies) $@ $(@D)/${NAME}${CONSTITUENTSUFFIX}.o ${FULLNAME} $(@D)/${NAME}${CONSTITUENTSUFFIX}.dep
     14endif
     15
     16$(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.o : ${FULLNAME}
     17else
    318$(bin)${CONSTITUENT}_dependencies.make : $(${NAME}_${FILESUFFIX}_dependencies)
    419
    520$(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.o : $(${NAME}_${FILESUFFIX}_dependencies)
     21endif
    622        $(cpp_echo) ${FULLNAME}
    7         $(cpp_silent) $(cppcomp) -o $(@) $(use_pp_cppflags) $(${CONSTITUENT}_pp_cppflags) $(app_${CONSTITUENT}_pp_cppflags) $(${NAME}_pp_cppflags) $(use_cppflags) $(${CONSTITUENT}_cppflags) $(app_${CONSTITUENT}_cppflags) $(${NAME}_cppflags) $(${NAME}_${FILESUFFIX}_cppflags) ${ADDINCLUDE} ${FULLNAME}
     23        $(cpp_silent) $(cppcomp) -o $@ $(use_pp_cppflags) $(${CONSTITUENT}_pp_cppflags) $(app_${CONSTITUENT}_pp_cppflags) $(${NAME}_pp_cppflags) $(use_cppflags) $(${CONSTITUENT}_cppflags) $(app_${CONSTITUENT}_cppflags) $(${NAME}_cppflags) $(${NAME}_${FILESUFFIX}_cppflags) ${ADDINCLUDE} ${FULLNAME}
    824
    925#-- end of cpp ------
  • CMT/HEAD/mgr/fragments/cpp_library

    r469 r483  
    11#-- start of cpp_library -----------------
    22
     3ifneq (${DEPENDENCIESOPTS},)
     4
     5ifneq ($(MAKECMDGOALS),${CONSTITUENT}clean)
     6-include $(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.d
     7
     8$(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.d : $(use_requirements) $(cmt_final_setup_${CONSTITUENT})
     9
     10$(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.d : ${FULLNAME}
     11        $(dep_echo) $@
     12        $(cpp_silent) $(cppcomp) ${DEPENDENCIESOPTS} -o $(@D)/${NAME}${CONSTITUENTSUFFIX}.dep $(use_pp_cppflags) $(${CONSTITUENT}_pp_cppflags) $(lib_${CONSTITUENT}_pp_cppflags) $(${NAME}_pp_cppflags) $(use_cppflags) $(${CONSTITUENT}_cppflags) $(lib_${CONSTITUENT}_cppflags) $(${NAME}_cppflags) $(${NAME}_${FILESUFFIX}_cppflags) ${ADDINCLUDE} ${FULLNAME}
     13        $(cpp_silent) $(format_dependencies) $@ $(@D)/${NAME}${CONSTITUENTSUFFIX}.o ${FULLNAME} $(@D)/${NAME}${CONSTITUENTSUFFIX}.dep
     14endif
     15
     16$(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.o : ${FULLNAME}
     17else
    318$(bin)${CONSTITUENT}_dependencies.make : $(${NAME}_${FILESUFFIX}_dependencies)
    419
    520$(bin)$(binobj)${NAME}${CONSTITUENTSUFFIX}.o : $(${NAME}_${FILESUFFIX}_dependencies)
     21endif
    622        $(cpp_echo) ${FULLNAME}
    7         $(cpp_silent) $(cppcomp) -o $(@) $(use_pp_cppflags) $(${CONSTITUENT}_pp_cppflags) $(lib_${CONSTITUENT}_pp_cppflags) $(${NAME}_pp_cppflags) $(use_cppflags) $(${CONSTITUENT}_cppflags) $(lib_${CONSTITUENT}_cppflags) $(${NAME}_cppflags) $(${NAME}_${FILESUFFIX}_cppflags) ${ADDINCLUDE} ${FULLNAME}
     23        $(cpp_silent) $(cppcomp) -o $@ $(use_pp_cppflags) $(${CONSTITUENT}_pp_cppflags) $(lib_${CONSTITUENT}_pp_cppflags) $(${NAME}_pp_cppflags) $(use_cppflags) $(${CONSTITUENT}_cppflags) $(lib_${CONSTITUENT}_cppflags) $(${NAME}_cppflags) $(${NAME}_${FILESUFFIX}_cppflags) ${ADDINCLUDE} ${FULLNAME}
    824
    925#-- end of cpp_library ------------------
  • CMT/HEAD/mgr/fragments/make_header

    r441 r483  
    104104ifdef STRUCTURED_OUTPUT
    105105binobj = ${CONSTITUENT}/
    106 ${CONSTITUENT}::
    107         @if test ! -d $(bin)$(binobj) ; then $(mkdir) -p $(bin)$(binobj) ; fi
    108         $(echo) "STRUCTURED_OUTPUT="$(bin)$(binobj)
     106#${CONSTITUENT}::
     107#       @if test ! -d $(bin)$(binobj) ; then $(mkdir) -p $(bin)$(binobj) ; fi
     108#       $(echo) "STRUCTURED_OUTPUT="$(bin)$(binobj)
    109109endif
    110110
  • CMT/HEAD/mgr/fragments/nmake/c

    r445 r483  
    11#-- start of c ------
    22
    3 $(bin)${CONSTITUENT}/${NAME}${CONSTITUENTSUFFIX}.obj : $(${NAME}_${FILESUFFIX}_dependencies)
     3!if "${DEPENDENCIESOPTS}" != ""
     4
     5!if exists ($(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.d)
     6!include $(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.d
     7!endif
     8
     9${CONSTITUENT} :: $(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.d
     10
     11$(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.d : $(use_requirements) $(cmt_final_setup_${CONSTITUENT})
     12
     13$(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.d : ${FULLNAME}
     14        $(dep_echo) $@
     15        $(c_silent) if not exist $(bin)${CONSTITUENT} mkdir $(bin)${CONSTITUENT}
     16        $(c_silent) $(ccomp) ${DEPENDENCIESOPTS} $(use_pp_cflags) $(${CONSTITUENT}_pp_cflags) $(app_${CONSTITUENT}_pp_cflags) $(${NAME}_pp_cflags) $(use_cflags) $(${CONSTITUENT}_cflags) $(app_${CONSTITUENT}_cflags) $(${NAME}_cflags) $(${NAME}_${FILESUFFIX}_cflags) ${ADDINCLUDE} /Tc${FULLNAME} 2>$(@D)\${NAME}${CONSTITUENTSUFFIX}.dep >nul
     17        $(c_silent) $(format_dependencies) $@ $(@D)\${NAME}${CONSTITUENTSUFFIX}.obj ${FULLNAME} $(@D)\${NAME}${CONSTITUENTSUFFIX}.dep
     18
     19$(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.obj : ${FULLNAME}
     20!else
     21$(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.obj : $(${NAME}_${FILESUFFIX}_dependencies)
     22!endif
    423        $(c_echo) ${FULLNAME}
    524        $(c_silent) if not exist $(bin)${CONSTITUENT} mkdir $(bin)${CONSTITUENT}
    6         $(c_silent) $(ccomp) /Fo$(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.obj /Fd$(bin)${CONSTITUENT}\ $(use_pp_cflags) $(${CONSTITUENT}_pp_cflags) $(app_${CONSTITUENT}_pp_cflags) $(${NAME}_pp_cflags) $(use_cflags) $(${CONSTITUENT}_cflags) $(app_${CONSTITUENT}_cflags) $(${NAME}_cflags) $(${NAME}_${FILESUFFIX}_cflags) ${ADDINCLUDE} ${FULLNAME}
     25        $(c_silent) $(ccomp) /Fo$@ /Fd$(bin)${CONSTITUENT}\ $(use_pp_cflags) $(${CONSTITUENT}_pp_cflags) $(app_${CONSTITUENT}_pp_cflags) $(${NAME}_pp_cflags) $(use_cflags) $(${CONSTITUENT}_cflags) $(app_${CONSTITUENT}_cflags) $(${NAME}_cflags) $(${NAME}_${FILESUFFIX}_cflags) ${ADDINCLUDE} ${FULLNAME}
    726
    827#-- end of c ------
  • CMT/HEAD/mgr/fragments/nmake/c_library

    r445 r483  
    11#-- start of c_library ------
    22
     3!if "${DEPENDENCIESOPTS}" != ""
     4
     5!if exists ($(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.d)
     6!include $(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.d
     7!endif
     8
     9${CONSTITUENT} :: $(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.d
     10
     11$(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.d : $(use_requirements) $(cmt_final_setup_${CONSTITUENT})
     12
     13$(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.d : ${FULLNAME}
     14        $(dep_echo) $@
     15        $(c_silent) if not exist $(bin)${CONSTITUENT} mkdir $(bin)${CONSTITUENT}
     16        $(c_silent) $(ccomp) ${DEPENDENCIESOPTS} $(use_pp_cflags) $(${CONSTITUENT}_pp_cflags) $(lib_${CONSTITUENT}_pp_cflags) $(${NAME}_pp_cflags) $(use_cflags) $(${CONSTITUENT}_cflags) $(lib_${CONSTITUENT}_cflags) $(${NAME}_cflags) $(${NAME}_${FILESUFFIX}_cflags) ${ADDINCLUDE} /Tc${FULLNAME} 2>$(@D)\${NAME}${CONSTITUENTSUFFIX}.dep >nul
     17        $(c_silent) $(format_dependencies) $@ $(@D)\${NAME}${CONSTITUENTSUFFIX}.obj ${FULLNAME} $(@D)\${NAME}${CONSTITUENTSUFFIX}.dep
     18
     19$(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.obj : ${FULLNAME}
     20!else
    321$(bin)${CONSTITUENT}/${NAME}${CONSTITUENTSUFFIX}.obj : $(${NAME}_${FILESUFFIX}_dependencies)
     22!endif
    423        $(c_echo) ${FULLNAME}
    524        $(c_silent) if not exist $(bin)${CONSTITUENT} mkdir $(bin)${CONSTITUENT}
  • CMT/HEAD/mgr/fragments/nmake/cpp

    r445 r483  
    11#-- start of cpp ------
    22
    3 $(bin)${CONSTITUENT}/${NAME}${CONSTITUENTSUFFIX}.obj : $(${NAME}_${FILESUFFIX}_dependencies)
     3!if "${DEPENDENCIESOPTS}" != ""
     4
     5!if exists ($(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.d)
     6!include $(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.d
     7!endif
     8
     9${CONSTITUENT} :: $(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.d
     10
     11$(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.d : $(use_requirements) $(cmt_final_setup_${CONSTITUENT})
     12
     13$(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.d : ${FULLNAME}
     14        $(dep_echo) $@
     15        $(cpp_silent) if not exist $(bin)${CONSTITUENT} mkdir $(bin)${CONSTITUENT}
     16        $(cpp_silent) $(cppcomp) ${DEPENDENCIESOPTS} $(use_pp_cppflags) $(${CONSTITUENT}_pp_cppflags) $(app_${CONSTITUENT}_pp_cppflags) $(${NAME}_pp_cppflags) $(use_cppflags) $(${CONSTITUENT}_cppflags) $(app_${CONSTITUENT}_cppflags) $(${NAME}_cppflags) $(${NAME}_${FILESUFFIX}_cppflags) ${ADDINCLUDE} /Tp${FULLNAME} 2>$(@D)\${NAME}${CONSTITUENTSUFFIX}.dep >nul
     17        $(cpp_silent) $(format_dependencies) $@ $(@D)\${NAME}${CONSTITUENTSUFFIX}.obj ${FULLNAME} $(@D)\${NAME}${CONSTITUENTSUFFIX}.dep
     18
     19$(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.obj : ${FULLNAME}
     20!else
     21$(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.obj : $(${NAME}_${FILESUFFIX}_dependencies)
     22!endif
    423        $(cpp_echo) ${FULLNAME}
    524        $(cpp_silent) if not exist $(bin)${CONSTITUENT} mkdir $(bin)${CONSTITUENT}
    6         $(cpp_silent) $(cppcomp) /Fo$(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.obj /Fd$(bin)${CONSTITUENT}\ $(use_pp_cppflags) $(${CONSTITUENT}_pp_cppflags) $(app_${CONSTITUENT}_pp_cppflags) $(${NAME}_pp_cppflags) $(use_cppflags) $(${CONSTITUENT}_cppflags) $(app_${CONSTITUENT}_cppflags) $(${NAME}_cppflags) $(${NAME}_${FILESUFFIX}_cppflags) ${ADDINCLUDE} /Tp${FULLNAME}
     25        $(cpp_silent) $(cppcomp) /Fo$@ /Fd$(bin)${CONSTITUENT}\ $(use_pp_cppflags) $(${CONSTITUENT}_pp_cppflags) $(app_${CONSTITUENT}_pp_cppflags) $(${NAME}_pp_cppflags) $(use_cppflags) $(${CONSTITUENT}_cppflags) $(app_${CONSTITUENT}_cppflags) $(${NAME}_cppflags) $(${NAME}_${FILESUFFIX}_cppflags) ${ADDINCLUDE} /Tp${FULLNAME}
    726
    827#-- end of cpp ------
  • CMT/HEAD/mgr/fragments/nmake/cpp_library

    r445 r483  
    11#-- start of cpp_library ------
    22
    3 $(bin)${CONSTITUENT}/${NAME}${CONSTITUENTSUFFIX}.obj : $(${NAME}_${FILESUFFIX}_dependencies)
     3!if "${DEPENDENCIESOPTS}" != ""
     4
     5!if exists ($(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.d)
     6!include $(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.d
     7!endif
     8
     9${CONSTITUENT} :: $(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.d
     10
     11$(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.d : $(use_requirements) $(cmt_final_setup_${CONSTITUENT})
     12
     13$(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.d : ${FULLNAME}
     14        $(dep_echo) $@
     15        $(cpp_silent) if not exist $(bin)${CONSTITUENT} mkdir $(bin)${CONSTITUENT}
     16        $(cpp_silent) $(cppcomp) ${DEPENDENCIESOPTS} $(use_pp_cppflags) $(${CONSTITUENT}_pp_cppflags) $(lib_${CONSTITUENT}_pp_cppflags) $(${NAME}_pp_cppflags) $(use_cppflags) $(${CONSTITUENT}_cppflags) $(lib_${CONSTITUENT}_cppflags) $(${NAME}_cppflags) $(${NAME}_${FILESUFFIX}_cppflags) ${ADDINCLUDE} /Tp${FULLNAME} 2>$(@D)\${NAME}${CONSTITUENTSUFFIX}.dep >nul
     17        $(cpp_silent) $(format_dependencies) $@ $(@D)\${NAME}${CONSTITUENTSUFFIX}.obj ${FULLNAME} $(@D)\${NAME}${CONSTITUENTSUFFIX}.dep
     18
     19$(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.obj : ${FULLNAME}
     20!else
     21$(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.obj : $(${NAME}_${FILESUFFIX}_dependencies)
     22!endif
    423        $(cpp_echo) ${FULLNAME}
    524        $(cpp_silent) if not exist $(bin)${CONSTITUENT} mkdir $(bin)${CONSTITUENT}
    6         $(cpp_silent) $(cppcomp) /Fo$(bin)${CONSTITUENT}\${NAME}${CONSTITUENTSUFFIX}.obj /Fd$(bin)${CONSTITUENT}\ $(use_pp_cppflags) $(${CONSTITUENT}_pp_cppflags) $(lib_${CONSTITUENT}_pp_cppflags) $(${NAME}_pp_cppflags) $(use_cppflags) $(${CONSTITUENT}_cppflags) $(lib_${CONSTITUENT}_cppflags) $(${NAME}_cppflags) $(${NAME}_${FILESUFFIX}_cppflags) ${ADDINCLUDE} /Tp${FULLNAME}
     25        $(cpp_silent) $(cppcomp) /Fo$@ /Fd$(bin)${CONSTITUENT}\ $(use_pp_cppflags) $(${CONSTITUENT}_pp_cppflags) $(lib_${CONSTITUENT}_pp_cppflags) $(${NAME}_pp_cppflags) $(use_cppflags) $(${CONSTITUENT}_cppflags) $(lib_${CONSTITUENT}_cppflags) $(${NAME}_cppflags) $(${NAME}_${FILESUFFIX}_cppflags) ${ADDINCLUDE} /Tp${FULLNAME}
    726
    827#-- end of cpp_library ------
  • CMT/HEAD/mgr/requirements

    r469 r483  
    181181      VisualC         "link.exe /nologo /machine:IX86 "
    182182
     183macro cdepflags "" \
     184      c_native_dependencies&Linux       "-MM" \
     185      c_native_dependencies&Darwin      "-MM" \
     186      c_native_dependencies&VisualC     "/showIncludes /E"
    183187
    184188#
     
    266270      alpha           " /usr/lib/cmplrs/cxx/libcxx.a -lcxxstd -lexc -lm " \
    267271      alphat          " /usr/lib/cmplrs/cxx/libcxx.a -lcxxstd -lexc -lm "
     272
     273macro cppdepflags "" \
     274      cpp_native_dependencies&Linux       "-MM" \
     275      cpp_native_dependencies&Darwin      "-MM" \
     276      cpp_native_dependencies&VisualC     "/showIncludes /E"
    268277
    269278#
     
    420429macro build_dependencies "$(cmtexe) -tag=$(tags) build dependencies"
    421430macro build_triggers     "$(cmtexe) build triggers"
     431
     432macro format_dependencies "" \
     433      Linux        "${CMTROOT}/mgr/cmt_format_deps.sh" \
     434      Darwin       "${CMTROOT}/mgr/cmt_format_deps.sh" \
     435      VisualC      "%CMTROOT%\mgr\cmt_format_deps.bat /no_stamps"
    422436
    423437macro implied_library_prefix "-l" \
     
    645659
    646660language fortran -suffix=f -suffix=F -preprocessor_command=$(ppcmd) -linker=$(flink)
    647 language c       -suffix=c -prototypes -linker=$(clink)
    648 language c++     -suffix=C -suffix=cc -suffix=cxx -suffix=cpp -fragment=cpp -linker=$(cpplink)
     661language c       -suffix=c -prototypes -linker=$(clink) -dependencies_options=$(cdepflags)
     662language c++     -suffix=C -suffix=cc -suffix=cxx -suffix=cpp -fragment=cpp -linker=$(cpplink) -dependencies_options=$(cppdepflags)
    649663language java    -suffix=java -linker=java
    650664language yacc    -suffix=y -prototypes -linker=$(clink)
  • CMT/HEAD/source/cmt_generator.cxx

    r474 r483  
    5050  m_CONSTITUENT.set ("CONSTITUENT");
    5151  m_LINKMACRO.set ("LINKMACRO");
     52  m_DEPENDENCIESOPTS.set ("DEPENDENCIESOPTS");
    5253  m_DOCPATH.set ("DOCPATH");
    5354  m_PACKAGEPATH.set ("PACKAGEPATH");
     
    7273  m_SUFFIX.set ("SUFFIX");
    7374  m_FILENAME.set ("FILENAME");
    74   m_LINKMACRO.set ("LINKMACRO");
     75  //  m_LINKMACRO.set ("LINKMACRO");
    7576  m_LINE.set ("LINE");
    7677  m_ADDINCLUDE.set ("ADDINCLUDE");
     
    9091  m_CONSTITUENT = "";
    9192  m_LINKMACRO = "";
     93  m_DEPENDENCIESOPTS = "";
    9294  m_DOCPATH = "";
    9395  m_PACKAGEPATH = "";
  • CMT/HEAD/source/cmt_generator.h

    r474 r483  
    103103  Variable m_CONSTITUENT;
    104104  Variable m_LINKMACRO;
     105  Variable m_DEPENDENCIESOPTS;
    105106  Variable m_DOCPATH;
    106107  Variable m_PACKAGEPATH;
  • CMT/HEAD/source/cmt_generators.cxx

    r474 r483  
    326326      preproc = language.preprocessor_command;
    327327      fragment = (is_library) ? &(language.library) : &(language.application);
     328      m_DEPENDENCIESOPTS = language.dependencies_options;
    328329    }
    329330  else
     
    363364  if (fragment != 0)
    364365    {
    365       fragment->copy (m_output_file, constituent.variables, 10,
     366      //      fragment->copy (m_output_file, constituent.variables, 10,
     367      fragment->copy (m_output_file, constituent.variables, 11,
    366368                      &m_CONSTITUENT,
    367369                      &m_CONSTITUENTSUFFIX,
     
    373375                      &m_FILEPATH,
    374376                      &m_FILESUFFIX,
    375                       &m_PACKAGE);
     377                      &m_PACKAGE,
     378                      &m_DEPENDENCIESOPTS);
    376379    }
    377380  else if (file.output () != "")
     
    715718    }
    716719
     720  bool need_dependencies = false;
     721 
     722  for (i = 0; i < m_source_files.size (); i++)
     723    {
     724      const SourceFile& file = m_source_files[i];
     725      Language& language = file.language ();
     726      if (!language.native_dependencies)
     727        {
     728          need_dependencies = true;
     729          break;
     730        }
     731    }
     732
    717733  if (constituent.build_triggers)
    718734    {
     
    725741  else
    726742    {
     743      if (need_dependencies)
     744        {
    727745      dependencies_fragment.copy (m_output_file,
    728746                                  constituent.variables, 3,
     
    730748                                  &m_CONSTITUENTSUFFIX,
    731749                                  &m_LINE);
     750        }
    732751    }
    733752
  • CMT/HEAD/source/cmt_language.cxx

    r400 r483  
    7979
    8080      language.setup_fragments ();
     81      language.setup_native_dependencies ();
    8182    }
    8283}
     
    188189          suffix.erase (0);
    189190          w.substr (21, suffix);
     191        }
     192      else if (w.substr (0, 22) == "-dependencies_options=")
     193        {
     194          w.substr (22, language.dependencies_options);
    190195        }
    191196    }
     
    273278  suffixes.clear ();
    274279  extra_output_suffixes.clear ();
     280  native_dependencies = false;
     281  dependencies_options = "";
    275282}
    276283
     
    322329    }
    323330
     331  if (dependencies_options != "")
     332    {
     333      cout << " -dependencies_options=" << dependencies_options;
     334    }
     335
    324336  cout << endl;
    325337}
     
    361373  return (false);
    362374}
     375
     376/*----------------------------------------------------------*/
     377void Language::setup_native_dependencies ()
     378  /*----------------------------------------------------------*/
     379{
     380  if (dependencies_options != "")
     381    {
     382      cmt_string opts (dependencies_options);
     383      Symbol::expand (opts);
     384      if (opts != "")
     385        {
     386          native_dependencies = true;
     387        }
     388    }
     389}
  • CMT/HEAD/source/cmt_language.h

    r11 r483  
    3636  bool operator == (const Language& other) const;
    3737  bool operator != (const Language& other) const;
     38  void setup_native_dependencies ();
    3839
    3940  cmt_string m_name;
     
    4546  CmtSystem::cmt_string_vector suffixes;
    4647  CmtSystem::cmt_string_vector extra_output_suffixes;
     48  bool native_dependencies;
     49  cmt_string dependencies_options;
    4750
    4851  FragmentHandle application;
  • CMT/HEAD/src/Makefile.core

    r446 r483  
    109109install_echo = $(echo) installing
    110110install_silent = $(silent)
     111dep_echo = $(echo) generating dependencies
     112dep_silent = $(silent)
    111113#
    112114# End of Controlling the verbosity of Make
     
    126128#         if test ! -d $(bin) ; then $(mkdir) -p $(bin) ; fi
    127129#
     130
     131# explicit rule not to remake
     132#${CMTROOT}/src/Makefile.core : ;
     133
     134# add to the list of valid suffixes
     135# so that nonterminal match-anything rules will not be considered
     136.SUFFIXES: .make .stamp .cxx
  • CMT/HEAD/src/Makefile.header

    r462 r483  
    164164# explicit rule not to remake
    165165${CMTROOT}/src/Makefile.header : ;
    166 ${CMTROOT}/src/Makefile.core : ;
  • CMT/HEAD/src/NMakefile.core

    r446 r483  
    110110install_echo = $(echo) installing
    111111install_silent = $(silent)
     112dep_echo = $(echo) generating dependencies
     113dep_silent = $(silent)
    112114#
    113115# End of Controlling the verbosity of Make
     
    124126cmtexe = $(CMTROOT)\$(CMTBIN)\cmt.exe
    125127
    126 
     128# add to the list of valid suffixes
     129# so that nonterminal match-anything rules will not be considered
     130.SUFFIXES: .make .stamp
Note: See TracChangeset for help on using the changeset viewer.