News:

When registered with our forums, feel free to send a "here I am" post here to differ human beings from SPAM bots.

Main Menu

Paradigm C++ Professional TERN Edition

Started by stahta01, May 20, 2013, 03:05:38 AM

Previous topic - Next topic

stahta01

Anyone create CB Compiler setting for using Paradigm C++ Professional TERN Edition?
I am trying out an 16-bit 80186 clone embedded board and I am thinking about creating the Compiler setting files needed for running CB SVN trunk.

Tim S.
C Programmer working to learn more about C++.
On Windows 10 64 bit and Windows 11 64 bit.
--
When in doubt, read the CB WiKi FAQ. [url="http://wiki.codeblocks.org"]http://wiki.codeblocks.org[/url]

stahta01

#1
I have gotten the compiler and linking steps to work; but, I still have a lot of work to do before it works to the final axe file;
(This compiler produces an axe instead of exe as the final output file.)
Currently works to create a rom file; that I have no idea if safe to use.

Note: The 16-bit linker does NOT support long names so option in advanced compiler settings for 8.3 must be checked.
Note2: I have only used/tested the "LinkNative" native linker and compile commands.
Note3: I started out by copying the bcc xml files and removing the stuff that was not correct and adding some missing stuff.
What I post might still have incorrect bcc values in places.

Tim S.

compiler_pcc16.xml

<?xml version="1.0"?>
<!DOCTYPE CodeBlocks_compiler>
<CodeBlocks_compiler name="Paradigm C++ Compiler TERN Edition (16 bit)"
                    id="pcc16"
                    weight="20"
                    platform="windows">
   <Path type="master">
       <Search envVar="PATH"
               for="C"/>
       <Search registry="HKEY_LOCAL_MACHINE\SOFTWARE\Paradigm\Paradigm Tern\7.0"
               value="PCRoot Path"/>
       <Search path="%ProgramFiles%\Paradigm C++ Professional TERN Edition"/>
   </Path>
   <Path type="include">
       <Search registry="HKEY_LOCAL_MACHINE\SOFTWARE\Paradigm\Paradigm Tern\7.0"
               value="Include Path"/>
       <Search path="%ProgramFiles%\Paradigm C++ Professional TERN Edition\include"/>
       <Add>C:\TERN\186\include</Add>
   </Path>
   <Path type="lib">
       <Search registry="HKEY_LOCAL_MACHINE\SOFTWARE\Paradigm\Paradigm Tern\7.0"
               value="Lib Path"/>
       <Search path="%ProgramFiles%\Paradigm C++ Professional TERN Edition\lib"/>
       <Add>C:\TERN\186\lib</Add>
   </Path>
</CodeBlocks_compiler>


options_pcc16.xml

