[logo]

JX Application Framework

Home

Introduction

Why use a framework?

Tutorial
    Class tree

    Open protocols

GitHub

Vision
    API stability

    Code optimization

    Bibliography

Features
    Object messaging

    Extensibility

    Drag-and-Drop

    Networking

    3D Graphics

    Powerful tables

    Styled text editor

    Memory leak debugger

    Known bugs

    Future plans
    Projects

FAQ

Donate

Other software

What's new!

Frequently Asked Questions (FAQ)

There are separate web pages explaining how to use UNIX make and fdesign.


Table of Contents


  1. General problems
  2. Bug fixes
  3. ACE

  4. AIX
  5. FreeBSD
  6. HPUX
  7. IRIX
  8. Slackware (Linux)
  9. Solaris

If you have a question that isn't answered here, please ask us.


General problems


Can I get a pre-compiled version of JX?

No. We gave up trying to distribute binaries a long time ago. Everybody has a different version of the compiler and/or the required system libraries, so it causes more problems than it solves.

How do I set environment variables?

At the command line type:
    echo $SHELL
This will tell you if you are using /bin/tcsh or /bin/bash as your shell.

If you are using /bin/tcsh:

    setenv VARIABLE VALUE
If you append this to the file ~/.cshrc, the variable will be set automatically every time you log in.

If you are using /bin/bash:

    export VARIABLE=VALUE
If you append this to the file ~/.bashrc, the variable will be set automatically every time you log in.

makemake hangs. How do I fix this?

Run it from the shell, not from another program (e.g. Midnight Commander).

Or you can patch it by appending the following arguments to the call to JProcess::Create(): "kJIgnoreConnection, NULL, kJTossOutput, NULL, kJAttachToFromFD, NULL"

It gives me the error: "'touch' has both : and :: entries." How do I fix this?

Remove all old copies of makemake from your system.

Why does it complain that it can't find the ACE header files?

You need to set the environment variable ACE_ROOT, as explained in the instructions printed when you run make in the top level directory.

Why does it complain that it can't find Xlib.h?

You need to create a symbolic link /usr/include/X11 that points to the directory containing the X11 header files on your system. This is often /usr/X11R6/include.

If you do not have root access and your system administrator doesn't want to create the link, then uncomment J_X11_INCLUDE_DIR and set it to point to the directory containing the X11 header files.

When I compile with gcc 2.95, I get lots of errors. How do I fix this?

Add -fpermissive to J_RAW_SYSTEM_STUFF in include/make/jx_config.

When I compile, I get warnings about implicit declarations of functions in ACE header files. How do I fix this?

Comment out J_DIE_ON_WARNING in include/make/jx_config.

When I compile, I get an error "undefined reference to `CMSG_DATA'". How do I get around this?

Uncomment J_FORCE_ACE_STATIC in include/make/jx_config. Then delete ACE/ACE_wrappers/ace/libACE.so and run make again. Please notify us so we can update the configuration for your system.

When I link, it complains that it can't find libXpm. How do I fix this?

Uncomment JX_INCLUDE_LIBXPM in include/make/jx_config.

How do I avoid stripping the shared libraries?

Change J_STRIP_DEBUG to "echo" in include/make/jx_config.

How do I avoid installing the binaries when I build?

Run "make J_WANT_INSTALL=0 target"


Bug fixes


Fix the definition of the delete macro in jNew.h to use a comma instead of a semicolon.


ACE


Do I have to use the version of ACE included with JX?

No. JX uses only the elementary functionality provided by ACE, and since this is very unlikely to change, you can safely use newer versions.


AIX


AIX has known problems with shared libraries. If you compile with optimization, you will get core dumps. If you build static libraries or compile without optimization, you should not have any problems.


FreeBSD


On FreeBSD 2.2.x, I have trouble with ACE. How do I fix this?

Uncomment ACE_HAS_SIGINFO_T and ACE_HAS_SIGWAIT in ACE/ACE_wrappers/ace/config-freebsd.h


HPUX


I get ACE errors when compiling JX. How do I fix this?

Add -DACE_HAS_THREADS to J_RAW_SYSTEM_STUFF in include/make/jx_config.


IRIX


Patch for IRIX 5.3 when using g++ 2.8.1:

Add #define ACE_HAS_DIRENT to ACE/ACE_wrappers/ace/config-irix5.3-g++.h.


Slackware (Linux)


I get a ton of errors when compiling ACE on old versions of Slackware. How do I fix this?

This is due to errors in the system header files. You can try to uncomment the line defining ACE_LACKS_MADVISE in ACE/ACE_wrappers/ace/config-linux-common.h. If this doesn't work, then we do not know of any way to fix the problem other than switching to a different Linux distribution.


Solaris


It complains "/usr/ucb/cc:  language optional software package not installed" How do I fix this?

This means that Sun Microsystems didn't even give you a plain C compiler as part of your UNIX installation. Your options are:
  • Install the cc/CC package from Sun.
  • Try the g++ build target instead. (Installing gcc/g++ doesn't cost money!)
You may also need to include "CC=gcc" as part of the make command.

It complains about missing return value specifications for most of the Xlib functions. How do I fix this?

Add -fpermissive or -Wno-return-type to J_RAW_SYSTEM_STUFF in include/make/jx_config. Then tell your system administrator to pester the X Consortium to release a cleaner Xlib distribution.

You can apparently also simply use the Xlib.h and Xutil.h files provided by XFree86, at least on SunOS 5.7.

It refuses to build the shared libraries. How do I fix this?

Change J_SHARED_LIB_LINK_OPTION to -shared or -G in include/make/jx_config.

It refuses to strip the shared libraries. How do I fix this?

Change J_STRIP_DEBUG to "strip -x" in include/make/jx_config.

Makemake fails because it can't find libucb.so. How do I fix this?

Add /usr/ucblib to your LD_LIBRARY_PATH environment variable.