Author Topic: Paradigm C++ Professional TERN Edition  (Read 12713 times)

Online stahta01

  • Lives here!
  • ****
  • Posts: 7582
    • My Best Post
Paradigm C++ Professional TERN Edition
« on: May 20, 2013, 03:05:38 am »
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++ and Git.
On Windows 7 64 bit and Windows 10 64 bit.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Online stahta01

  • Lives here!
  • ****
  • Posts: 7582
    • My Best Post
Re: Paradigm C++ Professional TERN Edition
« Reply #1 on: May 26, 2013, 07:17:51 am »
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
Code
<?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
Code
<?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>
« Last Edit: May 28, 2013, 06:08:48 pm by stahta01 »
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 64 bit.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org