<?xml version="1.0"?>
<!DOCTYPE CodeBlocks_compiler_options>
<CodeBlocks_compiler_options>
   <Program name="C"       value="pcc.exe"/>
   <Program name="CPP"     value="pcc.exe"/>
   <Program name="LD"      value="plink.exe"/>
   <Program name="LIB"     value="plib.exe"/>
   <Program name="WINDRES" value=""/>
   <Program name="MAKE"    value="make.exe"/>

   <Switch name="includeDirs"             value="-I"/>
   <Switch name="libDirs"                 value="-L"/>
   <Switch name="linkLibs"                value=""/>
   <Switch name="defines"                 value="-D"/>
   <Switch name="genericSwitch"           value="-"/>
   <Switch name="objectExtension"         value="obj"/>
   <Switch name="needDependencies"        value="false"/>
   <Switch name="forceCompilerUseQuotes"  value="false"/>
   <Switch name="forceLinkerUseQuotes"    value="false"/>
   <Switch name="logging"                 value="default"/>
   <Switch name="libPrefix"               value=""/>
   <Switch name="libExtension"            value="lib"/>
   <Switch name="linkerNeedsLibPrefix"    value="false"/>
   <Switch name="linkerNeedsLibExtension" value="true"/>

   <Category name="Optimization">
       <Option name="Optimizations for size"
               option="-O1"
               supersedes="-O2"/>
       <Option name="Optimizations for speed"
               option="-O2"
               supersedes="-O1"/>
       <Option name="Optimize jumps"
               option="-O"/>
       <Option name="Eliminate duplicate expressions"
               option="-Oc"/>
       <Option name="Disable optimizations"
               option="-Od"
               exclusive="true"/>
       <Option name="Expand intrinsic functions"
               option="-Oi"/>
       <Option name="Enable instruction scheduling for Pentium"
               option="-OS"/>
       <Option name="Disable instruction scheduling"
               option="-O-S"/>
       <Option name="Enable loop induction variable and strength reduction"
               option="-Ov"/>
       <Option name="Disable register variables"
               option="-r-"/>
       <Option name="Merge duplicate strings"
               option="-d"/>
       <Option name="Function stack frame optimization"
               option="-k-"/>
   </Category>

   <Category name="C++ Features">
       <Option name="Disable runtime type information"
               option="-RT-"/>
       <Option name="Disable exception handling"
               option="-x-"/>
       <Option name="Enable destructor cleanup"
               option="-xd"
               supersedes="-xd-"/>
       <Option name="Disable destructor cleanup"
               option="-xd-"
               supersedes="-xd"/>
       <Option name="Enable fast exception prologs"
               option="-xf"/>
       <Option name="Enable exception location information"
               option="-xp"/>
       <Option name="Zero length empty class members"
               option="-Vx"/>
       <Option name="Zero-length empty base classes"
               option="-Ve"/>
   </Category>

   <Category name="16-bit Compiler Options">
       <Option name="Small Memory Model"
               option="-ms"
               supersedes="-mm -mc -mh"/>
       <Option name="Medium Memory Model"
               option="-mm"
               supersedes="-ms -mc -mh"/>
       <Option name="Compact Memory Model"
               option="-mc"
               supersedes="-ms -mm -mh"/>
       <Option name="Huge Memory Model"
               option="-mh"
               supersedes="-ms -mm -mc"/>
   </Category>

   <Category name="C Features">
       <Option name="Emulate floating point"
               option="-f"/>
       <Option name="Disable floating point"
               option="-f-"/>
       <Option name="Fast floating point"
               option="-ff"/>
       <Option name="Pentium FDIV workaround"
               option="-fp"/>
       <Option name="Pascal calling convention"
               option="-p"/>
       <Option name="fastcall calling convention"
               option="-pr"/>
       <Option name="Align data by byte"
               option="-a1"
               supersedes="-a2 -a4 -a8 -a16"/>
       <Option name="Align data by word (2 bytes)"
               option="-a2"
               supersedes="-a1 -a4 -a8 -a16"/>
       <Option name="Align data by double word (4 bytes)"
               option="-a4"
               supersedes="-a1 -a2 -a8 -a16"/>
       <Option name="Align data by quad word (8 bytes)"
               option="-a8"
               supersedes="-a1 -a2 -a4 -a16"/>
       <Option name="Align data by paragraph (16 bytes)"
               option="-a16"
               supersedes="-a1 -a2 -a4 -a8"/>
       <Option name="Use minimum sized enums"
               option="-b-"/>
       <Option name="Use unsigned char"
               option="-K"/>
   </Category>

   <Category name="Language">
       <Option name="ANSI keywords and extensions"
               option="-A"/>
       <Option name="Kernighan and Ritchie keywords and extensions"
               option="-AK"/>
       <Option name="Borland C++ keywords and extensions"
               option="-AT"/>
       <Option name="UNIX V keywords and extensions"
               option="-AU"/>
       <Option name="Allow nested comments"
               option="-C"/>
   </Category>

   <Category name="Debugging">
       <Option name="debugging on, inline expansion off"
               option="-v"
               supersedes="-v-"/>
       <Option name="debugging off, inline expansion on"
               option="-v-"
               supersedes="-v"/>
       <Option name="inline function expansion on"
               option="-vi"
               supersedes="-vi-"/>
       <Option name="inline function expansion off"
               option="-vi-"
               supersedes="-vi"/>
       <Option name="Include line numbers"
               option="-y"/>
   </Category>

   <Category name="Architecture"
             exclusive="true">
       <Option name="Optimize for 8086"
               option="-1-"/>
       <Option name="Optimize for 80186"
               option="-1"/>
       <Option name="Optimize for 80286"
               option="-2"/>
       <Option name="Optimize for 80386"
               option="-3"/>
       <Option name="Optimize for 80486"
               option="-4"/>
   </Category>

   <Category name="Target">
       <Option name="Windows application"
               option="-tW"
               supersedes="-tWC -tWD"/>
       <Option name=".DLL executable"
               option="-tWD"
               supersedes="-tW -tWC"/>
   </Category>

   <Option name="Display all warnings"
           option="-w"
           category="Warnings"/>

   <Command name="CompileObject"
            value="$compiler $options $includes -o$object -c $file"/>
   <Command name="LinkDynamic"
            value="$linker $libdirs -Tpd $link_options $link_objects,$exe_output,$exe_name.map,$libs"/>
   <Command name="LinkStatic"
            value="$lib_linker /C $static_output $+-link_objects,$def_output"/>
   <Command name="LinkNative"
            value="$linker $link_options $libdirs C:\PROGRA~1\PARADI~1\Lib\c0s.obj $link_objects,$exe_output,$exe_dir\$exe_name.map,$libs"/>
   <Common name="cmds"/>

   <RegEx name="Compiler warning"
          type="warning"
          msg="1;4"
          file="2"
          line="3">
       <![CDATA[(^Warning[ \t]W[0-9]+)[ \t]([][{}() \t#%$~[:alnum:]&_:+/\.-]+)[ \t]([0-9]+)(:[ \t].*)]]>
   </RegEx>
   <RegEx name="Compiler error"
          type="error"
          msg="1;4"
          file="2"
          line="3">
       <![CDATA[(^Error[ \t]E[0-9]+)[ \t]([][{}() \t#%$~[:alnum:]&_:+/\.-]+)[ \t]([0-9]+)(:[ \t].*)]]>
   </RegEx>
   <RegEx name="Unknown error"
          type="error"
          msg="1">
       <![CDATA[(^Error[ \t]+E[0-9]+:.*)]]>
   </RegEx>
   <RegEx name="Fatal error"
          type="error"
          msg="1">
       <![CDATA[Fatal:[ \t]+(.*)]]>
   </RegEx>
</CodeBlocks_compiler_options>
C Programmer working to learn more about C++.
On Windows 10 64 bit and Windows 11 64 bit.
--
When in doubt, read the CB WiKi FAQ. [url="http://wiki.codeblocks.org"]http://wiki.codeblocks.org[/url]