Frequently Asked Questions (FAQ)
There are separate web pages explaining how to use UNIX make and fdesign.
Table of Contents
If you have a question that isn't answered here, please ask us.
If you are using /bin/tcsh:
If you are using /bin/bash:
Or you can patch it by appending the following arguments to the call to JProcess::Create(): "kJIgnoreConnection, NULL, kJTossOutput, NULL, kJAttachToFromFD, NULL"
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.
Fix the definition of the delete macro in jNew.h to use a comma instead of a semicolon.
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.
You can apparently also simply use the Xlib.h and Xutil.h files provided by XFree86, at least on SunOS 5.7.
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.
setenv VARIABLE VALUE
If you append this to the file ~/.cshrc, the variable will be set automatically every time you log in.
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).
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.
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
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
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:
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.
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.
![[logo]](/nps/image/logo_small.gif)