diff options
-rw-r--r-- | ChangeLog | 22 | ||||
-rw-r--r-- | PROBLEM-REPORT-FORM | 2 | ||||
-rw-r--r-- | modules/Creator.pm | 5 | ||||
-rw-r--r-- | templates/make.mpd | 20 | ||||
-rw-r--r-- | templates/makedll.mpt | 39 |
5 files changed, 63 insertions, 25 deletions
@@ -1,3 +1,25 @@ +Thu Dec 14 14:30:58 UTC 2006 Chad Elliott <elliott_c@ociweb.com> + + * PROBLEM-REPORT-FORM: + + Changed to ask for the Operating System and Shell. + + * modules/Creator.pm: + + When expanding variables, warn the user if the value returned from + adjust_value() is a hash table. When this happens, it means that + a template scope name collides with a variable name contained + within $(). + + * templates/make.mpd: + + Added support to perform a post link processing command. + + * templates/makedll.mpt: + + Added a post link processing command to perform the integrate step + for Green Hills on Integrity. + Wed Dec 13 17:05:29 UTC 2006 Chad Elliott <elliott_c@ociweb.com> * config/zlib.mpb: diff --git a/PROBLEM-REPORT-FORM b/PROBLEM-REPORT-FORM index fe9338b8..b02d0a9f 100644 --- a/PROBLEM-REPORT-FORM +++ b/PROBLEM-REPORT-FORM @@ -15,7 +15,7 @@ When requesting MPC support please provide the following items: Perl version (using perl --version): - Operating System/Shell: + Operating System and Shell: ACE or TAO version (if using either): diff --git a/modules/Creator.pm b/modules/Creator.pm index f96172e1..a32cdeee 100644 --- a/modules/Creator.pm +++ b/modules/Creator.pm @@ -995,7 +995,10 @@ sub expand_variables { my($sname) = (defined $scope ? $scope . "::$name" : undef); my($arr) = $self->adjust_value([$sname, $name], (defined $val ? $val : [])); - if (defined $$arr[0]) { + if (UNIVERSAL::isa($arr, 'HASH')) { + $self->warning("$name conflicts with a template variable scope"); + } + elsif (UNIVERSAL::isa($arr, 'ARRAY') && defined $$arr[0]) { $val = "@$arr"; $val = $self->modify_assignment_value(lc($name), $val); substr($value, $start) =~ s/\$\([^)]+\)/$val/; diff --git a/templates/make.mpd b/templates/make.mpd index c0838fa2..8203fda9 100644 --- a/templates/make.mpd +++ b/templates/make.mpd @@ -14,6 +14,9 @@ AR = <%ar("ar")%> <%if(nm)%> NM = <%nm%> <%endif%> +<%if(cxxint)%> +CXXINT = <%cxxint%> +<%endif%> <%if(cputype)%> CPUTYPE = <%cputype%> <%endif%> @@ -71,7 +74,7 @@ GENFLAGS = <%genflags("-O")%> GENFLAGS = <%genflags("-g")%> <%endif%> <%endfor%> -LDLIBS =<%foreach(libs)%> <%libopt%>"<%libname_prefix%><%lib%>$(LIBSUFFIX)"<%endfor%><%foreach(lit_libs)%> <%libopt%>"<%lit_lib%>"<%endfor%><%foreach(pure_libs)%> "<%pure_lib%>"<%endfor%> <%ldlibs%> +LDLIBS =<%foreach(libs)%> <%libopt%><%libname_prefix%><%lib%>$(LIBSUFFIX)<%endfor%><%foreach(lit_libs)%> <%libopt%>"<%lit_lib%>"<%endfor%><%foreach(pure_libs)%> "<%pure_lib%>"<%endfor%> <%ldlibs%> OBJS =<%if(pch_source && pchsupport)%> <%targetoutdir%><%obj_dir%><%noextension(pch_source)%>$(OBJEXT)<%endif%><%foreach(source_files)%> <%targetoutdir%><%obj_dir%><%noextension(source_file)%>$(OBJEXT)<%endfor%><%if(rc)%><%foreach(resource_files)%> <%targetoutdir%><%obj_dir%><%resource_file%>$(RESEXT)<%endfor%><%endif%> <%if(lib_ext)%> <%if(staticname)%> @@ -114,28 +117,33 @@ all:<%if(prebuild)%> __prebuild__<%endif%> $(BIN)<%if(postbuild)%> __postbuild__ <%if(specialscript)%> specialscript: - @echo '<%specialscript%>' > specialscript - @<%chmod("chmod")%> 755 specialscript + @echo '<%specialscript%>' > $@ + @<%chmod("chmod")%> 755 $@ <%endif%> <%if(prelinktarget)%> <%prelinktarget%>: specialscript $(OBJS) - @specialscript $(NM) "$(OBJS)" "$(LDLIBS)" "<%if(libpaths)%><%foreach(libpaths)%><%if(targetoutdir)%><%libpath%><%slash%><%targetoutdir%> <%endif%><%libpath%><%fornotlast(" ")%><%endfor%><%else%>.<%endif%>" <%prelinktarget%> + @specialscript "$(NM)" "$(OBJS)" "$(LDLIBS)" "<%if(libpaths)%><%foreach(libpaths)%><%if(targetoutdir)%><%libpath%><%slash%><%targetoutdir%> <%endif%><%libpath%><%fornotlast(" ")%><%endfor%><%else%>.<%endif%>" "$(BIN)" "$@" @$(RM) specialscript -<%targetoutdir%><%obj_dir%><%noextension(prelinktarget)%>$(OBJEXT): <%prelinktarget%> +<%if(prelinktargetobj)%> +<%targetoutdir%><%obj_dir%><%prelinktargetobj%>: <%prelinktarget%> $(COMPILE.cc) $(OUTPUT_OPTION) <%prelinktarget%> @$(RM) <%prelinktarget%> <%endif%> +<%endif%> $(BTARGETDIR): @$(MKDIR) "$@" -$(BIN): $(BTARGETDIR)<%if(tempinc)%> $(TEMPINCDIR)<%endif%><%if(prelinktarget)%> <%targetoutdir%><%obj_dir%><%noextension(prelinktarget)%>$(OBJEXT)<%endif%> $(OBJS) +$(BIN): $(BTARGETDIR)<%if(tempinc)%> $(TEMPINCDIR)<%endif%><%if(prelinktargetobj)%> <%targetoutdir%><%obj_dir%><%prelinktargetobj%><%else%><%if(prelinktarget)%> <%prelinktarget%><%endif%><%endif%> $(OBJS) <%if(prelink)%> <%eval(prelink)%> <%endif%> $(LINK.cc) $(OBJS) $(LDLIBS) $(OUTPUT_OPTION) +<%if(postlinkbinary)%> + <%postlinkbinary%> +<%endif%> <%endif%> <%if(dll_ext && sharedname)%> diff --git a/templates/makedll.mpt b/templates/makedll.mpt index 92ce6980..cc34bdef 100644 --- a/templates/makedll.mpt +++ b/templates/makedll.mpt @@ -186,8 +186,8 @@ NCC { } ghsppc { - cxx = cxint$(CPUTYPE) - ar = cxint$(CPUTYPE) + cxx = cx$(CXXINT)$(CPUTYPE) + ar = cx$(CXXINT)$(CPUTYPE) cputype = ppc arflags = --one_instantiation_per_object -archive -o compilerflags = --new_style_casts --one_instantiation_per_object --exceptions --std --long_long @@ -274,16 +274,17 @@ qnx { } vxworks { - versupport = - dll_ext = - exe_ext = .out - specialscript = "for i in $$3; do for j in $$4; do i=`echo $$i | sed sa\^-laa`;[ -r \"$$j/lib$$i.a\" ] && libs=\"$$libs $$j/lib$$i.a\" && break;done;done;$$1 $$2 $$libs | munch | grep -v \\.cpp > $$5" - prelinktarget = __ctordtor.c - clean = __ctordtor$(OBJEXT) - ldlibs = -L$(WIND_BASE)/target/lib/$(CPUTYPE)/$(CPU)/common -larch - extracppflags = -nostdlib -I$(WIND_BASE)/target/h - ld = ld$(CPUTYPE) - linkflags = -X -r + versupport = + dll_ext = + exe_ext = .out + specialscript = "for i in $$3; do for j in $$4; do i=`echo $$i | sed sa\^-laa`;[ -r \"$$j/lib$$i.a\" ] && libs=\"$$libs $$j/lib$$i.a\" && break;done;done;$$1 $$2 $$libs | munch | grep -v \\.cpp > $$6" + prelinktarget = __ctordtor.c + prelinktargetobj = __ctordtor$(OBJEXT) + clean = __ctordtor$(OBJEXT) + ldlibs = -L$(WIND_BASE)/target/lib/$(CPUTYPE)/$(CPU)/common -larch + extracppflags = -nostdlib -I$(WIND_BASE)/target/h + ld = ld$(CPUTYPE) + linkflags = -X -r } vxworks_rtp { @@ -349,11 +350,15 @@ tandem { // BSP The BSP name (ex. sim800). // integrity { - versupport = - dll_ext = - ldlibs = -lshm_client -lnet -lsocket -lposix - extraarflags = -bsp $(BSP) -os_dir $(OS_DIR) --one_instantiation_per_object - extracppflags = -integrate -dynamic -bsp $(BSP) -os_dir $(OS_DIR) --one_instantiation_per_object -non_shared -Uvector + cxxint = int + versupport = + dll_ext = + ldlibs = -lshm_client -lnet -lsocket -lposix + extraarflags = -bsp $(BSP) -os_dir $(OS_DIR) --one_instantiation_per_object + extracppflags = -integrate -dynamic -bsp $(BSP) -os_dir $(OS_DIR) --one_instantiation_per_object -non_shared -Uvector + specialscript = "echo Kernel > $$6; echo Filename DynamicDownload >> $$6;echo EndKernel >> $$6; echo AddressSpace >> $$6;echo Filename $$5 >> $$6;echo Language C++ >> $$6;echo Library libINTEGRITY.so >> $$6;echo Library libc.so >> $$6;echo Library libscxx_e.so >> $$6;echo Task Initial >> $$6;echo StackLength 0x8000 >> $$6;echo EndTask >> $$6;echo EndAddressSpace >> $$6" + prelinktarget = $(notdir $(BIN).int) + postlinkbinary = $(MV) $(BIN) $(BIN).tmp && intex -bsp $(BSP) -os_dir $(OS_DIR) -intfile $(notdir $(BIN).int) -o $(BIN) $(BIN).tmp } conditional_include "user_makedll" |