From 85c0090b7c62ad4bc0bc3d0b7c2fcd7460dad2ba Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Tue, 23 Nov 2004 18:48:10 +0000 Subject: More watcom fixes (STR #627) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@3915 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- watcom/config.h | 444 +++++++++++++++++++++++++++--------------------------- watcom/makefile | 228 ++++++++++++++-------------- watcom/readme.wat | 72 +++++---- 3 files changed, 382 insertions(+), 362 deletions(-) (limited to 'watcom') diff --git a/watcom/config.h b/watcom/config.h index 2cb83c72b..93c030774 100644 --- a/watcom/config.h +++ b/watcom/config.h @@ -1,222 +1,222 @@ -/* - * "$Id: config.h,v 1.1.2.1 2004/11/20 03:19:59 easysw Exp $" - * - * Configuration file for the Fast Light Tool Kit (FLTK) for Watcom C++ 1.3 - * - * Copyright 1998-2004 by Bill Spitzak and others. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA. - * - * Please report all bugs and problems to "fltk-bugs@fltk.org". - */ - -/* - * Where to find the documentation files... - */ - -#define FLTK_DATADIR "C:/FLTK" -#define FLTK_DOCDIR "C:/FLTK/DOC" - - -/* - * BORDER_WIDTH: - * - * Thickness of FL_UP_BOX and FL_DOWN_BOX. Current 1,2, and 3 are - * supported. 3 is the historic FLTK look. 2 looks more like Microsoft - * Windows, KDE, and Qt, and is the default when building for Windows. - * 1 is a plausible future evolution... Note that this may be simulated - * at runtime by redefining the boxtypes using Fl::set_boxtype(). - */ - -#define BORDER_WIDTH 2 - -/* - * HAVE_GL: - * - * Do you have OpenGL? Set this to 0 if you don't have or plan to use - * OpenGL, and FLTK will be smaller. - */ - -#define HAVE_GL 1 - -/* - * HAVE_GL_GLU_H: - * - * Do you have the OpenGL Utility Library header file? - * (many broken Mesa RPMs do not...) - */ - -#define HAVE_GL_GLU_H 1 - -/* - * USE_COLORMAP: - * - * Setting this to zero will save a good deal of code (especially for - * fl_draw_image), but FLTK will only work on TrueColor visuals. - */ - -#define USE_COLORMAP 1 - -/* - * USE_XFT - * - * Use the new Xft library to draw anti-aliased text. - */ - -#define USE_XFT 0 - -/* - * HAVE_XDBE: - * - * Do we have the X double-buffer extension? - */ - -#define HAVE_XDBE 0 - -/* - * USE_XDBE: - * - * Actually try to use the double-buffer extension? Set this to zero - * disable use of XDBE without breaking the list_visuals program. - */ - -#define USE_XDBE HAVE_XDBE - -/* - * HAVE_OVERLAY: - * - * Use the X overlay extension? FLTK will try to use an overlay - * visual for Fl_Overlay_Window, the Gl_Window overlay, and for the - * menus. Setting this to zero will remove a substantial amount of - * code from FLTK. Overlays have only been tested on SGI servers! - */ - -#define HAVE_OVERLAY 0 - -/* - * HAVE_GL_OVERLAY: - * - * It is possible your GL has an overlay even if X does not. If so, - * set this to 1. - */ - -#define HAVE_GL_OVERLAY 1 - -/* - * WORDS_BIGENDIAN: - * - * Byte order of your machine: 1 = big-endian, 0 = little-endian. - */ - -#define WORDS_BIGENDIAN 0 - -/* - * U16, U32, U64: - * - * Types used by fl_draw_image. One of U32 or U64 must be defined. - * U16 is optional but FLTK will work better with it! - */ - -#define U16 unsigned short -#define U32 unsigned -/* #undef U64 */ - -/* - * HAVE_DIRENT_H, HAVE_SYS_NDIR_H, HAVE_SYS_DIR_H, HAVE_NDIR_H, HAVE_SCANDIR: - * - * Where is (used only by fl_file_chooser and scandir). - */ - -#define HAVE_DIRENT_H 1 -/* #undef HAVE_SYS_NDIR_H */ -/* #undef HAVE_SYS_DIR_H */ -/* #undef HAVE_NDIR_H */ -/* #undef HAVE_SCANDIR */ - -/* - * Possibly missing sprintf-style functions: - */ - -#define HAVE_VSNPRINTF 1 -#define HAVE_SNPRINTF 1 - -/* - * String functions and headers... - */ - -/* #undef HAVE_STRINGS_H */ -#define HAVE_STRCASECMP 1 -/* #undef HAVE_STRLCAT */ -/* #undef HAVE_STRLCPY */ - -/* - * HAVE_SYS_SELECT_H: - * - * Whether or not select() call has its own header file. - */ - -/* #undef HAVE_SYS_SELECT_H */ - -/* - * HAVE_SYS_STDTYPES_H: - * - * Whether or not we have the header file. - */ - -/* #undef HAVE_SYS_STDTYPES_H */ - -/* - * HAVE_POLL: - * - * Use poll() if we don't have select(). - */ - -#define HAVE_POLL 0 - -/* - * Do we have various image libraries? - */ - -/* #undef HAVE_LIBPNG */ -/* #undef HAVE_LIBZ */ -/* #undef HAVE_LIBJPEG */ - -/* - * Which header file do we include for libpng? - */ - -/* #undef HAVE_PNG_H */ -/* #undef HAVE_LIBPNG_PNG_H */ - -/* - * Do we have the png_xyz() functions? - */ - -/* #undef HAVE_PNG_GET_VALID */ -/* #undef HAVE_PNG_SET_TRNS_TO_ALPHA */ -/* #undef HAVE_PNG_READ_DESTROY */ - -/* - * Do we have POSIX threading? - */ - -/* #undef HAVE_PTHREAD */ -/* #undef HAVE_PTHREAD_H */ - - -/* - * End of "$Id: config.h,v 1.1.2.1 2004/11/20 03:19:59 easysw Exp $". - */ +/* + * "$Id: config.h,v 1.1.2.2 2004/11/23 18:48:10 easysw Exp $" + * + * Configuration file for the Fast Light Tool Kit (FLTK) for Watcom C++ 1.3 + * + * Copyright 1998-2004 by Bill Spitzak and others. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA. + * + * Please report all bugs and problems to "fltk-bugs@fltk.org". + */ + +/* + * Where to find the documentation files... + */ + +#define FLTK_DATADIR "C:/FLTK" +#define FLTK_DOCDIR "C:/FLTK/DOC" + + +/* + * BORDER_WIDTH: + * + * Thickness of FL_UP_BOX and FL_DOWN_BOX. Current 1,2, and 3 are + * supported. 3 is the historic FLTK look. 2 looks more like Microsoft + * Windows, KDE, and Qt, and is the default when building for Windows. + * 1 is a plausible future evolution... Note that this may be simulated + * at runtime by redefining the boxtypes using Fl::set_boxtype(). + */ + +#define BORDER_WIDTH 2 + +/* + * HAVE_GL: + * + * Do you have OpenGL? Set this to 0 if you don't have or plan to use + * OpenGL, and FLTK will be smaller. + */ + +#define HAVE_GL 1 + +/* + * HAVE_GL_GLU_H: + * + * Do you have the OpenGL Utility Library header file? + * (many broken Mesa RPMs do not...) + */ + +#define HAVE_GL_GLU_H 1 + +/* + * USE_COLORMAP: + * + * Setting this to zero will save a good deal of code (especially for + * fl_draw_image), but FLTK will only work on TrueColor visuals. + */ + +#define USE_COLORMAP 1 + +/* + * USE_XFT + * + * Use the new Xft library to draw anti-aliased text. + */ + +#define USE_XFT 0 + +/* + * HAVE_XDBE: + * + * Do we have the X double-buffer extension? + */ + +#define HAVE_XDBE 0 + +/* + * USE_XDBE: + * + * Actually try to use the double-buffer extension? Set this to zero + * disable use of XDBE without breaking the list_visuals program. + */ + +#define USE_XDBE HAVE_XDBE + +/* + * HAVE_OVERLAY: + * + * Use the X overlay extension? FLTK will try to use an overlay + * visual for Fl_Overlay_Window, the Gl_Window overlay, and for the + * menus. Setting this to zero will remove a substantial amount of + * code from FLTK. Overlays have only been tested on SGI servers! + */ + +#define HAVE_OVERLAY 0 + +/* + * HAVE_GL_OVERLAY: + * + * It is possible your GL has an overlay even if X does not. If so, + * set this to 1. + */ + +#define HAVE_GL_OVERLAY 1 + +/* + * WORDS_BIGENDIAN: + * + * Byte order of your machine: 1 = big-endian, 0 = little-endian. + */ + +#define WORDS_BIGENDIAN 0 + +/* + * U16, U32, U64: + * + * Types used by fl_draw_image. One of U32 or U64 must be defined. + * U16 is optional but FLTK will work better with it! + */ + +#define U16 unsigned short +#define U32 unsigned +/* #undef U64 */ + +/* + * HAVE_DIRENT_H, HAVE_SYS_NDIR_H, HAVE_SYS_DIR_H, HAVE_NDIR_H, HAVE_SCANDIR: + * + * Where is (used only by fl_file_chooser and scandir). + */ + +#define HAVE_DIRENT_H 1 +/* #undef HAVE_SYS_NDIR_H */ +/* #undef HAVE_SYS_DIR_H */ +/* #undef HAVE_NDIR_H */ +/* #undef HAVE_SCANDIR */ + +/* + * Possibly missing sprintf-style functions: + */ + +#define HAVE_VSNPRINTF 1 +#define HAVE_SNPRINTF 1 + +/* + * String functions and headers... + */ + +/* #undef HAVE_STRINGS_H */ +#define HAVE_STRCASECMP 1 +/* #undef HAVE_STRLCAT */ +/* #undef HAVE_STRLCPY */ + +/* + * HAVE_SYS_SELECT_H: + * + * Whether or not select() call has its own header file. + */ + +/* #undef HAVE_SYS_SELECT_H */ + +/* + * HAVE_SYS_STDTYPES_H: + * + * Whether or not we have the header file. + */ + +/* #undef HAVE_SYS_STDTYPES_H */ + +/* + * HAVE_POLL: + * + * Use poll() if we don't have select(). + */ + +#define HAVE_POLL 0 + +/* + * Do we have various image libraries? + */ + +/* #undef HAVE_LIBPNG */ +/* #undef HAVE_LIBZ */ +/* #undef HAVE_LIBJPEG */ + +/* + * Which header file do we include for libpng? + */ + +/* #undef HAVE_PNG_H */ +/* #undef HAVE_LIBPNG_PNG_H */ + +/* + * Do we have the png_xyz() functions? + */ + +/* #undef HAVE_PNG_GET_VALID */ +/* #undef HAVE_PNG_SET_TRNS_TO_ALPHA */ +/* #undef HAVE_PNG_READ_DESTROY */ + +/* + * Do we have POSIX threading? + */ + +/* #undef HAVE_PTHREAD */ +/* #undef HAVE_PTHREAD_H */ + + +/* + * End of "$Id: config.h,v 1.1.2.2 2004/11/23 18:48:10 easysw Exp $". + */ diff --git a/watcom/makefile b/watcom/makefile index 75dd9e45a..a163dd43a 100644 --- a/watcom/makefile +++ b/watcom/makefile @@ -1,114 +1,114 @@ -# -# Name : Watcom makefile for FLTK, multiplatform -# -# Author : M. Nieuwenhoven -# -# The makefile has multiple targets: -# - clean : Cleans all directories from files built during make -# - all : Builds all targets for both debug and release -# - xy : where x = D|R, Y = D|O|W|L, where only W (Win32) is -# currently supported by the source for Watcom. -# - - -!ifndef %FLTK -ERROR_MSG = Environment variable FLTK must have been set! -!endif - -.BEFORE -!ifdef ERROR_MSG - @echo . - @echo $(ERROR_MSG) - @echo . - @%abort -!endif - -ROOT=$(%FLTK) -PROJ=fltk - -# -# This builds all library targets and the main programs -# -ALL : .SYMBOLIC - set Clean= - wmake -h dw - wmake -h rw -# wmake -h do -# wmake -h ro -# wmake -h dl -# wmake -h rl - -# -# Clean all directories. Call each target with a 'clean' target. Proper -# knowledge about cleaning can only be at the places where also the -# builds is done. -# -clean : .SYMBOLIC - @echo Cleaning up. - set Clean=CLEAN - wmake -h dw - wmake -h rw -# wmake -h do -# wmake -h ro -# wmake -h dl -# wmake -h rl - -# -# Win32 Debug and Release targets -# -DW : .SYMBOLIC - @set OPTIONS=D=d O=w ROOT=$(ROOT) PROJ=$(PROJ) EXTRA_INCLUDE_DIRS=$(ROOT) - %make BuildOne - -RW : .SYMBOLIC - @set OPTIONS=D=r O=w ROOT=$(ROOT) PROJ=$(PROJ) EXTRA_INCLUDE_DIRS=$(ROOT) - %make BuildOne - -# -# OS/2 Debug and Release targets. Builds only jpeg, zlib and png libs for now. -# -DO : .SYMBOLIC - @set OPTIONS=D=d O=o ROOT=$(ROOT) PROJ=$(PROJ) EXTRA_INCLUDE_DIRS=$(ROOT) - %make BuildOne - -RO : .SYMBOLIC - @set OPTIONS=D=r O=o ROOT=$(ROOT) PROJ=$(PROJ) EXTRA_INCLUDE_DIRS=$(ROOT) - %make BuildOne - -# -# Linux Debug and Release targets. Environment variable XLIB must point to a directory -# which has a subdirectory X11 with X include files. Builds only jpeg, zlib and png libs for now. -# -DL : .SYMBOLIC - @set OPTIONS=D=d O=l ROOT=$(ROOT) PROJ=$(PROJ) EXTRA_INCLUDE_DIRS=$(ROOT);$(%XLIB) - %make BuildOne - -RL : .SYMBOLIC - @set OPTIONS=D=r O=l ROOT=$(ROOT) PROJ=$(PROJ) EXTRA_INCLUDE_DIRS=$(ROOT);$(%XLIB) - %make BuildOne - -# Internal target to build the individual modules. The following macros must -# have been set: D (value D or R), O (D,O,W,L) - -BuildOne : .SYMBOLIC - - @echo "=== making jpeg library ===" - @cd $(ROOT)\jpeg - @wmake -h -f makefile.wat $(%OPTIONS) $(%CLEAN) - @echo "=== making zlib library ===" - @cd $(ROOT)\zlib - @wmake -h -f makefile.wat $(%OPTIONS) $(%CLEAN) - @echo "=== making png library ===" - @cd $(ROOT)\png - @wmake -h -f makefile.wat $(%OPTIONS) $(%CLEAN) - @echo "=== making fltk libraries ===" - @cd $(ROOT)\src - @wmake -h -f makefile.wat $(%OPTIONS) $(%CLEAN) - @echo "=== making fluid ===" - @cd $(ROOT)\fluid - @wmake -h -f makefile.wat $(%OPTIONS) $(%CLEAN) - @echo "=== making test ===" - @cd $(ROOT)\test - @wmake -h -f makefile.wat $(%OPTIONS) $(%CLEAN) - - +# +# Name : Watcom makefile for FLTK, multiplatform +# +# Author : M. Nieuwenhoven +# +# The makefile has multiple targets: +# - clean : Cleans all directories from files built during make +# - all : Builds all targets for both debug and release +# - xy : where x = D|R, Y = D|O|W|L, where only W (Win32) is +# currently supported by the source for Watcom. +# + + +!ifndef %FLTK +ERROR_MSG = Environment variable FLTK must have been set! +!endif + +.BEFORE +!ifdef ERROR_MSG + @echo . + @echo $(ERROR_MSG) + @echo . + @%abort +!endif + +ROOT=$(%FLTK) +PROJ=fltk + +# +# This builds all library targets and the main programs +# +ALL : .SYMBOLIC + set Clean= + wmake -h dw + wmake -h rw +# wmake -h do +# wmake -h ro +# wmake -h dl +# wmake -h rl + +# +# Clean all directories. Call each target with a 'clean' target. Proper +# knowledge about cleaning can only be at the places where also the +# builds is done. +# +clean : .SYMBOLIC + @echo Cleaning up. + set Clean=CLEAN + wmake -h dw + wmake -h rw +# wmake -h do +# wmake -h ro +# wmake -h dl +# wmake -h rl + +# +# Win32 Debug and Release targets +# +DW : .SYMBOLIC + @set OPTIONS=D=d O=w ROOT=$(ROOT) PROJ=$(PROJ) EXTRA_INCLUDE_DIRS=$(ROOT) + %make BuildOne + +RW : .SYMBOLIC + @set OPTIONS=D=r O=w ROOT=$(ROOT) PROJ=$(PROJ) EXTRA_INCLUDE_DIRS=$(ROOT) + %make BuildOne + +# +# OS/2 Debug and Release targets. Builds only jpeg, zlib and png libs for now. +# +DO : .SYMBOLIC + @set OPTIONS=D=d O=o ROOT=$(ROOT) PROJ=$(PROJ) EXTRA_INCLUDE_DIRS=$(ROOT) + %make BuildOne + +RO : .SYMBOLIC + @set OPTIONS=D=r O=o ROOT=$(ROOT) PROJ=$(PROJ) EXTRA_INCLUDE_DIRS=$(ROOT) + %make BuildOne + +# +# Linux Debug and Release targets. Environment variable XLIB must point to a directory +# which has a subdirectory X11 with X include files. Builds only jpeg, zlib and png libs for now. +# +DL : .SYMBOLIC + @set OPTIONS=D=d O=l ROOT=$(ROOT) PROJ=$(PROJ) EXTRA_INCLUDE_DIRS=$(ROOT);$(%XLIB) + %make BuildOne + +RL : .SYMBOLIC + @set OPTIONS=D=r O=l ROOT=$(ROOT) PROJ=$(PROJ) EXTRA_INCLUDE_DIRS=$(ROOT);$(%XLIB) + %make BuildOne + +# Internal target to build the individual modules. The following macros must +# have been set: D (value D or R), O (D,O,W,L) + +BuildOne : .SYMBOLIC + + @echo "=== making jpeg library ===" + @cd $(ROOT)\jpeg + @wmake -h -f makefile.wat $(%OPTIONS) $(%CLEAN) + @echo "=== making zlib library ===" + @cd $(ROOT)\zlib + @wmake -h -f makefile.wat $(%OPTIONS) $(%CLEAN) + @echo "=== making png library ===" + @cd $(ROOT)\png + @wmake -h -f makefile.wat $(%OPTIONS) $(%CLEAN) + @echo "=== making fltk libraries ===" + @cd $(ROOT)\src + @wmake -h -f makefile.wat $(%OPTIONS) $(%CLEAN) + @echo "=== making fluid ===" + @cd $(ROOT)\fluid + @wmake -h -f makefile.wat $(%OPTIONS) $(%CLEAN) + @echo "=== making test ===" + @cd $(ROOT)\test + @wmake -h -f makefile.wat $(%OPTIONS) $(%CLEAN) + + diff --git a/watcom/readme.wat b/watcom/readme.wat index 59443594f..251ec196f 100644 --- a/watcom/readme.wat +++ b/watcom/readme.wat @@ -1,26 +1,46 @@ - -Using Watcom to build and use FLTK 1.1.5 - -Supported targets: Win32 only, static builds (no DLLs). Can be used from any Watcom - supported host (DOS, OS/2, Windows). - -1. Unzip the include file in the root of the fltk 1.1.5 directory. It will create a - new directory called watcom, put a makefile.wat in source directories, and update - two sources files which need to be different from the 1.1.5 versions (STR updated), - and put a watcom.mif file in the fltk root directory. - -2. To build: set the environment variable fltk to the root directory of fltk, go - to the Watcom directory, run wmake. Both debug and release versions of all libs, - test programs and FLUID will be built. - -3. To create you own programs: use the supplied watcom.mif file. If you use fluid, - move the two fluid rules from test/makefile.wat into the watcom.mif - file. Look in test/makefile.wat also for rules about building a non-fluid program - with one object (source) file, or with multiple. if you use FLUID, take care in - the order of object files specified (see tes/makefile.wat keyboard.exe). - -Questions about the watcom port please to the fltk.general newsgroup. - -Mat Nieuwenhoven, Hilversum, 2004-10-28 - - + +Using Watcom to build and use FLTK 1.1.5 + +Supported targets: Win32 only, static builds (no DLLs). Can be used from any Watcom + supported host (DOS, OS/2, Windows). + +1. To build fltk itself: + - set the environment variable fltk to the root directory of fltk + - go to the Watcom directory, run wmake. + Both debug and release versions of all libs, test programs and FLUID will be built. + +2. To create you own programs using fluid: + - set the environment variable fltk to the root directory of fltk + - make a directory where you want to create the source of your program. + - from fltk's watcom directory, copy file "makefile.example" to "makefile" in your + directory. + - Start fluid, and create your program. + - You can either put in fluid's menu shell->execute command: + "cmd /k "wmake && hello && exit || pause && exit" + to compile and run the program (if you are running under Windows only), + - Or in Fluid do shift-Ctrl-C to create C+= code, and then in a cmd prompt + in your directory enter 'wmake", and then run the program. + I have been able to do most of the Fluid Flash tutorial (no time to do all, + but no error at all for the ones I did do. + +3. Known errors: + - Fluid aborts when exiting. + + Probably a lot more :-( . I cannot test/debug under NT or later, so I must + rely on the help of others to find and fix :-) Watcom-related bugs. + + +Questions about the OpenWatcom port please to the fltk.general newsgroup. +Questions related to Openwatcom itself please to the c/c++ users group at +new.openwatcom.org. + + +Mat Nieuwenhoven, Hilversum, 2004-11-22 + + + + + + + + -- cgit v1.2.3