fix watcom
This commit is contained in:
parent
dfa8c22f1a
commit
9bdd80b421
4 changed files with 55 additions and 8 deletions
16
WatMakefile
generated
16
WatMakefile
generated
|
|
@ -1,13 +1,13 @@
|
||||||
CC = wcc386 -bt=nt -q
|
CC = wcc386 -bt=nt -q -fr
|
||||||
LD = wlink option quiet
|
LD = wlink option quiet
|
||||||
|
|
||||||
MW_CFLAGS = -bd -i=include -i=external/libz/include -d_MILSKO -d_MILSKO_BUILD -dUSE_GDI -dUSE_STB_IMAGE -dSTBI_NO_SIMD -dUSE_GDI_TEXT -dMW_OPENGL
|
MW_CFLAGS = -bd -i=include -i=external/libz/include -d_MILSKO -d_MILSKO_BUILD -dUSE_GDI -dUSE_STB_IMAGE -dSTBI_NO_SIMD -dUSE_GDI_TEXT -dMW_OPENGL -dMW_DIRECT3D9
|
||||||
MW_LDFLAGS = system nt_dll
|
MW_LDFLAGS = system nt_dll
|
||||||
EXE_CFLAGS = -i=include
|
EXE_CFLAGS = -i=include
|
||||||
EXE_LDFLAGS = system nt
|
EXE_LDFLAGS = system nt
|
||||||
all: src/Mw.dll examples/basic/box.exe examples/basic/calculator.exe examples/basic/checkbox.exe examples/basic/clipboard.exe examples/basic/colorpicker.exe examples/basic/combobox.exe examples/basic/dnd.exe examples/basic/document.exe examples/basic/example.exe examples/basic/filechooser.exe examples/basic/image.exe examples/basic/listbox.exe examples/basic/messagebox.exe examples/basic/periodic.exe examples/basic/progressbar.exe examples/basic/radiobox.exe examples/basic/rotate.exe examples/basic/scrollbar.exe examples/basic/sevensegment.exe examples/basic/subwindow.exe examples/basic/tab.exe examples/basic/treeview.exe examples/basic/viewport.exe examples/gldemos/boing.exe examples/gldemos/clock.exe examples/gldemos/cube.exe examples/gldemos/gears.exe examples/gldemos/triangle.exe examples/gldemos/tripaint.exe
|
all: src/Mw.dll examples/basic/box.exe examples/basic/calculator.exe examples/basic/checkbox.exe examples/basic/clipboard.exe examples/basic/colorpicker.exe examples/basic/combobox.exe examples/basic/dnd.exe examples/basic/document.exe examples/basic/example.exe examples/basic/filechooser.exe examples/basic/image.exe examples/basic/listbox.exe examples/basic/messagebox.exe examples/basic/periodic.exe examples/basic/progressbar.exe examples/basic/radiobox.exe examples/basic/rotate.exe examples/basic/scrollbar.exe examples/basic/sevensegment.exe examples/basic/subwindow.exe examples/basic/tab.exe examples/basic/treeview.exe examples/basic/viewport.exe examples/dxdemos/direct3d9.exe examples/gldemos/boing.exe examples/gldemos/clock.exe examples/gldemos/cube.exe examples/gldemos/gears.exe examples/gldemos/triangle.exe examples/gldemos/tripaint.exe
|
||||||
lib: src/Mw.dll
|
lib: src/Mw.dll
|
||||||
examples: examples/basic/box.exe examples/basic/calculator.exe examples/basic/checkbox.exe examples/basic/clipboard.exe examples/basic/colorpicker.exe examples/basic/combobox.exe examples/basic/dnd.exe examples/basic/document.exe examples/basic/example.exe examples/basic/filechooser.exe examples/basic/image.exe examples/basic/listbox.exe examples/basic/messagebox.exe examples/basic/periodic.exe examples/basic/progressbar.exe examples/basic/radiobox.exe examples/basic/rotate.exe examples/basic/scrollbar.exe examples/basic/sevensegment.exe examples/basic/subwindow.exe examples/basic/tab.exe examples/basic/treeview.exe examples/basic/viewport.exe examples/gldemos/boing.exe examples/gldemos/clock.exe examples/gldemos/cube.exe examples/gldemos/gears.exe examples/gldemos/triangle.exe examples/gldemos/tripaint.exe
|
examples: examples/basic/box.exe examples/basic/calculator.exe examples/basic/checkbox.exe examples/basic/clipboard.exe examples/basic/colorpicker.exe examples/basic/combobox.exe examples/basic/dnd.exe examples/basic/document.exe examples/basic/example.exe examples/basic/filechooser.exe examples/basic/image.exe examples/basic/listbox.exe examples/basic/messagebox.exe examples/basic/periodic.exe examples/basic/progressbar.exe examples/basic/radiobox.exe examples/basic/rotate.exe examples/basic/scrollbar.exe examples/basic/sevensegment.exe examples/basic/subwindow.exe examples/basic/tab.exe examples/basic/treeview.exe examples/basic/viewport.exe examples/dxdemos/direct3d9.exe examples/gldemos/boing.exe examples/gldemos/clock.exe examples/gldemos/cube.exe examples/gldemos/gears.exe examples/gldemos/triangle.exe examples/gldemos/tripaint.exe
|
||||||
clean: .SYMBOLIC
|
clean: .SYMBOLIC
|
||||||
%erase external/libz/src/adler32.obj
|
%erase external/libz/src/adler32.obj
|
||||||
%erase external/libz/src/compress.obj
|
%erase external/libz/src/compress.obj
|
||||||
|
|
@ -131,6 +131,7 @@ clean: .SYMBOLIC
|
||||||
%erase examples/basic/tab.obj
|
%erase examples/basic/tab.obj
|
||||||
%erase examples/basic/treeview.obj
|
%erase examples/basic/treeview.obj
|
||||||
%erase examples/basic/viewport.obj
|
%erase examples/basic/viewport.obj
|
||||||
|
%erase examples/dxdemos/direct3d9.obj
|
||||||
%erase examples/gldemos/boing.obj
|
%erase examples/gldemos/boing.obj
|
||||||
%erase examples/gldemos/clock.obj
|
%erase examples/gldemos/clock.obj
|
||||||
%erase examples/gldemos/cube.obj
|
%erase examples/gldemos/cube.obj
|
||||||
|
|
@ -160,6 +161,7 @@ clean: .SYMBOLIC
|
||||||
%erase examples/basic/tab.exe
|
%erase examples/basic/tab.exe
|
||||||
%erase examples/basic/treeview.exe
|
%erase examples/basic/treeview.exe
|
||||||
%erase examples/basic/viewport.exe
|
%erase examples/basic/viewport.exe
|
||||||
|
%erase examples/dxdemos/direct3d9.exe
|
||||||
%erase examples/gldemos/boing.exe
|
%erase examples/gldemos/boing.exe
|
||||||
%erase examples/gldemos/clock.exe
|
%erase examples/gldemos/clock.exe
|
||||||
%erase examples/gldemos/cube.exe
|
%erase examples/gldemos/cube.exe
|
||||||
|
|
@ -305,6 +307,12 @@ examples/basic/viewport.exe: examples/basic/viewport.obj src/Mw.dll
|
||||||
examples/basic/viewport.obj: examples/basic/viewport.c
|
examples/basic/viewport.obj: examples/basic/viewport.c
|
||||||
$(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/viewport.c
|
$(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/viewport.c
|
||||||
|
|
||||||
|
examples/dxdemos/direct3d9.exe: examples/dxdemos/direct3d9.obj src/Mw.dll
|
||||||
|
$(LD) $(EXE_LDFLAGS) name $@ file examples/dxdemos/direct3d9.obj library clib3r.lib library src/Mw.lib
|
||||||
|
|
||||||
|
examples/dxdemos/direct3d9.obj: examples/dxdemos/direct3d9.c
|
||||||
|
$(CC) $(EXE_CFLAGS) -fo=$@ examples/dxdemos/direct3d9.c
|
||||||
|
|
||||||
examples/gldemos/boing.exe: examples/gldemos/boing.obj src/Mw.dll
|
examples/gldemos/boing.exe: examples/gldemos/boing.obj src/Mw.dll
|
||||||
$(LD) $(EXE_LDFLAGS) name $@ file examples/gldemos/boing.obj library clib3r.lib library src/Mw.lib library opengl32.lib library glu32.lib
|
$(LD) $(EXE_LDFLAGS) name $@ file examples/gldemos/boing.obj library clib3r.lib library src/Mw.lib library opengl32.lib library glu32.lib
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,9 @@
|
||||||
#error D3D9 widget only avaliable for Win32 backends
|
#error D3D9 widget only avaliable for Win32 backends
|
||||||
#undef MW_DIRECT3D9
|
#undef MW_DIRECT3D9
|
||||||
#else
|
#else
|
||||||
|
#ifdef __WATCOMC__
|
||||||
|
#include <windows.h>
|
||||||
|
#endif
|
||||||
#include <d3d9.h>
|
#include <d3d9.h>
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -4,13 +4,17 @@
|
||||||
#include <Mw/Widget/Direct3D9.h>
|
#include <Mw/Widget/Direct3D9.h>
|
||||||
typedef struct gdid3d9 {
|
typedef struct gdid3d9 {
|
||||||
void* d3d9dll;
|
void* d3d9dll;
|
||||||
IDirect3D9* (*Direct3DCreate9)(UINT sdk_version);
|
IDirect3D9*(D3DAPI* Direct3DCreate9)(UINT sdk_version);
|
||||||
|
|
||||||
LPDIRECT3D9 d3d; // the pointer to our Direct3D interface
|
LPDIRECT3D9 d3d; // the pointer to our Direct3D interface
|
||||||
LPDIRECT3DDEVICE9 d3ddev; // the pointer to the device class
|
LPDIRECT3DDEVICE9 d3ddev; // the pointer to the device class
|
||||||
|
|
||||||
} gdid3d9_t;
|
} gdid3d9_t;
|
||||||
|
|
||||||
|
#ifndef D3D_SDK_VERSION
|
||||||
|
#define D3D_SDK_VERSION 32
|
||||||
|
#endif
|
||||||
|
|
||||||
static int wcreate_d3d9(MwWidget handle) {
|
static int wcreate_d3d9(MwWidget handle) {
|
||||||
gdid3d9_t* o = malloc(sizeof(gdid3d9_t));
|
gdid3d9_t* o = malloc(sizeof(gdid3d9_t));
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,17 @@ DX9_FLAGS =
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub skip_d3d9 {
|
||||||
|
my $f = $_[0];
|
||||||
|
my $type = $_[1];
|
||||||
|
|
||||||
|
if (($f =~ /\/dxdemos\//) and not($type eq "Watcom")) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
sub generate {
|
sub generate {
|
||||||
my ($output, $type) = @_;
|
my ($output, $type) = @_;
|
||||||
|
|
||||||
|
|
@ -112,7 +123,7 @@ sub generate {
|
||||||
$d3d9_block = d3d9_detect_block();
|
$d3d9_block = d3d9_detect_block();
|
||||||
}
|
}
|
||||||
elsif ($type eq "Watcom") {
|
elsif ($type eq "Watcom") {
|
||||||
$cc = "wcc386 -bt=nt -q";
|
$cc = "wcc386 -bt=nt -q -fr";
|
||||||
$link = "wlink option quiet";
|
$link = "wlink option quiet";
|
||||||
$out = "-fo=";
|
$out = "-fo=";
|
||||||
$dllout = "name ";
|
$dllout = "name ";
|
||||||
|
|
@ -131,6 +142,8 @@ sub generate {
|
||||||
$prefobj = "file ";
|
$prefobj = "file ";
|
||||||
$needlibs = "${lib}clib3r.lib";
|
$needlibs = "${lib}clib3r.lib";
|
||||||
$c_dllout = "option implib=src${dir}Mw.lib";
|
$c_dllout = "option implib=src${dir}Mw.lib";
|
||||||
|
|
||||||
|
$d3d9_flags = "${def}MW_DIRECT3D9";
|
||||||
}
|
}
|
||||||
|
|
||||||
open(OUT, ">", $output);
|
open(OUT, ">", $output);
|
||||||
|
|
@ -154,6 +167,9 @@ sub generate {
|
||||||
}
|
}
|
||||||
print(OUT "all: src${dir}Mw.dll");
|
print(OUT "all: src${dir}Mw.dll");
|
||||||
foreach my $f (@examples) {
|
foreach my $f (@examples) {
|
||||||
|
if (skip_d3d9($f, $type)) {
|
||||||
|
next;
|
||||||
|
}
|
||||||
$b = $f;
|
$b = $f;
|
||||||
$b =~ s/\.c$/.exe/;
|
$b =~ s/\.c$/.exe/;
|
||||||
$b =~ s/\//$dir/g;
|
$b =~ s/\//$dir/g;
|
||||||
|
|
@ -163,6 +179,9 @@ sub generate {
|
||||||
print(OUT "lib: src${dir}Mw.dll\n");
|
print(OUT "lib: src${dir}Mw.dll\n");
|
||||||
print(OUT "examples:");
|
print(OUT "examples:");
|
||||||
foreach my $f (@examples) {
|
foreach my $f (@examples) {
|
||||||
|
if (skip_d3d9($f, $type)) {
|
||||||
|
next;
|
||||||
|
}
|
||||||
$b = $f;
|
$b = $f;
|
||||||
$b =~ s/\.c$/.exe/;
|
$b =~ s/\.c$/.exe/;
|
||||||
$b =~ s/\//$dir/g;
|
$b =~ s/\//$dir/g;
|
||||||
|
|
@ -171,6 +190,9 @@ sub generate {
|
||||||
print(OUT "\n");
|
print(OUT "\n");
|
||||||
print(OUT "clean: $symbolic\n");
|
print(OUT "clean: $symbolic\n");
|
||||||
foreach my $f (@cfiles) {
|
foreach my $f (@cfiles) {
|
||||||
|
if (skip_d3d9($f, $type)) {
|
||||||
|
next;
|
||||||
|
}
|
||||||
my $b = $f;
|
my $b = $f;
|
||||||
$b =~ s/\.c$/.obj/;
|
$b =~ s/\.c$/.obj/;
|
||||||
$b =~ s/\//$dir/g;
|
$b =~ s/\//$dir/g;
|
||||||
|
|
@ -182,12 +204,18 @@ sub generate {
|
||||||
print(OUT " $del d3d9flags.mk\n");
|
print(OUT " $del d3d9flags.mk\n");
|
||||||
}
|
}
|
||||||
foreach my $f (@examples) {
|
foreach my $f (@examples) {
|
||||||
|
if (skip_d3d9($f, $type)) {
|
||||||
|
next;
|
||||||
|
}
|
||||||
my $b = $f;
|
my $b = $f;
|
||||||
$b =~ s/\.c$/.obj/;
|
$b =~ s/\.c$/.obj/;
|
||||||
$b =~ s/\//$dir/g;
|
$b =~ s/\//$dir/g;
|
||||||
print(OUT " $del $b\n");
|
print(OUT " $del $b\n");
|
||||||
}
|
}
|
||||||
foreach my $f (@examples) {
|
foreach my $f (@examples) {
|
||||||
|
if (skip_d3d9($f, $type)) {
|
||||||
|
next;
|
||||||
|
}
|
||||||
$b = $f;
|
$b = $f;
|
||||||
$b =~ s/\.c$/.exe/;
|
$b =~ s/\.c$/.exe/;
|
||||||
$b =~ s/\//$dir/g;
|
$b =~ s/\//$dir/g;
|
||||||
|
|
@ -195,6 +223,9 @@ sub generate {
|
||||||
}
|
}
|
||||||
print(OUT "\n");
|
print(OUT "\n");
|
||||||
foreach my $f (@examples) {
|
foreach my $f (@examples) {
|
||||||
|
if (skip_d3d9($f, $type)) {
|
||||||
|
next;
|
||||||
|
}
|
||||||
my $b = $f;
|
my $b = $f;
|
||||||
$b =~ s/\.c$/.exe/;
|
$b =~ s/\.c$/.exe/;
|
||||||
$b =~ s/\//$dir/g;
|
$b =~ s/\//$dir/g;
|
||||||
|
|
@ -256,6 +287,7 @@ push(@cfiles, "src/backend/gdi.c");
|
||||||
|
|
||||||
scan_examples("examples/basic");
|
scan_examples("examples/basic");
|
||||||
scan_examples("examples/gldemos");
|
scan_examples("examples/gldemos");
|
||||||
|
scan_examples("examples/dxdemos");
|
||||||
|
|
||||||
@examples = sort(@examples);
|
@examples = sort(@examples);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue