diff options
| author | Michael R Sweet <michael.r.sweet@gmail.com> | 2004-11-23 18:48:10 +0000 |
|---|---|---|
| committer | Michael R Sweet <michael.r.sweet@gmail.com> | 2004-11-23 18:48:10 +0000 |
| commit | 85c0090b7c62ad4bc0bc3d0b7c2fcd7460dad2ba (patch) | |
| tree | 6754358473812c3c9f288e517fa47cb3e6cb8ae3 /watcom.mif | |
| parent | 7ca20dcd4a1aab740635a9e5150f051a98ca8c0d (diff) | |
More watcom fixes (STR #627)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@3915 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'watcom.mif')
| -rw-r--r-- | watcom.mif | 559 |
1 files changed, 279 insertions, 280 deletions
diff --git a/watcom.mif b/watcom.mif index 3ba3fa6af..2a316a86c 100644 --- a/watcom.mif +++ b/watcom.mif @@ -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 |
