Last Updated: June 1,1997
1.1 What is WM_MOTIF ?
WM_MOTIF is a library that implements the MS Windows API on the more popular UNIX Motif and character based platforms. It allows developers to port C and C++ applications from MS Windows to UNIX.
1.2 What are the hardware requirements to develop applications with WM_MOTIF ?
We suggest the following minimum RAM memory requirements for WM_MOTIF applications
|Development: 'C'||16 MB||24 MB|
|Development:'C++'||24 MB||32 MB|
|Deployment: Workstations||12 MB||16 MB|
|Deployment: X-Terminals||8 MB||8 MB|
|Development: 'C'||4 MB||8 MB|
|Development:'C++'||6 MB||12 MB|
|Deployment:Terminals||1 MB/user||1 MB/user|
x86 UNIX includes SCO Open Server 5, Unixware, Linux and FreeBSD.
Swap space should be at least twice the system RAM for development platforms, 1.2 times for deployment (end user) platforms. Total hard disk requirements vary according to the operating system options required for your application. A 400 MB hard disk should be considered the minimum for 'C' development, 500 MB for 'C++' development. Due to decreasing hard disk prices, many workstation vendors recommend 1 GB configurations for development. C++ developers should keep in mind that since most UNIX C++ compilers are based on 'cfront' the debug builds generate large archives. The end-user hard disk requirements will depend on your application.
1.3. Do you support the ABC compiler on the XYZ platform ?
WM_MOTIF is tested with the compilers supplied by the operating system vendor. This is a list of the currently supported compilers:
|Sun Solaris 2.x||SparcCompiler C 3.0.1||SparcCompiler C++ 4.0.1|
|SunOS 4.1.x||SparcCompiler C 3.0.1||SparcCompiler C++ 4.0.1|
|HP-UX 9.05 or 10.01||HP C||HP C++|
|AIX 3.2.5 or 4.1||xlc||xlC (C-Set++)|
|SCO Open Server 5||SCO C||SCO C++ 3.1|
|Unixware||USL C||USL C++|
|Linux||gcc 2.7.2||g++ 2.7.2|
|FreeBSD||gcc 2.7.2||g++ 2.7.2|
Motif 1.2 and X11R5 are required on the target platform (the Linux library requires Motif 2.0 and X11R6). Be aware that in some cases (Sun Solaris versions prior to 2.4) Motif is sold separately from the operating system or software development kit. GNU C and C++ 2.7.2 are supported on all platforms. All other third party compilers will not be supported. This means that we will not be able to solve any reported problem that can not be reproduced on the supported compilers.
1.4. We need support for XYZ Unix. Will you be porting to it ?
We will add support for additional platforms based on end user requests. If you need support for a specific platform right away there are two possibilities:
a. We need at least 5 object code sales to justify a port. If your company can place an order for that number of licenses or if other companies place orders for the same platform, it will be given priority in the porting schedule.
b. You can purchase a source code license and contract us to offer porting assistance on a fee basis.
You will find that we are very responsive to customer needs. If several developers ask for the same feature or platform, we listen.
1.5 What portions of the Windows API are not supported ?
Request the WM_MOTIF White Paper ("The Road to Opportunities in the UNIX Market) for a complete list of the currently supported functions. In general, WM_MOTIF supports most of the user interface functionality of the Windows 3.1 GDI. At this time there are no plans to support OLE. WinHelp and Postscript/PCL Printer support will be available as add-ons on the second half of 1995.
1.6 My application accesses databases using ODBC. What options do I have under UNIX ?
Several companies have committed to offer ODBC support for UNIX systems. Two of them are listed below:
|Q+E Software (Intersolv)
5540 Centerview Drive, Suite 324
Raleigh, NC 27606
Phone: (800) 876-3101 (919) 859-2220
Fax: (919) 859-9337
951 Mariner's Island Blvd
San Mateo, CA 94404
Phone: (415) 286-2484
CompuServe: 100070,1521 or 100432,647
Major UNIX database vendors such as Oracle, Informix, Progress and Sybase offer cross-platform capabilities with their native APIs (e.g. not via ODBC), Faircom (CTree) and Sequiter (Codebase) also offer cross platform capabilities with low runtime costs.
1.7 Will I be able to use my Windows resources (dialogs, bitmaps, icons, fonts, etc.) on a WM_MOTIF application ?
WM_MOTIF includes a resource compiler that is syntax-compatible with its Windows counterpart. Windows bitmaps, icons, cursors and dialogs are fully supported and require no conversion to use them on supported WM_MOTIF platforms. After minor changes to take into account issues like directory names, you will be able to use the same resource files under Windows and UNIX. Note that under WM_MOTIF resources are not bound to the executable and are packaged as a separate .RES file.
As far as fonts are concerned, WM_MOTIF uses the native Motif fonts to maintain good screen i/o performance. Equivalents to Helvetica, Sans Serif and Times Roman exist on all supported platforms, as well as a large variety of other fonts mostly using Adobe's Postscript technology. Your application can use the same Windows API functions to operate on Motif fonts and determine metrics and perform normal font operations. If your application requires that a specific font is used and no equivalent exists on your Motif platform, there are several companies that make conversion utilities from Windows TrueType or bitmap fonts to Postscript fonts. One of them is listed below:
|FastFont TypeFace Manager
Phone: (619) 755-5075
1.8 Do you support the Win32 API ?
We support a subset of the Win32 applications on the MFC3 and MFC4 addon modules. The intention is to support the Win32 APIs that are required by MFC but the coverage may also apply to other.
Note that WM_MOTIF applications are native, 32-bit UNIX applications even when using the Windows 3.1 API. Issues with segmentation (NEAR and FAR pointers) do not exist under UNIX. Also limitations due to 64 KB segments are not present on 32 bit platforms (e.g.the Edit Control can store up to multiple megabytes text if you have enough virtual memory).
1.9 Can I use DLLs and VBXs under UNIX ?
Shared libraries under UNIX are analogous to DLLs under Windows. You have a single archive of object code that is shared by multiple users on the same machine or even across a network. The mechanisms for building shared libraries are actually simpler than those for a DLL since segmentation issues do not exist under UNIX. You will require source code availability and be prepared to do minor changes. So, to answer the question, it is feasible to port Windows DLLs to UNIX shared libraries with WM_MOTIF.
The VBX approach would not be portable to UNIX. You probably realize that VBXs are not portable even to Win32 environments (where OCXs or OLE controls are required). Many vendors do offer you a choice of DLL or VBX packaging though.
Be aware that source code would always be a requirement if you plan to port to another operating system.
1.10 What support do you offer to WM_MOTIF developers ?
Thirty (30) days of phone support are included with your purchase price. A support contract is available after that for 20 % of the license cost per year. Note that support includes porting assistance of working applications and all product updates as they are released. We would like you to be very successful in your UNIX ports using WM_MOTIF. In a very real sense, our success is tied to your success.
Please realize that support does not include debugging applications that do not work even on the Windows environment. We can only offer limited support on your compiler or operating system; the appropriate arrangements should be made with the vendors of these products for support. Also understand that sometimes we will need a code fragment that reproduces the problem. Do not send us several megabytes of your source code and executables as that produces some logistic and confidentiality issues.
E-mail support is available via email@example.com. Compuserve support is available via the MAGMA forum (GO MAGMA). you can also send Compuserve mail to 73710,3031. E-mail or Compuserve support is available at no charge but customers on support contracts or within the free support period will be given priority.
1.11 Will Windows developers become productive immediately ?
As any politician would say: yes and no. With WM_MOTIF, MS-Windows developers will be able to apply all their API knowledge into developing applications for UNIX platforms. Yet they will not be able to use the same tools and will experience a slowdown in productivity when working in a new environment. Many developers become very attached to their editor and debugger. When moving to UNIX, they find it difficult to start using 'dbx' rather than Turbo Debugger or CodeView (CodeView is available for SCO UNIX but does not support C++ debugging) and using 'vi' or 'emacs' instead of 'codewright' or 'brief' (crisp, a 'brief' compatible editor is available for UNIX, for information firstname.lastname@example.org). Also, since UNIX compilers do not preprocess headers, compilation times tend to be slower when using applications with large header files, even on fast RISC workstations.
1.12 How does using WM_MOTIF compare to using a Windows emulation such as SoftWindows or DOS Merge ?
One of the advantages of running a native Motif application over a DOS emulation layer is that the resource requirements are much smaller. Merge gives a virtual DOS session to every user so you basically reload most of DOS, Windows and your application for every user. Normally one complaint of people using DOS Merge (not just for OWL applications but for any DOS app) is that they drain memory very quickly; when the OS starts swapping performance goes down significantly. A native Motif application generally has shared text executables so the first user loads the text portion of the executable which is then shared by all subsequent users.
Another advantage of having native applications is that you have full access to all the OS resources. This is important if your application takes advantage of networking or client/server functionality. Shared memory or sockets are not available directly to DOS sessions. You also don't have to deal with mangled file names (e.g. SCO UNIX allows long file names with mixed case; from a DOS session they are truncated and mangled to fit the DOS 8.3 restrictions).
1.13 My company has some business opportunities in the UNIX world. Yet at this time we don't have the resources to hire UNIX developers and buy several workstations. What alternatives can you offer ?
Please call us with some details as to what you would like to accomplish with your UNIX opportunities. Given our familiarity with Windows to UNIX issues and our existing equipment base, we could offer you porting services at a reasonable cost. For a fixed fee we could deliver a ready to install UNIX port of your Windows application. Note that long term if your product is successful under UNIX you will probably need some UNIX equipment and expertise in-house.
1.14 Do we need to become familiar with Unix or Motif internals to use WM_MOTIF ?
WM_MOTIF implements the user interface components of the Windows API and therefore it allows your programmers to code under Unix or Motif using the same techniques they used under Windows 3.1. You do not need to become a Motif expert to use WM_MOTIF. Yet if you license the WM_MOTIF source code and would like to modify its low level interaction with the Motif widgets, you will find these two books useful:
|Heller, Dan & Ferguson, Paula
Motif Programming Manual
O'Reilly & Associates
|Nye, Adrian O'Reilly, Tim
X Toolkit Intrinsics Reference
O'Reilly & Associates
Some system administration skills might be useful for end user support. Minimal knowledge would be learning to do things like file copying, archiving, setting file permissions and account profiles. You are likely to get some support calls that are operating system related. For the Sun Solaris platform you might find this book useful:
Solaris System Administrator's Guide
SunSoft Press/Prentice Hall
1.15 What are the differences between WM_MOTIF Lite and the evaluation version ?
WM_MOTIF Lite is for personal use only, includes only online documentation and support is on a time available basis. Evaluation library customers get the same support (for 60 days) and documentation as customers purchasing the full object library.
1.16 When would I need to buy source code ? Does the source code license include any object licenses ?
Generally source code customers need to port to an unsupported platform, have an escrow requirement or need to enhance the WM_MOTIF API. Source code also gives you full control over the implementation of the API functions. Source is intended to meet those special needs and does not include nor does it substitute the object license. Source code owners still need an object license per developer for each platform where you will be linking applications with WM_MOTIF.
1.17 Why do you offer a Linux port ? Is it covered by the GPL ?
Some developers use Linux as a low end UNIX development system. Also some companies which require very low runtimes costs find the Linux licensing attractive. We are also committed to making WM_MOTIF available on all popular UNIX systems. Our library is a commercial product and is not covered by the GPL. We are offering a special promotional price on the Linux platform. Call or e-mail for details.
2.1 Do we need to pay any royalties for products developed with WM_MOTIF ? Any license fees per released product ?
No. There are no runtime royalties or license fees with WM_MOTIF. You need an object license per developer for each platform where you will be linking applications with WM_MOTIF. Executables built with WM_MOTIF do not incur in any per-copy or per-license royalties, e.g. you don't need to pay us for each installation of your executables.
2.2 My customer has a network of Sun, HP and SCO systems. Do I need to port my application to each platform for them to use it ?
Not unless your application requires it (e.g. for client/server functionality). X-Windows is a distributed graphical user interface. The graphics server and the client do not need to be on the same system. On a UNIX network you can run remote applications on the local X server by using the DISPLAY environment variable or the '-display' command line parameter. For example, if you develop your application on the HP host (called 'hphost' for example) and it is run by using
a user on the console of the Sun host (called 'sunhost') could run it using
$ rsh hphost 'myapp -display sunhost:0.0'
This could be placed in a shell script to simplify end user operations.
2.3 What should I do to get printed output ?
We are planning to release a Postscript printer driver as a separate add-on. Until then, WM_MOTIF applications requiring printed output should generate PostScript or ASCII text output themselves.
2.4 What should I do to port my help files ?
WM_MOTIF applications requiring context sensitive help should look at HTML or other third party alternatives.
2.5 Why are my end users getting a message 'libX11.so.5 not found' ?
This means your executable was linked to a shared library that is at a different rev level than what your end user has. On SunOS platforms, X11 and Motif rev levels vary significantly according to the vendor used for those components. On Solaris platforms, the Motif rev level can also vary. On those platforms, you might consider linking Motif and/or X11 statically.
Some platforms (Linux and SunOS) do not include Motif on their standard distribution. If you want to deliver Motif based applications on those platforms without incurring in royalty payments you need to link Motif statically. With a statically linked application, your end users can run WM_MOTIF applications on systems that do not have a Motif window manager, e.g. they use OpenLook or an alternate window manager.
3.1 How are you providing support for MFC and OWL ? Do you include the MFC or OWL source code with WM_MOTIF? Is it possible to maintain common source code between our Windows and UNIX applications ?
We do not include Microsoft or Borland source code. You must own a valid developer's license for the libraries you are porting to Motif. Generally each compiler license is valid for one developer on one platform.
We include a set of procedures that are run under DOS to prepare the MFC 2.5 and OWL 2.5 libraries for WM_MOTIF. Our MFC4 addon includes similar procedures for the MFC 4.2 libraries. These procedures modify the source code and prepare an archive that must be copied to the UNIX system. Then we include makefiles for the libraries and some of the sample applications. The makefiles for the sample applications can be used as a base for your application.
Maintaining common source code is one of the biggest advantages of a cross-platform API. Via conditional compilation you can compile the same source code on Windows and all supported UNIX platforms.
3.2 The windows for my MFC application are displayed but it does not appear to be processing any messages. What is the problem ?
You probably need to do a DECLARE_AFXCLASS on one or more of your classes. See the porting guide on this issue.