summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog22
-rw-r--r--PROBLEM-REPORT-FORM2
-rw-r--r--modules/Creator.pm5
-rw-r--r--templates/make.mpd20
-rw-r--r--templates/makedll.mpt39
5 files changed, 63 insertions, 25 deletions
diff --git a/ChangeLog b/ChangeLog
index 4a4c5565..bb9cbe59 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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"