More watcom fixes (STR #627)

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@3915 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Michael R Sweet 2004-11-23 18:48:10 +00:00
parent 7ca20dcd4a
commit 85c0090b7c
7 changed files with 714 additions and 647 deletions

View File

@ -33,6 +33,32 @@ exceptions that allow for static linking.
Changes since FLTK 1.1.4 include:
- Documentation updates (STR #568, STR #570)
- Shortcuts were incorrectly underlined in multi-line
labels (STR #566)
- More CMake updates (STR #499)
- The Watcom C++ compiler needed a small change (STR
#567)
- Added DESTDIR support and now remove all man pages for
the "uninstall" target (STR #545)
- Fix PNG drawing on buggy WIN32 graphics cards (STR
#548)
- The configure script didn't propagate the CPPFLAGS
environment variable (STR #549)
- The numpad keys didn't work properly on WIN32 (STR
#502)
- fl_input() and friends now set the input focus to the
text field when the dialog is shown (STR #553)
- Fixed background color mixup when drawing Fl_Choice
menus (STR #544)
- Fixed MingW makefiles (STR #550)
- More VC++ project file tweaking (STR #559)
- Fl_PNG_Image didn't use the png_set_trns_to_alpha
function when available (STR #547)
- The FL_UNFOCUS event wasn't always sent when switching
tabs (STR #558)
[1.1.5rc3]
- Documentation updates (STR #505, STR #513)
- Updated PNG library source to 1.2.7.
- Updated ZLIB library source to 1.2.1.
@ -326,6 +352,30 @@ exceptions that allow for static linking.
<UL>
<li>Documentation updates (<a href='str.php?L568'>STR #568</a>, <a href='str.php?L570'>STR #570</a>)
<li>Shortcuts were incorrectly underlined in multi-line
labels (<a href='str.php?L566'>STR #566</a>)
<li>More CMake updates (<a href='str.php?L499'>STR #499</a>)
<li>The Watcom C++ compiler needed a small change (<a href='str.php?L567'>STR #567</a>)
<li>Added DESTDIR support and now remove all man pages for
the "uninstall" target (<a href='str.php?L545'>STR #545</a>)
<li>Fix PNG drawing on buggy WIN32 graphics cards (<a href='str.php?L548'>STR #548</a>)
<li>The configure script didn't propagate the CPPFLAGS
environment variable (<a href='str.php?L549'>STR #549</a>)
<li>The numpad keys didn't work properly on WIN32 (<a href='str.php?L502'>STR #502</a>)
<li>fl_input() and friends now set the input focus to the
text field when the dialog is shown (<a href='str.php?L553'>STR #553</a>)
<li>Fixed background color mixup when drawing Fl_Choice
menus (<a href='str.php?L544'>STR #544</a>)
<li>Fixed MingW makefiles (<a href='str.php?L550'>STR #550</a>)
<li>More VC++ project file tweaking (<a href='str.php?L559'>STR #559</a>)
<li>Fl_PNG_Image didn't use the png_set_trns_to_alpha
function when available (<a href='str.php?L547'>STR #547</a>)
<li>The FL_UNFOCUS event wasn't always sent when switching
tabs (<a href='str.php?L558'>STR #558</a>)
<br /><i>[1.1.5rc3]</i>
<li>Documentation updates (<a href='http://www.fltk.org/str.php?L505'>STR #505</a>, <a href='http://www.fltk.org/str.php?L513'>STR #513</a>)
<li>Updated PNG library source to 1.2.7.
<li>Updated ZLIB library source to 1.2.1.

View File

@ -20,7 +20,7 @@ CHANGES IN FLTK 1.1.6
(STR #585)
- Fl_Text_Display didn't support CTRL/CMD-A/C (STR #601)
- Watcom fixes (STR #581, STR #584, STR #594, STR #595,
STR #623)
STR #623, STR #627)
- Fixed library include order when building DSOs on
MacOS X (STR #596)
- fl_xid() could cause a WIN32 application to crash (STR

View File

@ -1,5 +1,5 @@
#
# "$Id: makefile.wat,v 1.1.2.2 2004/11/21 14:32:21 easysw Exp $"
# "$Id: makefile.wat,v 1.1.2.3 2004/11/23 18:48:09 easysw Exp $"
#
# FLUID makefile for the Fast Light Tool Kit (FLTK).
#
@ -45,8 +45,6 @@ OBJECTS = &
################################################################
EXTRA_LIBS = wsock32
!include ../watcom.mif
all: $(ODIR)/fluid$(EXEEXT)
@ -74,5 +72,5 @@ rebuild:
./fluid -c widget_panel.fl
#
# End of "$Id: makefile.wat,v 1.1.2.2 2004/11/21 14:32:21 easysw Exp $".
# End of "$Id: makefile.wat,v 1.1.2.3 2004/11/23 18:48:09 easysw Exp $".
#

View File

@ -1,280 +1,279 @@
######################################################################
#
# Watcom C specific makefile, multiplatform
#
#
# The following macross must be set active when this file is called
# -D parameter, e.g. -DPROJ=fltk
# ROOT = root of project (e.g. FLTK directory)
# PROJ = project name (e.g. fltk)
#
# The following environment variable must be set. If you have multiple
# Watcom versions, use the setvars file in the Watcom directory to set it.
# WATCOM = root of Watcom C
######################################################################
#
# The following options must be set when calling this wmake file
# (case-sensitive):
# D (debug/release mode): d for debug mode,
# r for release mode
# O (target environment): d = DOS 32 bits
# o = OS/2 32 bits
# w = Windows 32 bit
# l = Linux Intel (experimental, no graphics yet (OW 1.3))
#
#
# If not set, debug mode and target=host (that is, no cross-compiling).
# Example: wmake -h -f makefile.wat d=r o=w
#
# Following macros can be used to add/override existing macros in
# this file.
# EXTRA_INCLUDE_DIRS # Non-Watcom (project) include dirs
# ODIR # Output directory if not default
# ROOT # Project root. If not given, .
# PROJ # Project name.
# LIBS # Extra libs to link in
# LIBDIR # Project library directory. Default: PROJ\LIB
# LIBNAMEROOT # Project rootname of output library. Default: PROJ\Lib\Proj
# EXTRA_LIBS # Target specific include libs
!ifndef D
MODE=d # default is debug mode
!else
! ifeq D d
MODE=d
! else ifeq D r
MODE=r
! else
CONFIG_ERROR_MSG=Unrecognized mode: $(D)
! endif
!endif
# If target is specified, check its validity; if not specified, the target is
# the host platform itself.
!ifdef O
! ifeq O d
TARGET=dos
! else ifeq O o
TARGET=os2
! else ifeq O w
TARGET=nt
! else ifeq O l
TARGET=linux
! else
CONFIG_ERROR_MSG=Unrecognized target: $(O)
! endif
!else
! ifdef __DOS__
TARGET=dos
! else ifdef __OS2__
TARGET=os2
! else ifdef __NT__
TARGET=nt
! else ifdef __LINUX__
TARGET=linux
! endif
!endif
#
# Now we know the target. Determine the link target. For fltk, this
# is always GUI for Windows and OS/2. For possible link targets (aliases
# for a set of linker directives) see wlsystem.lnk in Watcom's BINW directory.
#
!ifeq TARGET dos
LINKTARGET=dos32a
!else ifeq TARGET os2
LINKTARGET=os2v2_pm
!else ifeq TARGET nt
LINKTARGET=nt_win
!else
LINKTARGET=linux
!endif
#
# Very important: specify the sequence of extensions. Wmake will try to make a target
# with an extension from the first file of the same name with an extension to the right.
# E.g. it tries to make hello.obj from hello.cxx, or hello.cpp etc, but never from hello.exe
#
.EXTENSIONS :
.EXTENSIONS : .exe .lib .obj .cxx .cpp .c .h .fl
#
# Create output directory name if not already supplied. To allow
# cross-development, must include target name.
#
!ifndef ODIR
ODIR=$(D)_$(TARGET)
!endif
#
# Contruct the libname from the root plus D and O macros, so that
# multiple LIBS can co-exists, e.g. FLTK_DW and FLTK_RW for Win32.
#
!ifndef LIBDIR
LIBDIR=$(ROOT)\lib\
!endif
!ifndef LIBNAMEROOT
LIBNAMEROOT=$(PROJ)
!endif
!ifndef LIBNAME
LIBNAME = $(LIBDIR)$(LIBNAMEROOT)_$(D)$(O).lib
# FLTK has other 'global' libs. Define the names here so that any application
# using FLTK can use them by just including this mif file.
LIBNAMEFL = $(LIBDIR)$(LIBNAMEROOT)_fl_$(D)$(O).lib
LIBNAMEGL = $(LIBDIR)$(LIBNAMEROOT)_gl_$(D)$(O).lib
LIBNAMEIMG = $(LIBDIR)$(LIBNAMEROOT)_img_$(D)$(O).lib
LIBS = $(LIBNAME) $(LIBNAMEFL) $(LIBNAMEGL) $(LIBNAMEIMG)
!endif
# Set target environment options for the project
!ifeqi TARGET nt # WINDOWS 32 bit
SYSDEF= -DWIN32
ASYSDEF=
EXEEXT=.exe
!else ifeqi TARGET linux # Linux Intel 32 bit generic
SYSDEF=
ASYSDEF=
EXEEXT=.exe # We need some exe extension else the build won't work
!else ifeqi TARGET os2 # OS/2 32 bit
SYSDEF=
ASYSDEF=
EXEEXT=.exe
!else ifeqi TARGET dos # DOS 32 bit
SYSDEF=
ASYSDEF=
EXEEXT=.exe
!endif
######################################################################
#
# End of compiler- and environment specific options
#
# Note !message will print before any actions ('PRE'processor!), and thus
# will not reflect results of any rules (like set xxx=yyy).
# echo is a rule itself, and will reflect results of preceding rules.
#
######################################################################
.BEFORE :
!ifdef CONFIG_ERROR_MSG
! message
! message Configuration error:
! message $(CONFIG_ERROR_MSG)
! message
%abort
!endif
@if not exist $(ODIR) -mkdir $(ODIR)
!ifeqi O d
@set INCLUDE=$(%WATCOM)\H;$(EXTRA_INCLUDE_DIRS)
!else ifeqi O o
@set INCLUDE=$(%WATCOM)\H;$(%WATCOM)\H\OS2;$(EXTRA_INCLUDE_DIRS)
!else ifeqi O w
@set INCLUDE=$(%WATCOM)\H;$(%WATCOM)\H\NT;$(EXTRA_INCLUDE_DIRS)
!else ifeqi O l
@set INCLUDE=$(%WATCOM)\LH;$(EXTRA_INCLUDE_DIRS)
!endif
# @set LIB=$(LIBPATH)
# @echo Top dir: $(PROJ)
@echo Include dirs: $(%INCLUDE)
# @echo Lib dirs: $(LIBDIRS)
# @echo Libname=$(LIBNAME)
# @echo extra libs: $(LIBS)
# @echo Wmake version $(__VERSION__)
# @echo Wmake parameters: $(__MAKEOPTS__)
# @echo Compiler : $(CC) $(CCOPTS0) $(CCOPTS1) $(CCOPTS2) $(CCOPTS3)
# @echo Librarian: $(LIB)
# @echo Linker : $(LN) $(LNOPTS)
# @echo Project : $(P)
!ifeqi D d
WCADEBUG=-d1 # debug opts for wasm
WCCDEBUG=-d2 -s -ors # debug opts for wcc. NOTE: -we is to make errors of all warnings
WCLDEBUG=d all # debug opts for wlink
# WCCTIMING=-et # if added to CC command line will generate timing file after execution
!else
#
# WCADEBUG= # debug opts for wasm
WCCDEBUG= -ors -s # release opts for wcc
# WCLDEBUG= # release opts for wlink
!endif
# Conventions Watcom
# Tell default paths based on extension
.fl : .
.h : .
#.lib : .
.c : .
.cpp : .
.cxx : .
.obj : $(ODIR)
.exe : $(ODIR)
#
# Tell wmake to use DLL versions of some commands (much quicker)
#
!loaddll wcc386 wccd386
!loaddll wpp386 wppd386
!loaddll wlink wlink
!loaddll wlib wlibd
CCOPTS0=-6r -zq
CCOPTS1=$(WCCDEBUG) -bt=$(TARGET) -fp6 -fpi87 # 1st part of Watcom opts
CCOPTS2=-mf -wce=130 -wx -zq # -j # 2nd part of Watcom opts
CCOPTS3=-fo$(ODIR)\$^&.obj # 3rd part Watcom opts
COPTS=-zm
CPPOPTS=-zmf -zv -fx
LNOPTS=sys $(LINKTARGET) $(WCLDEBUG) op symf,q,m,el,vfr op st=32k # linker options
LIBOPTS= -b -q -p=512 -c # librarian options
LN=wlink # Watcom linker
AS=wasm # Watcom assembler
cc=wcc386 # Watcom C compiler
cpp=wpp386 # Watcom C++ compiler
LIB=wlib # Watcom librarian
#
# Compilation
#
.c.obj: .AUTODEPEND
$(CC) $(SYSDEF) $(DEBUGDEF) $(CCOPTS0) $(CCOPTS1) $(CCOPTS2) $(CCOPTS3) $(COPTS) $[@
.cpp.obj: .AUTODEPEND
$(CPP) $(SYSDEF) $(DEBUGDEF) $(CCOPTS0) $(CCOPTS1) $(CCOPTS2) $(CCOPTS3) $(CPPOPTS) $[@
.cxx.obj: .AUTODEPEND
$(CPP) $(SYSDEF) $(DEBUGDEF) $(CCOPTS0) $(CCOPTS1) $(CCOPTS2) $(CCOPTS3) $(CPPOPTS) $[@
#
# Librarian stage
#
.obj.lib:
$(LIB) $(LIBOPTS) $@ $<
#
# Linking stage. This implicit rule assumes the .exe is created from an object file with the
# same name, plus other object in macro OBJECTS, a number of .libs in macro LIBS etc.
# If the linking fails for some reason, the .lk1 file is not deleted and it can be
# examined.
#
.obj.exe:
@%create $^*.lk1
@%append $^*.lk1 F $(ODIR)/$^&
@for %i in ($(%OBJS)) do @%append $^*.lk1 F $(ODIR)/%i
@for %i in ($(OBJECTS)) do @%append $^*.lk1 F $(ODIR)/%i
@for %i in ($(LIBS)) do @%append $^*.lk1 L %i
@for %i in ($(EXTRA_LIBS)) do @%append $^*.lk1 L %i
@for %i in ($(SYSLIBS)) do @%append $^*.lk1 L %i
$(LN) $(LNOPTS) name $^@ op map=$^* @$^*.lk1
@del $^*.lk1
######################################################################
#
# Watcom C specific makefile, multiplatform
#
#
# The following macross must be set active when this file is called
# -D parameter, e.g. -DPROJ=fltk
# ROOT = root of project (e.g. FLTK directory)
# PROJ = project name (e.g. fltk)
#
# The following environment variable must be set. If you have multiple
# Watcom versions, use the setvars file in the Watcom directory to set it.
# WATCOM = root of Watcom C
######################################################################
#
# The following options must be set when calling this wmake file
# (case-sensitive):
# D (debug/release mode): d for debug mode,
# r for release mode
# O (target environment): d = DOS 32 bits
# o = OS/2 32 bits
# w = Windows 32 bit
# l = Linux Intel (experimental, no graphics yet (OW 1.3))
#
#
# If not set, debug mode and target=host (that is, no cross-compiling).
# Example: wmake -h -f makefile.wat d=r o=w
#
# Following macros can be used to add/override existing macros in
# this file.
# EXTRA_INCLUDE_DIRS # Non-Watcom (project) include dirs
# ODIR # Output directory if not default
# ROOT # Project root. If not given, .
# PROJ # Project name.
# LIBS # Extra libs to link in
# LIBDIR # Project library directory. Default: PROJ\LIB
# LIBNAMEROOT # Project rootname of output library. Default: PROJ\Lib\Proj
# EXTRA_LIBS # Target specific include libs
!ifndef D
MODE=d # default is debug mode
!else
! ifeq D d
MODE=d
! else ifeq D r
MODE=r
! else
CONFIG_ERROR_MSG=Unrecognized mode: $(D)
! endif
!endif
# If target is specified, check its validity; if not specified, the target is
# the host platform itself.
!ifdef O
! ifeq O d
TARGET=dos
! else ifeq O o
TARGET=os2
! else ifeq O w
TARGET=nt
! else ifeq O l
TARGET=linux
! else
CONFIG_ERROR_MSG=Unrecognized target: $(O)
! endif
!else
! ifdef __DOS__
TARGET=dos
! else ifdef __OS2__
TARGET=os2
! else ifdef __NT__
TARGET=nt
! else ifdef __LINUX__
TARGET=linux
! endif
!endif
#
# Now we know the target. Determine the link target. For fltk, this
# is always GUI for Windows and OS/2. For possible link targets (aliases
# for a set of linker directives) see wlsystem.lnk in Watcom's BINW directory.
#
!ifeq TARGET dos
LINKTARGET=dos32a
!else ifeq TARGET os2
LINKTARGET=os2v2_pm
!else ifeq TARGET nt
LINKTARGET=nt_win
!else
LINKTARGET=linux
!endif
#
# Very important: specify the sequence of extensions. Wmake will try to make a target
# with an extension from the first file of the same name with an extension to the right.
# E.g. it tries to make hello.obj from hello.cxx, or hello.cpp etc, but never from hello.exe
#
.EXTENSIONS :
.EXTENSIONS : .exe .lib .obj .cxx .cpp .c .h .fl
#
# Create output directory name if not already supplied. To allow
# cross-development, must include target name.
#
!ifndef ODIR
ODIR=$(D)_$(TARGET)
!endif
#
# Contruct the libname from the root plus D and O macros, so that
# multiple LIBS can co-exists, e.g. FLTK_DW and FLTK_RW for Win32.
#
!ifndef LIBDIR
LIBDIR=$(ROOT)\lib\
!endif
!ifndef LIBNAMEROOT
LIBNAMEROOT=$(PROJ)
!endif
!ifndef LIBNAME
LIBNAME = $(LIBDIR)$(LIBNAMEROOT)_$(D)$(O).lib
# FLTK has other 'global' libs. Define the names here so that any application
# using FLTK can use them by just including this mif file.
LIBNAMEFL = $(LIBDIR)$(LIBNAMEROOT)_fl_$(D)$(O).lib
LIBNAMEGL = $(LIBDIR)$(LIBNAMEROOT)_gl_$(D)$(O).lib
LIBNAMEIMG = $(LIBDIR)$(LIBNAMEROOT)_img_$(D)$(O).lib
LIBS = $(LIBNAME) $(LIBNAMEFL) $(LIBNAMEGL) $(LIBNAMEIMG)
!endif
# Set target environment options for the project
!ifeqi TARGET nt # WINDOWS 32 bit
SYSDEF= -DWIN32
ASYSDEF=
SYSLIBS=wsock32.lib mpr.lib glu32.lib opengl32.lib
EXEEXT=.exe
!else ifeqi TARGET linux # Linux Intel 32 bit generic
SYSDEF=
ASYSDEF=
EXEEXT=.exe # We need some exe extension else the build won't work
!else ifeqi TARGET os2 # OS/2 32 bit
SYSDEF=
ASYSDEF=
EXEEXT=.exe
!else ifeqi TARGET dos # DOS 32 bit
SYSDEF=
ASYSDEF=
EXEEXT=.exe
!endif
######################################################################
#
# End of compiler- and environment specific options
#
# Note !message will print before any actions ('PRE'processor!), and thus
# will not reflect results of any rules (like set xxx=yyy).
# echo is a rule itself, and will reflect results of preceding rules.
#
######################################################################
.BEFORE :
!ifdef CONFIG_ERROR_MSG
! message
! message Configuration error:
! message $(CONFIG_ERROR_MSG)
! message
%abort
!endif
@if not exist $(ODIR) mkdir $(ODIR) >nul
!ifeqi TARGET dos
@set INCLUDE=$(%WATCOM)\H;$(EXTRA_INCLUDE_DIRS)
!else ifeqi TARGET os2
@set INCLUDE=$(%WATCOM)\H;$(%WATCOM)\H\OS2;$(EXTRA_INCLUDE_DIRS)
!else ifeqi TARGET nt
@set INCLUDE=$(%WATCOM)\H;$(%WATCOM)\H\NT;$(EXTRA_INCLUDE_DIRS)
!else ifeqi TARGET linux
@set INCLUDE=$(%WATCOM)\LH;$(EXTRA_INCLUDE_DIRS)
!endif
# @set LIB=$(LIBPATH)
# @echo Top dir: $(PROJ)
@echo Include dirs: $(%INCLUDE)
# @echo Lib dirs: $(LIBDIRS)
# @echo Libname=$(LIBNAME)
# @echo extra libs: $(LIBS)
# @echo Wmake version $(__VERSION__)
# @echo Wmake parameters: $(__MAKEOPTS__)
# @echo Compiler : $(CC) $(CCOPTS0) $(CCOPTS1) $(CCOPTS2) $(CCOPTS3)
# @echo Librarian: $(LIB)
# @echo Linker : $(LN) $(LNOPTS)
# @echo Project : $(P)
!ifeqi D d
WCADEBUG=-d1 # debug opts for wasm
WCCDEBUG=-d2 -s -ors # debug opts for wcc. NOTE: -we is to make errors of all warnings
WCLDEBUG=d all # debug opts for wlink
# WCCTIMING=-et # if added to CC command line will generate timing file after execution
!else
#
# WCADEBUG= # debug opts for wasm
WCCDEBUG= -ors -s # release opts for wcc
# WCLDEBUG= # release opts for wlink
!endif
# Conventions Watcom
# Tell default paths based on extension
.fl : .
.h : .
#.lib : .
.c : .
.cpp : .
.cxx : .
.obj : $(ODIR)
.exe : $(ODIR)
#
# Tell wmake to use DLL versions of some commands (much quicker)
#
!loaddll wcc386 wccd386
!loaddll wpp386 wppd386
!loaddll wlink wlink
!loaddll wlib wlibd
CCOPTS0=-6r -zq
CCOPTS1=$(WCCDEBUG) -bt=$(TARGET) -fp6 -fpi87 # 1st part of Watcom opts
CCOPTS2=-mf -wce=130 -wx -zq # -j # 2nd part of Watcom opts
CCOPTS3=-fo$(ODIR)\$^&.obj # 3rd part Watcom opts
COPTS=-zm
CPPOPTS=-zmf -zv -fx
LNOPTS=sys $(LINKTARGET) $(WCLDEBUG) op symf,q,m,el,vfr op st=32k # linker options
LIBOPTS= -b -q -p=512 -c # librarian options
LN=wlink # Watcom linker
AS=wasm # Watcom assembler
cc=wcc386 # Watcom C compiler
cpp=wpp386 # Watcom C++ compiler
LIB=wlib # Watcom librarian
#
# Compilation
#
.c.obj: .AUTODEPEND
$(CC) $(SYSDEF) $(DEBUGDEF) $(CCOPTS0) $(CCOPTS1) $(CCOPTS2) $(CCOPTS3) $(COPTS) $[@
.cpp.obj: .AUTODEPEND
$(CPP) $(SYSDEF) $(DEBUGDEF) $(CCOPTS0) $(CCOPTS1) $(CCOPTS2) $(CCOPTS3) $(CPPOPTS) $[@
.cxx.obj: .AUTODEPEND
$(CPP) $(SYSDEF) $(DEBUGDEF) $(CCOPTS0) $(CCOPTS1) $(CCOPTS2) $(CCOPTS3) $(CPPOPTS) $[@
#
# Librarian stage
#
.obj.lib:
$(LIB) $(LIBOPTS) $@ $<
#
# Linking stage. This implicit rule assumes the .exe is created from an object file with the
# same name, plus other object in macro OBJECTS, a number of .libs in macro LIBS etc.
# If the linking fails for some reason, the .lk1 file is not deleted and it can be
# examined.
#
.obj.exe:
@%create $^*.lk1
@%append $^*.lk1 F $(ODIR)/$^&
@for %i in ($(%OBJS)) do @%append $^*.lk1 F $(ODIR)/%i
@for %i in ($(OBJECTS)) do @%append $^*.lk1 F $(ODIR)/%i
@for %i in ($(LIBS)) do @%append $^*.lk1 L %i
@for %i in ($(EXTRA_LIBS)) do @%append $^*.lk1 L %i
@for %i in ($(SYSLIBS)) do @%append $^*.lk1 L %i
$(LN) $(LNOPTS) name $^@ op map=$^* @$^*.lk1
@del $^*.lk1

View File

@ -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 <dirent.h> (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 <sys/stdtypes.h> 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 <dirent.h> (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 <sys/stdtypes.h> 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 $".
*/

View File

@ -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)

View File

@ -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