|
Definition at line 382 of file cmt_generator.cxx. Referenced by build_document_makefile(). 00385 { 00386 static cmt_string output_dir; 00387 static cmt_string suffix; 00388 static cmt_string name; 00389 static cmt_string obj; 00390 00391 CmtSystem::dirname (file, output_dir); 00392 output_dir += CmtSystem::file_separator (); 00393 00394 filter_paths (output_dir); 00395 00396 CmtSystem::get_suffix (file, suffix); 00397 CmtSystem::basename (file, suffix, name); 00398 00399 //obj = output_dir; 00400 obj = "$("; 00401 obj += constituent_name; 00402 obj += "_output)"; 00403 obj += name; 00404 obj += output_suffix; 00405 00406 SourceFile& source = source_files.add (); 00407 source.set (file, Language::null (), obj); 00408 } |
|
Definition at line 299 of file cmt_generator.cxx. Referenced by build_library_makefile(). 00301 { 00302 static cmt_string suffix; 00303 static cmt_string name; 00304 static cmt_string obj; 00305 00306 obj = file; 00307 00308 if (Cmt::get_debug ()) 00309 { 00310 cout << "MakefileGenerator::analyze_file> constituent=" << 00311 constituent.name << 00312 " file=" << file << endl; 00313 } 00314 00315 CmtSystem::get_suffix (file, suffix); 00316 CmtSystem::basename (file, suffix, name); 00317 00318 Language& language = Language::find_with_suffix (suffix); 00319 00320 if (LINKMACRO == "") 00321 { 00322 LINKMACRO = language.linker; 00323 } 00324 00325 if (language == "java") 00326 { 00327 static Packager packager; 00328 00329 obj = "$(javabin)"; 00330 00331 packager.run (file); 00332 if (packager.package_name () != "") 00333 { 00334 obj += packager.package_name (); 00335 obj += CmtSystem::file_separator (); 00336 } 00337 00338 obj += name; 00339 obj += ".class"; 00340 } 00341 else if (language != Language::null ()) 00342 { 00343 obj = "$(bin)"; 00344 if (Cmt::build_nmake ()) obj += CONSTITUENT; 00345 if (Cmt::build_nmake ()) obj += CmtSystem::file_separator (); 00346 obj += name; 00347 obj += language.output_suffix; 00348 obj += constituent.suffix; 00349 if (Cmt::build_nmake ()) obj += ".obj"; 00350 else obj += ".o"; 00351 00352 for (int i = 0; i < language.extra_output_suffixes.size (); i++) 00353 { 00354 cmt_string& extra_suffix = language.extra_output_suffixes[i]; 00355 00356 obj += " $(bin)"; 00357 obj += name; 00358 obj += extra_suffix; 00359 obj += language.output_suffix; 00360 obj += constituent.suffix; 00361 if (Cmt::build_nmake ()) obj += ".obj"; 00362 else obj += ".o"; 00363 } 00364 } 00365 else 00366 { 00367 cout << "#CMT> analyze_file file=" << file << " no language" << endl; 00368 } 00369 00370 if (Cmt::get_debug ()) 00371 { 00372 cout << "MakefileGenerator::analyze_file> constituent=" << 00373 constituent.name << 00374 " obj=" << obj << endl; 00375 } 00376 00377 SourceFile& source = source_files.add (); 00378 source.set (file, language, obj); 00379 } |
|
Definition at line 619 of file cmt_generator.cxx. Referenced by Generator::build_constituent_makefile(). 00621 { 00622 build_library_makefile (package, constituent); 00623 } |
|
Definition at line 1220 of file cmt_generator.cxx. Referenced by Generator::build_constituent_makefile(). 01222 { 01223 static cmt_string names; 01224 static cmt_string output_dir; 01225 static cmt_string name; 01226 static cmt_string full_name; 01227 static cmt_string suffix; 01228 static cmt_string output_suffix; 01229 static cmt_string fragment_suffix; 01230 int i; 01231 01232 cout << TITLE << " " << CONSTITUENT << endl; 01233 01234 // 01235 // Prepare the include paths. 01236 // 01237 01238 const CmtSystem::cmt_string_vector& includes = constituent.includes; 01239 01240 for (i = 0; i < includes.size (); i++) 01241 { 01242 const cmt_string& subdir = includes[i]; 01243 01244 PACKINCLUDES += " -I"; 01245 PACKINCLUDES += subdir; 01246 } 01247 01248 // 01249 // Get the fragment associated with the document style 01250 // 01251 01252 FragmentHandle fragment (GENERATOR); 01253 01254 fragment_suffix = fragment.suffix (); 01255 01256 output_suffix = "."; 01257 01258 if (fragment_suffix == "") 01259 { 01260 output_suffix += fragment.name (); 01261 } 01262 else 01263 { 01264 output_suffix += fragment_suffix; 01265 } 01266 01267 // 01268 // Scan the sources. 01269 // 01270 01271 const CmtSystem::cmt_string_vector& sources = constituent.modules; 01272 01273 for (i = 0; i < sources.size (); i++) 01274 { 01275 cmt_string& file = sources[i]; 01276 01277 set_full_name (full_name, file); 01278 if (full_name == "") continue; 01279 01280 static CmtSystem::cmt_string_vector files; 01281 01282 get_all_files (full_name, files); 01283 01284 for (int j = 0; j < files.size (); j++) 01285 { 01286 const cmt_string& name = files[j]; 01287 01288 if (name != "") 01289 { 01290 analyze_document_file (name, constituent.name, output_suffix); 01291 } 01292 } 01293 } 01294 01295 fill_outputs (); 01296 01297 prepare_use_context (); 01298 01299 DATE = CmtSystem::now (); 01300 USER = CmtSystem::user (); 01301 PACKAGE = package; 01302 01303 make_header_fragment.copy (output_file, constituent.variables, 6, 01304 &TITLE, &CONSTITUENT, &CONSTITUENTSUFFIX, 01305 &USER, &DATE, &PACKAGE); 01306 01307 const cmt_string& header = fragment.header (); 01308 01309 // 01310 // If the document type specifies a header, use it . 01311 // otherwise, use the default document header fragment. 01312 // 01313 if (header != "") 01314 { 01315 FragmentHandle header_fragment (header); 01316 header_fragment.copy (output_file, constituent.variables, 3, 01317 &CONSTITUENT, &CONSTITUENTSUFFIX, &OBJS); 01318 } 01319 else 01320 { 01321 document_header_fragment.copy (output_file, constituent.variables, 3, 01322 &CONSTITUENT, &CONSTITUENTSUFFIX, &OBJS); 01323 } 01324 01325 if (fragment.need_dependencies ()) 01326 { 01327 LINE = ""; 01328 for (i = 0; i < sources.size (); i++) 01329 { 01330 cmt_string& file = sources[i]; 01331 01332 set_full_name (full_name, file); 01333 if (full_name == "") continue; 01334 01335 static CmtSystem::cmt_string_vector files; 01336 get_all_files (full_name, files); 01337 01338 int count = 0; 01339 01340 for (int j = 0; j < files.size (); j++) 01341 { 01342 cmt_string& n = files[j]; 01343 if (n != "") count++; 01344 } 01345 01346 if (count > 0) 01347 { 01348 LINE += full_name; 01349 LINE += " "; 01350 } 01351 } 01352 01353 filter_paths (LINE.value); 01354 01355 dependencies_fragment.copy (output_file, constituent.variables, 3, 01356 &CONSTITUENT, &CONSTITUENTSUFFIX, &LINE); 01357 } 01358 else 01359 { 01360 for (i = 0; i < sources.size (); i++) 01361 { 01362 cmt_string& file = sources[i]; 01363 01364 set_full_name (full_name, file); 01365 if (full_name == "") continue; 01366 01367 static CmtSystem::cmt_string_vector files; 01368 01369 get_all_files (full_name, files); 01370 01371 for (int j = 0; j < files.size (); j++) 01372 { 01373 const cmt_string& name = files[j]; 01374 01375 if (name != "") 01376 { 01377 static cmt_string s; 01378 static cmt_string n; 01379 01380 CmtSystem::get_dot_suffix (name, s); 01381 CmtSystem::basename (name, s, n); 01382 CmtSystem::get_suffix (name, s); 01383 01384 fprintf (output_file, "%s_%s_dependencies = %s\n", 01385 n.c_str (), 01386 s.c_str (), 01387 name.c_str ()); 01388 } 01389 } 01390 } 01391 } 01392 01393 SUFFIX = fragment_suffix; 01394 for (i = 0; i < source_files.size (); i++) 01395 { 01396 SourceFile& file = source_files[i]; 01397 const cmt_string& file_name = file.name (); 01398 FULLNAME = file_name; 01399 CmtSystem::get_dot_suffix (file_name, suffix); 01400 CmtSystem::basename (file_name, suffix, NAME.value); 01401 CmtSystem::dirname (file_name, FILEPATH.value); 01402 if (FILEPATH.value != "") FILEPATH.value += CmtSystem::file_separator (); 01403 filter_paths (FILEPATH.value); 01404 CmtSystem::basename (file_name, FILENAME.value); 01405 CmtSystem::get_dot_suffix (FILENAME.value, FILESUFFIX.value); 01406 01407 if (!CmtSystem::test_file (file_name)) 01408 { 01409 cout << "#CMT> Warning : Source file " << file_name << " not found" << endl; 01410 } 01411 01412 filter_paths (FULLNAME.value); 01413 01414 fragment.copy (output_file, constituent.variables, 8, 01415 &FILEPATH, &SUFFIX, 01416 &CONSTITUENT, &CONSTITUENTSUFFIX, &FILENAME, 01417 &NAME, &FULLNAME, &FILESUFFIX); 01418 } 01419 01420 const cmt_string& trailer = fragment.trailer (); 01421 if (trailer != "") 01422 { 01423 FragmentHandle trailer_fragment (trailer); 01424 trailer_fragment.copy (output_file, constituent.variables, 3, 01425 &CONSTITUENT, &CONSTITUENTSUFFIX, &OBJS); 01426 } 01427 01428 // 01429 // Generate package cleanup operations. 01430 // 01431 01432 cleanup_header_fragment.copy (output_file, constituent.variables, 2, 01433 &CONSTITUENT, &CONSTITUENTSUFFIX); 01434 } |
|
Definition at line 821 of file cmt_generator.cxx. Referenced by build_application_makefile(), and Generator::build_constituent_makefile(). 00823 { 00824 static cmt_string lib; 00825 static cmt_string allsources; 00826 static cmt_string file; 00827 static cmt_string full_name; 00828 static cmt_string compressed_name; 00829 static cmt_string suffix; 00830 int i; 00831 bool need_prototypes; 00832 00833 source_files.clear (); 00834 00835 need_prototypes = constituent.need_prototypes; 00836 00837 cout << TITLE << " " << CONSTITUENT << endl; 00838 00839 lib = "$("; 00840 lib += CONSTITUENT; 00841 lib += "lib)"; 00842 00843 // 00844 // Prepare the include paths 00845 // 00846 00847 const CmtSystem::cmt_string_vector& includes = constituent.includes; 00848 00849 for (i = 0; i < includes.size (); i++) 00850 { 00851 const cmt_string& subdir = includes[i]; 00852 00853 PACKINCLUDES += " -I"; 00854 PACKINCLUDES += subdir; 00855 } 00856 00857 // 00858 // Scan the sources. 00859 // 00860 00861 const CmtSystem::cmt_string_vector& sources = constituent.modules; 00862 00863 for (i = 0; i < sources.size (); i++) 00864 { 00865 file = sources[i]; 00866 00867 set_full_name (full_name, file); 00868 if (full_name == "") continue; 00869 00870 CmtSystem::compress_path (full_name, compressed_name); 00871 full_name = compressed_name; 00872 00873 static CmtSystem::cmt_string_vector files; 00874 00875 get_all_files (full_name, files); 00876 00877 for (int j = 0; j < files.size (); j++) 00878 { 00879 const cmt_string& name = files[j]; 00880 00881 if (name != "") 00882 { 00883 analyze_file (constituent, name); 00884 } 00885 } 00886 } 00887 00888 fill_outputs (); 00889 00890 prepare_use_context (); 00891 00892 DATE = CmtSystem::now (); 00893 USER = CmtSystem::user (); 00894 PACKAGE = package; 00895 00896 make_header_fragment.copy (output_file, constituent.variables, 6, 00897 &TITLE, &CONSTITUENT, &CONSTITUENTSUFFIX, 00898 &USER, &DATE, &PACKAGE); 00899 00900 if (need_prototypes) 00901 { 00902 need_prototypes = false; 00903 00904 for (i = 0; i < source_files.size (); i++) 00905 { 00906 const SourceFile& file = source_files[i]; 00907 Language& language = file.language (); 00908 if (language.prototypes) 00909 { 00910 need_prototypes = true; 00911 break; 00912 } 00913 } 00914 } 00915 00916 //------------------------------------------- 00917 // 00918 // Specific targets (application, library or java) 00919 // Prepare in case prototype files are needed 00920 // 00921 //------------------------------------------- 00922 00923 PROTOTARGET = ""; 00924 00925 //if ((Cmt::current_build_strategy & PrototypesMask) == Prototypes) 00926 if (need_prototypes) 00927 { 00928 PROTOTARGET = CONSTITUENT; 00929 PROTOTARGET += "PROTOS"; 00930 } 00931 00932 if (LINKMACRO == "java") 00933 { 00934 if (is_library) 00935 { 00936 jar_header_fragment.copy (output_file, constituent.variables, 3, 00937 &CONSTITUENT, &CONSTITUENTSUFFIX, &OBJS); 00938 } 00939 else 00940 { 00941 java_header_fragment.copy (output_file, constituent.variables, 3, 00942 &CONSTITUENT, &CONSTITUENTSUFFIX, &OBJS); 00943 } 00944 } 00945 else 00946 { 00947 if (is_library) 00948 { 00949 library_header_fragment.copy (output_file, constituent.variables, 3, 00950 &CONSTITUENT, 00951 &CONSTITUENTSUFFIX, 00952 &PROTOTARGET); 00953 } 00954 else 00955 { 00956 application_header_fragment.copy (output_file, constituent.variables, 3, 00957 &CONSTITUENT, &CONSTITUENTSUFFIX, 00958 &PROTOTARGET); 00959 } 00960 } 00961 00962 00963 //---------------------------------------------------- 00964 // 00965 // Preparing prototype files. 00966 // 00967 //---------------------------------------------------- 00968 00969 //if ((Cmt::current_build_strategy & PrototypesMask) == Prototypes) 00970 if (need_prototypes) 00971 { 00972 for (i = 0; i < source_files.size (); i++) 00973 { 00974 const SourceFile& file = source_files[i]; 00975 Language& language = file.language (); 00976 if (language.prototypes) 00977 { 00978 prepare_proto_file (file.name ()); 00979 } 00980 } 00981 00982 if (PROTOSTAMPS != "") 00983 { 00984 protos_header_fragment.copy (output_file, constituent.variables, 3, 00985 &CONSTITUENT, &CONSTITUENTSUFFIX, &PROTOSTAMPS); 00986 } 00987 00988 if (protonames != "") 00989 { 00990 for (i = 0; i < source_files.size (); i++) 00991 { 00992 const SourceFile& file = source_files[i]; 00993 Language& language = file.language (); 00994 if (language.prototypes) 00995 { 00996 proto_file_action (file.name (), constituent); 00997 } 00998 } 00999 } 01000 } 01001 01002 //---------------------------------------------------- 01003 // 01004 // Preparing the library. 01005 // 01006 //---------------------------------------------------- 01007 01008 if (OBJS != "") 01009 { 01010 if (LINKMACRO == "java") 01011 { 01012 if (is_library) 01013 { 01014 cmt_string classes = OBJS.value; 01015 01016 classes.replace_all ("$(javabin)", ""); 01017 classes.replace_all (srcdir.c_str (), ""); 01018 01019 CLASSES = classes; 01020 01021 jar_fragment.copy (output_file, constituent.variables, 4, 01022 &CONSTITUENT, &CONSTITUENTSUFFIX, &OBJS, &CLASSES); 01023 } 01024 } 01025 else 01026 { 01027 if (is_library) 01028 { 01029 if (constituent.no_share) 01030 { 01031 library_no_share_fragment.copy (output_file, constituent.variables, 3, 01032 &CONSTITUENT, &CONSTITUENTSUFFIX, &OBJS); 01033 } 01034 else 01035 { 01036 library_fragment.copy (output_file, constituent.variables, 3, 01037 &CONSTITUENT, &CONSTITUENTSUFFIX, &OBJS); 01038 } 01039 } 01040 else 01041 { 01042 application_fragment.copy (output_file, constituent.variables, 4, 01043 &CONSTITUENT, &CONSTITUENTSUFFIX, 01044 &OBJS, &LINKMACRO); 01045 } 01046 } 01047 } 01048 01049 LINE = ""; 01050 for (i = 0; i < sources.size (); i++) 01051 { 01052 file = sources[i]; 01053 01054 set_full_name (full_name, file); 01055 if (full_name == "") continue; 01056 01057 static CmtSystem::cmt_string_vector files; 01058 get_all_files (full_name, files); 01059 01060 int count = 0; 01061 01062 for (int j = 0; j < files.size (); j++) 01063 { 01064 cmt_string& n = files[j]; 01065 if (n != "") count++; 01066 } 01067 01068 if (count > 0) 01069 { 01070 LINE += full_name; 01071 LINE += " "; 01072 } 01073 } 01074 01075 filter_paths (LINE.value); 01076 01077 if (constituent.build_triggers) 01078 { 01079 dependencies_and_triggers_fragment.copy (output_file, 01080 constituent.variables, 3, 01081 &CONSTITUENT, 01082 &CONSTITUENTSUFFIX, 01083 &LINE); 01084 } 01085 else 01086 { 01087 dependencies_fragment.copy (output_file, 01088 constituent.variables, 3, 01089 &CONSTITUENT, 01090 &CONSTITUENTSUFFIX, 01091 &LINE); 01092 } 01093 01094 //---------------------------------------------------- 01095 // 01096 // Building actual individual targets. 01097 // 01098 //---------------------------------------------------- 01099 01100 for (i = 0; i < source_files.size (); i++) 01101 { 01102 SourceFile& file = source_files[i]; 01103 Language& language = file.language (); 01104 01105 if (language == "java") 01106 { 01107 java_file_action (file, constituent); 01108 } 01109 else 01110 { 01111 module_file_action (file, constituent); 01112 } 01113 } 01114 01115 if (PACKOS9) 01116 { 01117 if (os9sources != "") 01118 { 01119 // 01120 // Generate transfers to the OS9 area. 01121 // 01122 01123 ALLOS9SOURCES = ""; 01124 allsources = ""; 01125 } 01126 } 01127 01128 /* 01129 for file in `cmt_sort_line.csh ${os9sources}` ; do 01130 if test `echo ${file} | grep '$(src)'` ; then 01131 name=`echo ${file} | sed 's#$(src)##'` 01132 ALLOS9SOURCES="${ALLOS9SOURCES} ../OS9/${name}" 01133 allsources="${allsources} ${file}" 01134 elif test `echo ${file} | grep '$(inc)'` ; then 01135 name=`echo ${file} | sed 's#$(inc)##'` 01136 ALLOS9SOURCES="${ALLOS9SOURCES} ../OS9/${name}" 01137 allsources="${allsources} ${file}" 01138 fi 01139 done 01140 01141 if test ! "${ALLOS9SOURCES}" = "" ; then 01142 01143 sed -e "`subs_vars ALLOS9SOURCES`" \ 01144 ${os9_header_fragment} \ 01145 >>${output} 01146 01147 for FULLNAME in ${allsources} ; do 01148 01149 NAME=`echo ${FULLNAME} | sed -e 's#$(src)##' -e 's#$(inc)##'` 01150 01151 sed -e "`subs_vars NAME FULLNAME`" \ 01152 ${os9_fragment} \ 01153 >>${output} 01154 01155 done 01156 fi 01157 fi 01158 fi 01159 */ 01160 01161 // 01162 // Generate package cleanup operations. 01163 // 01164 01165 cleanup_header_fragment.copy (output_file, constituent.variables, 2, 01166 &CONSTITUENT, &CONSTITUENTSUFFIX); 01167 01168 //if ((Cmt::current_build_strategy & PrototypesMask) == Prototypes) 01169 if (need_prototypes) 01170 { 01171 if (protos != "") 01172 { 01173 FULLNAME = protos; 01174 cleanup_fragment.copy (output_file, constituent.variables, 1, &FULLNAME); 01175 FULLNAME = PROTOSTAMPS; 01176 cleanup_fragment.copy (output_file, constituent.variables, 1, &FULLNAME); 01177 } 01178 } 01179 01180 if (LINKMACRO == "java") 01181 { 01182 cleanup_java_fragment.copy (output_file, constituent.variables, 1, &OBJS); 01183 01184 if (!is_library) 01185 { 01186 if (constituent.need_check) 01187 { 01188 check_java_fragment.copy (output_file, constituent.variables, 2, 01189 &CONSTITUENT, &CONSTITUENTSUFFIX); 01190 } 01191 } 01192 } 01193 else 01194 { 01195 if (is_library) 01196 { 01197 cleanup_library_fragment.copy (output_file, constituent.variables, 2, 01198 &CONSTITUENT, &CONSTITUENTSUFFIX); 01199 } 01200 else 01201 { 01202 cleanup_application_fragment.copy (output_file, constituent.variables, 2, 01203 &CONSTITUENT, &CONSTITUENTSUFFIX); 01204 if (OBJS != "") 01205 { 01206 cleanup_objects_fragment.copy (output_file, constituent.variables, 3, 01207 &OBJS, &CONSTITUENT, &CONSTITUENTSUFFIX); 01208 } 01209 01210 if (constituent.need_check) 01211 { 01212 check_application_fragment.copy (output_file, constituent.variables, 2, 01213 &CONSTITUENT, &CONSTITUENTSUFFIX); 01214 } 01215 } 01216 } 01217 } |
|
Definition at line 781 of file cmt_generator.cxx. Referenced by build_document_makefile(), and build_library_makefile(). 00782 { 00783 bool first = true; 00784 00785 OBJS = ""; 00786 00787 for (int i = 0; i < source_files.size (); i++) 00788 { 00789 const SourceFile& file = source_files[i]; 00790 const cmt_string output = file.output (); 00791 00792 if (output != "") 00793 { 00794 if (first) 00795 { 00796 first = false; 00797 } 00798 else 00799 { 00800 OBJS += " "; 00801 } 00802 00803 OBJS += output; 00804 } 00805 00806 if (Cmt::get_debug ()) 00807 { 00808 cout << "MakefileGenerator::fill_outputs> output=" << output << " OBJS=" << OBJS << endl; 00809 } 00810 00811 } 00812 00813 if (Cmt::get_debug ()) 00814 { 00815 cout << "MakefileGenerator::fill_outputs> OBJS=" << OBJS << endl; 00816 } 00817 00818 } |
|
Definition at line 756 of file cmt_generator.cxx. Referenced by build_library_makefile(). 00757 { 00758 static cmt_string suffix; 00759 00760 FULLNAME = file.name (); 00761 OUTPUTNAME = file.output (); 00762 00763 CmtSystem::get_dot_suffix (FULLNAME, suffix); 00764 00765 CmtSystem::basename (FULLNAME, suffix, NAME.value); 00766 CmtSystem::basename (FULLNAME, FILENAME.value); 00767 00768 if (CmtSystem::test_file (FULLNAME)) 00769 { 00770 java_fragment.copy (output_file, constituent.variables, 5, &NAME, 00771 &FULLNAME, &OUTPUTNAME, 00772 &CONSTITUENT, &CONSTITUENTSUFFIX); 00773 } 00774 else 00775 { 00776 cout << "#CMT> Warning : file " << FULLNAME << " not found" << endl; 00777 } 00778 } |
|
Definition at line 679 of file cmt_generator.cxx. Referenced by build_library_makefile(). 00680 { 00681 cmt_string name = file.name (); 00682 Language& language = file.language (); 00683 00684 static cmt_string suffix; 00685 static cmt_string prefix; 00686 static cmt_string preproc; 00687 00688 FULLNAME = name; 00689 00690 CmtSystem::get_dot_suffix (name, suffix); 00691 00692 CmtSystem::basename (name, suffix, NAME.value); 00693 00694 CmtSystem::dirname (name, prefix); 00695 CmtSystem::basename (name, FILENAME.value); 00696 00697 FragmentHandle* fragment; 00698 00699 if (language != Language::null ()) 00700 { 00701 preproc = language.preprocessor_command; 00702 fragment = (is_library) ? &(language.library) : &(language.application); 00703 } 00704 else 00705 { 00706 // 00707 // What happens when the language is not known??? 00708 // 00709 // 00710 preproc = "-I"; 00711 fragment = 0; 00712 } 00713 00714 if ((prefix == "../src") || (prefix == "..\\src")) 00715 { 00716 ADDINCLUDE = ""; 00717 } 00718 else if (prefix != "") 00719 { 00720 ADDINCLUDE = preproc; 00721 ADDINCLUDE += prefix; 00722 } 00723 00724 if (!CmtSystem::test_file (name)) 00725 { 00726 cout << "#CMT> Warning : Source file " << name << " not found" << endl; 00727 } 00728 00729 FILEPATH = prefix; 00730 if (FILEPATH.value != "") FILEPATH.value += CmtSystem::file_separator (); 00731 filter_paths (FILEPATH.value); 00732 00733 LINE = FULLNAME.value; 00734 LINE += " "; 00735 00736 filter_paths (FULLNAME.value); 00737 filter_paths (LINE.value); 00738 00739 CmtSystem::get_suffix (name, FILESUFFIX.value); 00740 00741 if (fragment != 0) 00742 { 00743 fragment->copy (output_file, constituent.variables, 10, 00744 &CONSTITUENT, &CONSTITUENTSUFFIX, &FILENAME, &NAME, &LINE, 00745 &ADDINCLUDE, &FULLNAME, &FILEPATH, &FILESUFFIX, &PACKAGE); 00746 } 00747 00748 if (PACKOS9) 00749 { 00750 os9sources += LINE; 00751 os9sources += " "; 00752 } 00753 } |
|
Definition at line 626 of file cmt_generator.cxx. Referenced by build_library_makefile(). 00627 { 00628 static cmt_string name; 00629 static cmt_string pp; 00630 00631 CmtSystem::name (file, name); 00632 00633 if (CmtSystem::test_file (file)) 00634 { 00635 pp = incdir; 00636 pp += name; 00637 pp += ".pp"; 00638 00639 if (!CmtSystem::test_file (pp)) 00640 { 00641 //Generator::build_prototype (file); 00642 } 00643 } 00644 00645 protos += " "; 00646 protos += inc; 00647 protos += name; 00648 protos += ".ph"; 00649 00650 protonames += " "; 00651 protonames += name; 00652 protonames += ".ph"; 00653 00654 PROTOSTAMPS += " "; 00655 PROTOSTAMPS += inc; 00656 PROTOSTAMPS += name; 00657 PROTOSTAMPS += ".pp"; 00658 } |
|
Definition at line 1437 of file cmt_generator.cxx. Referenced by Generator::build_dependencies(), build_document_makefile(), and build_library_makefile(). 01438 { 01439 cmt_string path; 01440 cmt_string substitution; 01441 01442 Use* use = &Use::current (); 01443 01444 deps_builder.clear (); 01445 01446 if (use->include_path != "none") 01447 { 01448 if (use->include_path == "") 01449 { 01450 deps_builder.add (incdir, "$(src)"); 01451 } 01452 else 01453 { 01454 substitution = use->include_path; 01455 01456 path = substitution; 01457 Symbol::expand (path); 01458 01459 if (CmtSystem::file_separator () == '/') 01460 { 01461 path.replace_all ("\\", "/"); 01462 path.replace_all ("//", "/"); 01463 } 01464 else 01465 { 01466 path.replace_all ("/", "\\"); 01467 path.replace_all ("\\\\", "\\"); 01468 } 01469 } 01470 01471 deps_builder.add (path, substitution); 01472 } 01473 01474 deps_builder.add_includes (*use); 01475 01476 Use::UsePtrVector& uses = Use::uses (); 01477 01478 if (uses.size () > 0) 01479 { 01480 int number; 01481 01482 for (number = 0; number < uses.size (); number++) 01483 { 01484 use = uses[number]; 01485 if (use->discarded) continue; 01486 01487 if (use->real_path != "") 01488 { 01489 if (use->include_path != "none") 01490 { 01491 if (use->include_path == "") 01492 { 01493 path = use->real_path; 01494 path += CmtSystem::file_separator (); 01495 path += use->package; 01496 path += CmtSystem::file_separator (); 01497 path += use->version; 01498 path += CmtSystem::file_separator (); 01499 path += "src"; 01500 01501 substitution = "$("; 01502 substitution += use->prefix; 01503 substitution += "ROOT)"; 01504 substitution += CmtSystem::file_separator (); 01505 substitution += "src"; 01506 substitution += CmtSystem::file_separator (); 01507 } 01508 else 01509 { 01510 substitution = use->include_path; 01511 01512 path = substitution; 01513 Symbol::expand (path); 01514 01515 if (CmtSystem::file_separator () == '/') 01516 { 01517 path.replace_all ("\\", "/"); 01518 path.replace_all ("//", "/"); 01519 } 01520 else 01521 { 01522 path.replace_all ("/", "\\"); 01523 path.replace_all ("\\\\", "\\"); 01524 } 01525 } 01526 01527 deps_builder.add (path, substitution); 01528 } 01529 01530 deps_builder.add_includes (*use); 01531 } 01532 } 01533 } 01534 } |
|
Definition at line 661 of file cmt_generator.cxx. Referenced by build_library_makefile(). 00662 { 00663 static cmt_string suffix; 00664 00665 CmtSystem::dirname (file, FILEPATH.value); 00666 if (FILEPATH.value != "") FILEPATH.value += CmtSystem::file_separator (); 00667 00668 filter_paths (FILEPATH.value); 00669 00670 CmtSystem::basename (file, FILENAME.value); 00671 CmtSystem::get_dot_suffix (FILENAME, suffix); 00672 00673 CmtSystem::basename (FILENAME, suffix, NAME.value); 00674 00675 buildproto_fragment.copy (output_file, constituent.variables, 3, &NAME, &FILEPATH, &FILENAME); 00676 } |
|
Definition at line 411 of file cmt_generator.cxx. Referenced by Generator::build_constituent_makefile(), Generator::build_constituents_makefile(), Generator::build_dependencies(), Generator::build_make_setup(), Generator::build_msdev(), Generator::build_msdev_workspace(), and Generator::build_readme(). 00412 { 00413 DOCPATH = ""; 00414 PACKAGEPATH = ""; 00415 PACKAGEPREFIX = ""; 00416 PACKAGE = ""; 00417 VERSION = ""; 00418 MGRSTYLE = ""; 00419 TITLE = ""; 00420 GROUP = ""; 00421 CONSTITUENT = ""; 00422 CONSTITUENTSUFFIX = ""; 00423 LIBRARYSUFFIX = ""; 00424 USER = ""; 00425 DATE = ""; 00426 PROTOTARGET = ""; 00427 OBJS = ""; 00428 CLASSES = ""; 00429 PROTOSTAMPS = ""; 00430 NAME = ""; 00431 FILEPATH = ""; 00432 FILESUFFIX = ""; 00433 SUFFIX = ""; 00434 FILENAME = ""; 00435 LINKMACRO = ""; 00436 LINE = ""; 00437 ADDINCLUDE = ""; 00438 FULLNAME = ""; 00439 OUTPUTNAME = ""; 00440 ALLOS9SOURCES = ""; 00441 NODEBUGUSELINKOPTS = ""; 00442 DEBUGUSELINKOPTS = ""; 00443 USEINCLUDES = ""; 00444 00445 PACKINCLUDES = ""; 00446 PACKOS9 = false; 00447 GENERATOR = ""; 00448 00449 is_library = false; 00450 is_application = false; 00451 is_document = false; 00452 srcdir = ""; 00453 docdir = ""; 00454 cmtdir = ""; 00455 incdir = ""; 00456 src = "$(src)"; 00457 doc = "$(doc)"; 00458 inc = "$(inc)"; 00459 mgr = "$(mgr)"; 00460 cmt = "$(cmt)"; 00461 protos = ""; 00462 protonames = ""; 00463 os9sources = ""; 00464 00465 source_files.clear (); 00466 00467 buildproto_fragment.reset (); 00468 dependencies_fragment.reset (); 00469 dependencies_and_triggers_fragment.reset (); 00470 00471 make_header_fragment.reset (); 00472 library_header_fragment.reset (); 00473 application_header_fragment.reset (); 00474 document_header_fragment.reset (); 00475 java_header_fragment.reset (); 00476 jar_header_fragment.reset (); 00477 protos_header_fragment.reset (); 00478 library_fragment.reset (); 00479 library_no_share_fragment.reset (); 00480 jar_fragment.reset (); 00481 application_fragment.reset (); 00482 java_fragment.reset (); 00483 cleanup_header_fragment.reset (); 00484 cleanup_fragment.reset (); 00485 cleanup_library_fragment.reset (); 00486 cleanup_application_fragment.reset (); 00487 cleanup_java_fragment.reset (); 00488 cleanup_objects_fragment.reset (); 00489 00490 dsw_header_fragment.reset (); 00491 dsw_project_fragment.reset (); 00492 dsw_all_project_header_fragment.reset (); 00493 dsw_all_project_dependency_fragment.reset (); 00494 dsw_all_project_trailer_fragment.reset (); 00495 dsw_trailer_fragment.reset (); 00496 00497 dsp_all_fragment.reset (); 00498 dsp_library_header_fragment.reset (); 00499 //dsp_shared_library_header_fragment.reset (); 00500 dsp_application_header_fragment.reset (); 00501 dsp_windows_header_fragment.reset (); 00502 dsp_contents_fragment.reset (); 00503 dsp_trailer_fragment.reset (); 00504 00505 make_setup_header_fragment.reset (); 00506 make_setup_fragment.reset (); 00507 00508 constituents_header_fragment.reset (); 00509 group_fragment.reset (); 00510 constituent_fragment.reset (); 00511 constituents_trailer_fragment.reset (); 00512 00513 readme_header_fragment.reset (); 00514 readme_fragment.reset (); 00515 readme_doc_fragment.reset (); 00516 readme_use_fragment.reset (); 00517 readme_trailer_fragment.reset (); 00518 00519 check_application_fragment.reset (); 00520 check_java_fragment.reset (); 00521 check_application_header_fragment.reset (); 00522 00523 Language::setup_all_fragments (); 00524 00525 CmtSystem::cd (Cmt::get_current_dir ()); 00526 00527 cmt_string branch = CmtSystem::current_branch (); 00528 00529 if ((branch == "mgr") || (branch == "cmt")) 00530 { 00531 if (CmtSystem::test_directory ("../src")) 00532 { 00533 srcdir = ".."; 00534 srcdir += CmtSystem::file_separator (); 00535 srcdir += "src"; 00536 srcdir += CmtSystem::file_separator (); 00537 } 00538 else 00539 { 00540 srcdir = ""; 00541 } 00542 00543 if (CmtSystem::test_directory ("../doc")) 00544 { 00545 docdir = ".."; 00546 docdir += CmtSystem::file_separator (); 00547 docdir += "doc"; 00548 docdir += CmtSystem::file_separator (); 00549 } 00550 else 00551 { 00552 docdir = ""; 00553 } 00554 00555 if (CmtSystem::test_directory ("../cmt")) 00556 { 00557 cmtdir = ".."; 00558 cmtdir += CmtSystem::file_separator (); 00559 cmtdir += "cmt"; 00560 cmtdir += CmtSystem::file_separator (); 00561 } 00562 else if (CmtSystem::test_directory ("../mgr")) 00563 { 00564 cmtdir = ".."; 00565 cmtdir += CmtSystem::file_separator (); 00566 cmtdir += "mgr"; 00567 cmtdir += CmtSystem::file_separator (); 00568 } 00569 else 00570 { 00571 cmtdir = CmtSystem::pwd (); 00572 cmtdir += CmtSystem::file_separator (); 00573 } 00574 00575 if (CmtSystem::test_directory ("../src")) 00576 { 00577 incdir = ".."; 00578 incdir += CmtSystem::file_separator (); 00579 incdir += "src"; 00580 incdir += CmtSystem::file_separator (); 00581 } 00582 else 00583 { 00584 incdir = ""; 00585 } 00586 00587 #ifdef WIN32 00588 msdevdir = ".."; 00589 msdevdir += CmtSystem::file_separator (); 00590 msdevdir += "Visual"; 00591 00592 if (!CmtSystem::test_directory (msdevdir)) 00593 { 00594 CmtSystem::mkdir (msdevdir); 00595 } 00596 00597 msdevdir += CmtSystem::file_separator (); 00598 #endif 00599 00600 } 00601 else 00602 { 00603 srcdir = "."; 00604 srcdir += CmtSystem::file_separator (); 00605 docdir = "."; 00606 docdir += CmtSystem::file_separator (); 00607 cmtdir = CmtSystem::pwd (); 00608 cmtdir += CmtSystem::file_separator (); 00609 incdir = "."; 00610 incdir += CmtSystem::file_separator (); 00611 #ifdef WIN32 00612 msdevdir = "."; 00613 msdevdir += CmtSystem::file_separator (); 00614 #endif 00615 } 00616 } |
|
Definition at line 1537 of file cmt_generator.cxx. Referenced by Generator::build_dependencies(), build_document_makefile(), build_library_makefile(), and Generator::build_msdev(). 01538 { 01539 full_name = ""; 01540 01541 Symbol::expand (file); 01542 01543 if (file == "") return; 01544 01545 if (!CmtSystem::absolute_path (file)) 01546 { 01547 full_name = srcdir; 01548 if (full_name != "") full_name += CmtSystem::file_separator (); 01549 } 01550 01551 full_name += file; 01552 01553 char sep = CmtSystem::file_separator (); 01554 if (sep == '/') 01555 { 01556 full_name.replace_all ("\\", sep); 01557 full_name.replace_all ("//", "/"); 01558 } 01559 else 01560 { 01561 full_name.replace_all ("/", sep); 01562 full_name.replace_all ("\\\\", "\\"); 01563 } 01564 } |
|
Definition at line 124 of file cmt_generator.cxx. |
|
Definition at line 121 of file cmt_generator.cxx. |
|
Definition at line 122 of file cmt_generator.cxx. |
|
Definition at line 137 of file cmt_generator.cxx. |
|
Definition at line 130 of file cmt_generator.cxx. |
|
Definition at line 146 of file cmt_generator.cxx. |
|
Definition at line 134 of file cmt_generator.cxx. |
|
Definition at line 129 of file cmt_generator.cxx. |
|
Definition at line 135 of file cmt_generator.cxx. |
|
Definition at line 131 of file cmt_generator.cxx. |
|
Definition at line 126 of file cmt_generator.cxx. |
|
Definition at line 127 of file cmt_generator.cxx. |
|
Definition at line 125 of file cmt_generator.cxx. |
|
Definition at line 136 of file cmt_generator.cxx. |
|
Definition at line 132 of file cmt_generator.cxx. |
|
Definition at line 140 of file cmt_generator.cxx. |
|
Definition at line 144 of file cmt_generator.cxx. |
|
Definition at line 139 of file cmt_generator.cxx. |
|
Definition at line 138 of file cmt_generator.cxx. |
|
Definition at line 142 of file cmt_generator.cxx. |
|
Definition at line 133 of file cmt_generator.cxx. |
|
Definition at line 128 of file cmt_generator.cxx. |