From 0afb2105b9462242288c15c1bca774894eba031c Mon Sep 17 00:00:00 2001 From: elliott_c Date: Mon, 28 Jul 2003 17:51:27 +0000 Subject: ChangeLogTag: Mon Jul 28 12:49:23 2003 Chad Elliott --- ChangeLog | 161 ++++++++++++--------- bin/MakeProjectCreator/USAGE | 8 +- .../modules/AutomakeProjectCreator.pm | 104 +++++++++++++ .../modules/AutomakeWorkspaceCreator.pm | 76 ++++++++++ bin/MakeProjectCreator/modules/TemplateParser.pm | 30 ++++ bin/MakeProjectCreator/templates/automake.mpd | 120 +++++++++++++++ bin/mpc.pl | 1 + bin/mwc.pl | 1 + 8 files changed, 426 insertions(+), 75 deletions(-) create mode 100644 bin/MakeProjectCreator/modules/AutomakeProjectCreator.pm create mode 100644 bin/MakeProjectCreator/modules/AutomakeWorkspaceCreator.pm create mode 100644 bin/MakeProjectCreator/templates/automake.mpd diff --git a/ChangeLog b/ChangeLog index f6158d41369..b1e207d003d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,26 @@ +Mon Jul 28 12:49:23 2003 Chad Elliott + + * bin/MakeProjectCreator/modules/TemplateParser.pm: + + Added the ability to uppercase and lowercase strings within the + templates. + + * bin/MakeProjectCreator/USAGE: + * bin/MakeProjectCreator/modules/AutomakeProjectCreator.pm: + * bin/MakeProjectCreator/modules/AutomakeWorkspaceCreator.pm: + * bin/MakeProjectCreator/templates/automake.mpd: + * bin/mpc.pl: + * bin/mwc.pl: + + Added initial support for Automake. This is by no means complete + or even correct, but it's a starting point. Perhaps someone who + knows something about Automake could make the automake template + better (correct). + Mon Jul 28 09:36:15 2003 Gan Deng - * bin/tao_orb_tests.lst - Put the Bug_1551_Regression test into the daily builds. + * bin/tao_orb_tests.lst + Put the Bug_1551_Regression test into the daily builds. Sun Jul 27 20:19:48 UTC 2003 Don Hinton @@ -198,38 +217,38 @@ Sun Jul 27 20:19:48 UTC 2003 Don Hinton Sun Jul 27 12:51:14 2003 Venkita Subramonian - * Kokyu/DSRT_Dispatcher_Impl.{cpp,h,i}: - Deleted these files. - - * Kokyu/Kokyu.dsp: - * Kokyu/Kokyu_Static.dsp: - Updated due to the above deletion. + * Kokyu/DSRT_Dispatcher_Impl.{cpp,h,i}: + Deleted these files. + + * Kokyu/Kokyu.dsp: + * Kokyu/Kokyu_Static.dsp: + Updated due to the above deletion. Sun Jul 27 12:13:31 2003 Venkita Subramonian - * Kokyu/DSRT_Schedulers.{cpp,h): - Removed this file. - - * Kokyu/Kokyu_DLL.dsp: - Replaced with Kokyu.dsp. - - * Kokyu/Kokyu.mwc: - Deleted this until I am able to get the mwc based generation - working. - - * Kokyu/Kokyu.mpc: - Changed "dllflags" keyword to "dynamicflags". This was causing - build errors in Win2K_VC71_NET_DLL Remedy build. Thanks to - Johnny Willemsen for pointing this out. - - * Kokyu/Makefile.Kokyu: - Updated dependencies. - - * Kokyu/Kokyu.dsp: - * Kokyu/Kokyu_Static.dsp: - * Kokyu/Kokyu.dsw: - Updated project and workspace files with newly added DSRT files. - + * Kokyu/DSRT_Schedulers.{cpp,h): + Removed this file. + + * Kokyu/Kokyu_DLL.dsp: + Replaced with Kokyu.dsp. + + * Kokyu/Kokyu.mwc: + Deleted this until I am able to get the mwc based generation + working. + + * Kokyu/Kokyu.mpc: + Changed "dllflags" keyword to "dynamicflags". This was causing + build errors in Win2K_VC71_NET_DLL Remedy build. Thanks to + Johnny Willemsen for pointing this out. + + * Kokyu/Makefile.Kokyu: + Updated dependencies. + + * Kokyu/Kokyu.dsp: + * Kokyu/Kokyu_Static.dsp: + * Kokyu/Kokyu.dsw: + Updated project and workspace files with newly added DSRT files. + Sat Jul 26 22:08:48 UTC 2003 Don Hinton * ace/OS.h (getmacaddress): @@ -243,62 +262,62 @@ Sat Jul 26 13:25:12 UTC 2003 Johnny Willemsen needed because of the ACE_OS::getmacaddress() addition Fri Jul 25 22:01:14 2003 Venkita Subramonian - * Kokyu/Kokyu.dsp: - * Kokyu/Kokyu_DLL.dsp: - * Kokyu/Kokyu_Static.dsp: + * Kokyu/Kokyu.dsp: + * Kokyu/Kokyu_DLL.dsp: + * Kokyu/Kokyu_Static.dsp: - No .cpp extension was generated in MPC created .dsp - file. Corrected this manually. + No .cpp extension was generated in MPC created .dsp + file. Corrected this manually. Fri Jul 25 17:41:08 2003 Venkita Subramonian - * Kokyu/Kokyu_DLL.dsp: - * Kokyu/DSRT_Schedulers.cpp: - * Kokyu/DSRT_Scheduler.h: + * Kokyu/Kokyu_DLL.dsp: + * Kokyu/DSRT_Schedulers.cpp: + * Kokyu/DSRT_Scheduler.h: - Removed these files from CVS. Kokyu_DLL.dsp is renamed to - Kokyu.dsp after conversion to MPC. + Removed these files from CVS. Kokyu_DLL.dsp is renamed to + Kokyu.dsp after conversion to MPC. - * Kokyu/DSRT_Direct_Dispatcher_Impl_T.{cpp,h}: - * Kokyu/DSRT_Dispatch_Item_T.{cpp,h,i}: - * Kokyu/DSRT_Dispatcher_Impl_T.{cpp,h,i}: - * Kokyu/DSRT_Sched_Queue_T.{cpp,h}: - * Kokyu/Kokyu_dsrt.{cpp,h,i} + * Kokyu/DSRT_Direct_Dispatcher_Impl_T.{cpp,h}: + * Kokyu/DSRT_Dispatch_Item_T.{cpp,h,i}: + * Kokyu/DSRT_Dispatcher_Impl_T.{cpp,h,i}: + * Kokyu/DSRT_Sched_Queue_T.{cpp,h}: + * Kokyu/Kokyu_dsrt.{cpp,h,i} - Added new files to implement dynamic scheduling schedulers. + Added new files to implement dynamic scheduling schedulers. - * Kokyu/Kokyu.dsp: - * Kokyu/Kokyu.mwc: - * Kokyu/Kokyu.mpc: - * Kokyu/Makefile.Kokyu: - * Kokyu/Makefile.Kokyu.bor: - * Kokyu/Makefile.bor: - * Kokyu/Kokyu.dsw: - * Kokyu/Kokyu_Static.dsp: - * Kokyu/Makefile: + * Kokyu/Kokyu.dsp: + * Kokyu/Kokyu.mwc: + * Kokyu/Kokyu.mpc: + * Kokyu/Makefile.Kokyu: + * Kokyu/Makefile.Kokyu.bor: + * Kokyu/Makefile.bor: + * Kokyu/Kokyu.dsw: + * Kokyu/Kokyu_Static.dsp: + * Kokyu/Makefile: - Created MPC file for Kokyu and generated project files from MPC. + Created MPC file for Kokyu and generated project files from MPC. - * Kokyu/Kokyu_defs.{cpp,h,i} - * Kokyu/Default_Dispatcher_Impl.{cpp,h,i} - * Kokyu/Dispatcher_Impl.{h,cpp,i} - * Kokyu/Dispatcher_Task.{h,cpp,i} - * Kokyu/Kokyu.{cpp,h,i} - * Kokyu/kokyu_export.h + * Kokyu/Kokyu_defs.{cpp,h,i} + * Kokyu/Default_Dispatcher_Impl.{cpp,h,i} + * Kokyu/Dispatcher_Impl.{h,cpp,i} + * Kokyu/Dispatcher_Task.{h,cpp,i} + * Kokyu/Kokyu.{cpp,h,i} + * Kokyu/kokyu_export.h - Reorganized files and updated comments and doxygen documentation. + Reorganized files and updated comments and doxygen documentation. - * Kokyu/tests/DSRT_MIF/MIF.cpp + * Kokyu/tests/DSRT_MIF/MIF.cpp - Modified example to reflect new Kokyu dispatcher class. + Modified example to reflect new Kokyu dispatcher class. Thu Jul 24 14:23:44 2003 Douglas C. Schmidt - * ace/Future.{h,cpp}: Removed the operator new/delete/& so - that ACE_Future can be stored in STL containers (e.g., - sets/maps/etc.). Thanks to Felix Wyss , - Patrick Bennett , and Johnny Tucker - for helping with this. + * ace/Future.{h,cpp}: Removed the operator new/delete/& so + that ACE_Future can be stored in STL containers (e.g., + sets/maps/etc.). Thanks to Felix Wyss , + Patrick Bennett , and Johnny Tucker + for helping with this. Fri Jul 25 17:32:58 UTC 2003 Don Hinton diff --git a/bin/MakeProjectCreator/USAGE b/bin/MakeProjectCreator/USAGE index 943a857423c..cce92786d0c 100644 --- a/bin/MakeProjectCreator/USAGE +++ b/bin/MakeProjectCreator/USAGE @@ -16,8 +16,8 @@ Usage: mwc.pl [-global ] [-include ] [-recurse] [-value_template ] [-value_project ] [-feature_file ] [-make_coexistence] - [-type ] + [-type ] [files] -base Add as a base project to each generated @@ -124,8 +124,8 @@ Usage: mpc.pl [-global ] [-include ] [-recurse] [-value_template ] [-value_project ] [-feature_file ] [-make_coexistence] - [-type ] + [-type ] [files] -base Add as a base project to each generated diff --git a/bin/MakeProjectCreator/modules/AutomakeProjectCreator.pm b/bin/MakeProjectCreator/modules/AutomakeProjectCreator.pm new file mode 100644 index 00000000000..a0c95fa4bef --- /dev/null +++ b/bin/MakeProjectCreator/modules/AutomakeProjectCreator.pm @@ -0,0 +1,104 @@ +package AutomakeProjectCreator; + +# ************************************************************ +# Description : A Automake Project Creator +# Author : Chad Elliott +# Create Date : 2/26/2003 +# ************************************************************ + +# ************************************************************ +# Pragmas +# ************************************************************ + +use strict; +use File::Basename; + +use ProjectCreator; + +use vars qw(@ISA); +@ISA = qw(ProjectCreator); + +# ************************************************************ +# Subroutine Section +# ************************************************************ + +sub sort_files { + #my($self) = shift; + return 0; +} + + +sub convert_slashes { + #my($self) = shift; + return 0; +} + + +sub fill_value { + my($self) = shift; + my($name) = shift; + my($value) = undef; + + if ($name eq 'vpath') { + my(%vpath) = (); + my($names) = $self->{'source_files'}; + foreach my $name (keys %$names) { + my($comps) = $$names{$name}; + foreach my $key (sort keys %$comps) { + foreach my $item (@{$$comps{$key}}) { + my($dname) = dirname($item); + if ($dname ne '.' && $dname !~ /^\.\.\//) { + $vpath{$dname} = 1; + } + } + } + } + my($str) = join(':', keys %vpath); + if ($str ne '') { + $value = 'VPATH = .:' . $str . $self->crlf(); + } + } + elsif ($name eq 'tao') { + my($incs) = $self->get_assignment('includes'); + my($libs) = $self->get_assignment('libpaths'); + if ((defined $incs && $incs =~ /tao/i) || + (defined $libs && $libs =~ /tao/i)) { + $value = 1; + } + } + + return $value; +} + + +sub project_file_name { + my($self) = shift; + my($name) = shift; + + if (!defined $name) { + $name = $self->project_name(); + } + + return 'Makefile' . ($name eq '' ? '' : ".$name") . '.am'; +} + + +sub get_dll_exe_template_input_file { + #my($self) = shift; + return 'automakeexe'; +} + + +sub get_dll_template_input_file { + #my($self) = shift; + return 'automakedll'; +} + + +sub get_template { + #my($self) = shift; + return 'automake'; +} + + +1; diff --git a/bin/MakeProjectCreator/modules/AutomakeWorkspaceCreator.pm b/bin/MakeProjectCreator/modules/AutomakeWorkspaceCreator.pm new file mode 100644 index 00000000000..f55713951c1 --- /dev/null +++ b/bin/MakeProjectCreator/modules/AutomakeWorkspaceCreator.pm @@ -0,0 +1,76 @@ +package AutomakeWorkspaceCreator; + +# ************************************************************ +# Description : A Automake Workspace (Makefile) creator +# Author : Chad Elliott +# Create Date : 5/13/2002 +# ************************************************************ + +# ************************************************************ +# Pragmas +# ************************************************************ + +use strict; +use File::Basename; + +use AutomakeProjectCreator; +use WorkspaceCreator; + +use vars qw(@ISA); +@ISA = qw(WorkspaceCreator); + +# ************************************************************ +# Subroutine Section +# ************************************************************ + +sub workspace_file_name { + my($self) = shift; + return $self->get_modified_workspace_name('Makefile', '.am'); +} + + +sub pre_workspace { + my($self) = shift; + my($fh) = shift; + my($crlf) = $self->crlf(); + + print $fh "##$crlf" . + "## Process this file with automake$crlf" . + "##$crlf" . + "$crlf" . + "## The number in AUTOMAKE_OPTIONS is the minimum required version automake$crlf" . + "## needed to process this file.$crlf" . + "AUTOMAKE_OPTIONS = 1.4$crlf$crlf"; +} + + +sub write_comps { + my($self) = shift; + my($fh) = shift; + my($projects) = $self->get_projects(); + my($pjs) = $self->get_project_info(); + my(@list) = $self->sort_dependencies($projects, $pjs); + my($crlf) = $self->crlf(); + my(%unique) = (); + my(@dirs) = (); + + ## Get a unique list of directories while + ## preserving the order of the original @list + foreach my $dep (@list) { + my($dir) = dirname($dep); + if (!defined $unique{$dir}) { + $unique{$dir} = 1; + unshift(@dirs, $dir); + } + } + + ## Print out the subdirectories + print $fh 'SUBDIRS ='; + foreach my $dir (@dirs) { + print $fh " \\$crlf $dir"; + } + print $fh $crlf; +} + + +1; diff --git a/bin/MakeProjectCreator/modules/TemplateParser.pm b/bin/MakeProjectCreator/modules/TemplateParser.pm index 9414115744b..9922045f2d5 100644 --- a/bin/MakeProjectCreator/modules/TemplateParser.pm +++ b/bin/MakeProjectCreator/modules/TemplateParser.pm @@ -37,6 +37,8 @@ my(%keywords) = ('if' => 1, 'comment' => 1, 'flag_overrides' => 1, 'marker' => 1, + 'uc' => 1, + 'lc' => 1, ); # ************************************************************ @@ -614,6 +616,28 @@ sub handle_special { } +sub handle_uc { + my($self) = shift; + my($name) = shift; + + if (!$self->{'if_skip'}) { + my($val) = uc($self->get_value_with_default($name)); + $self->append_current($val); + } +} + + +sub handle_lc { + my($self) = shift; + my($name) = shift; + + if (!$self->{'if_skip'}) { + my($val) = lc($self->get_value_with_default($name)); + $self->append_current($val); + } +} + + sub handle_noextension { my($self) = shift; my($name) = shift; @@ -771,6 +795,12 @@ sub process_name { elsif ($name eq 'marker') { $self->handle_marker($val); } + elsif ($name eq 'uc') { + $self->handle_uc($val); + } + elsif ($name eq 'lc') { + $self->handle_lc($val); + } elsif ($name eq 'noextension') { $self->handle_noextension($val); } diff --git a/bin/MakeProjectCreator/templates/automake.mpd b/bin/MakeProjectCreator/templates/automake.mpd new file mode 100644 index 00000000000..c020bed7d82 --- /dev/null +++ b/bin/MakeProjectCreator/templates/automake.mpd @@ -0,0 +1,120 @@ +## +## Automake Template +## + +## The number in AUTOMAKE_OPTIONS is the minimum required version automake +## needed to process this file. +AUTOMAKE_OPTIONS = 1.4 + +<%if(idl_files)%> +<%if(idlflags)%> +TAO_IDLFLAGS = <%idlflags%> +<%endif%> +<%endif%> +<%if(includes)%> +INCLUDES =<%foreach(includes)%> -I<%include%><%endfor%> +<%endif%> + +<%if(exename)%> +bin_PROGRAMS = <%exename%> + +<%exename%>_SOURCES = \ +<%foreach(source_files)%> + <%source_file%><%fornotlast(" \\")%> +<%endfor%> +<%if(header_files)%> + +noinst_HEADERS = \ +<%foreach(header_files)%> + <%header_file%><%fornotlast(" \\")%> +<%endfor%> +<%endif%> +<%else%> +<%if(grouped_source_files)%> +<%foreach(grouped_source_files)%> +lib<%sharedname%>_<%uc(grouped_source_file)%>_la_SOURCES = \ +<%foreach(grouped_source_file->files)%> + <%grouped_source_file->file%><%fornotlast(" \\")%> +<%endfor%> + +<%endfor%> +<%foreach(grouped_source_files)%> +if BUILD_<%uc(grouped_source_file)%>_FILES +LIB<%sharedname%>_<%uc(grouped_source_file)%> = lib<%sharedname%>_<%grouped_source_file%>.la +else +LIB<%sharedname%>_<%uc(grouped_source_file)%> = +endif + +<%endfor%> + +lib_LTLIBRARIES = \ + $(LIB<%sharedname%>) \ +<%foreach(grouped_source_files)%> + $(LIB<%sharedname%>_<%uc(grouped_source_file)%>)<%fornotlast(" \\")%> +<%endfor%> + +lib<%sharedname%>_la_SOURCES = \ +<%foreach(grouped_source_files)%> + $(lib<%sharedname%>_<%uc(grouped_source_file)%>_la_SOURCES)<%fornotlast(" \\")%> +<%endfor%> + +<%foreach(grouped_source_files)%> +lib<%sharedname%>_<%uc(grouped_source_file)%>_la_SOURCES = \ +<%foreach(grouped_source_file->files)%> + <%grouped_source_file->file%><%fornotlast(" \\")%> +<%endfor%> + +<%endfor%> +lib<%sharedname%>_la_LDFLAGS = $(X_LIBS) \ + -version-info <%if(tao)%>@TAO_CURRENT@:@TAO_REVISION@:@TAO_AGE@<%else%>@ACE_CURRENT@:@ACE_REVISION@:@ACE_AGE@<%endif%> + +lib<%sharedname%>_la_LIBADD = $(X_PRE_LIBS) $(<%sharedname%>_XLIBS) $(X_EXTRA_LIBS) +<%else%> +lib_LTLIBRARIES = lib<%sharedname%>.la + +lib<%sharedname%>_la_SOURCES = \ +<%foreach(source_files)%> + <%source_file%><%fornotlast(" \\")%> +<%endfor%> +<%endif%> + +<%if(template_files)%> +TEMPLATE_FILES = \ +<%foreach(template_files)%> + <%template_file%><%fornotlast(" \\")%> +<%endfor%> + +<%endif%> +<%if(header_files)%> +HEADER_FILES = \ +<%foreach(header_files)%> + <%header_file%><%fornotlast(" \\")%> +<%endfor%> + +<%endif%> +<%if(inline_files)%> +INLINE_FILES = \ +<%foreach(inline_files)%> + <%inline_file%><%fornotlast(" \\")%> +<%endfor%> + +<%endif%> + +pkginclude_HEADERS = \ +<%if(template_files)%> + $(INLINE_FILES) \ +<%endif%> +<%if(inline_files)%> + $(INLINE_FILES) \ +<%endif%> +<%if(header_files)%> + $(HEADER_FILES) +<%endif%> +<%endif%> +<%vpath%> + +## Clean up template repositories, etc. +clean-local: + -rm -f *.bak *.rpo *.sym lib*.*_pure_* Makefile.old core + -rm -f gcctemp.c gcctemp so_locations + -rm -rf ptrepository SunWS_cache Templates.DB diff --git a/bin/mpc.pl b/bin/mpc.pl index af2560d3fee..7ad98f325db 100755 --- a/bin/mpc.pl +++ b/bin/mpc.pl @@ -35,6 +35,7 @@ my(@creators) = ('GNUACEProjectCreator', 'EM3ProjectCreator', 'VA4ProjectCreator', 'MakeProjectCreator', + 'AutomakeProjectCreator', ); # ************************************************************ diff --git a/bin/mwc.pl b/bin/mwc.pl index b579c8343e5..c9891f4ca17 100755 --- a/bin/mwc.pl +++ b/bin/mwc.pl @@ -35,6 +35,7 @@ my(@creators) = ('GNUACEWorkspaceCreator', 'EM3WorkspaceCreator', 'VA4WorkspaceCreator', 'MakeWorkspaceCreator', + 'AutomakeWorkspaceCreator', ); # ************************************************************ -- cgit v1.2.1