diff --git a/NTMakefile b/NTMakefile index db18e06..f3123aa 100644 --- a/NTMakefile +++ b/NTMakefile @@ -2,7 +2,7 @@ CC = cl LD = link -OBJS = src\core.obj src\draw.obj src\default.obj src\lowlevel.obj src\error.obj src\unicode.obj src\font.obj src\color.obj src\messagebox.obj src\boldfont.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\numberentry.obj src\external\ds.obj src\external\image.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\backend\gdi.obj +OBJS = src\core.obj src\draw.obj src\default.obj src\lowlevel.obj src\error.obj src\unicode.obj src\font.obj src\color.obj src\messagebox.obj src\boldfont.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\numberentry.obj src\external\ds.obj src\external\image.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\question.obj src\backend\gdi.obj OOOBJS = oosrc\base.obj oosrc\widget\button.obj oosrc\widget\frame.obj oosrc\widget\image.obj oosrc\widget\menu.obj oosrc\widget\opengl.obj oosrc\widget\scrollbar.obj oosrc\widget\submenu.obj oosrc\widget\window.obj oosrc\widget\checkbox.obj oosrc\widget\label.obj oosrc\widget\entry.obj oosrc\widget\numberentry.obj CFLAGS = /nologo /DSTBI_NO_SIMD /D_MILSKO /DUSE_GDI /DUSE_STB_IMAGE /Iinclude CXXFLAGS = /nologo /Iinclude diff --git a/WatMakefile b/WatMakefile index d33d007..4eda5bc 100644 --- a/WatMakefile +++ b/WatMakefile @@ -2,15 +2,13 @@ WATCOM = /usr/watcom CC = wcc386 CXX = wpp386 -CFLAGS = -q -d_MILSKO -dUSE_GDI -dUSE_STB_IMAGE -dSTBI_NO_SIMD -i=$(WATCOM)/h/nt -CXXFLAGS = +CFLAGS = -q -d_MILSKO -dUSE_GDI -dUSE_STB_IMAGE -dSTBI_NO_SIMD -i=$(WATCOM)/h/nt -i=include +CXXFLAGS = -q -i=include -i=$(WATCOM)/h/nt -OBJS = src/core.obj src/draw.obj src/default.obj src/lowlevel.obj src/error.obj src/unicode.obj src/font.obj src/color.obj src/messagebox.obj src/boldfont.obj src/widget/button.obj src/widget/frame.obj src/widget/opengl.obj src/widget/window.obj src/widget/menu.obj src/widget/entry.obj src/widget/submenu.obj src/widget/image.obj src/widget/scrollbar.obj src/widget/checkbox.obj src/widget/label.obj src/widget/numberentry.obj src/external/ds.obj src/external/image.obj src/cursor/default.obj src/cursor/cross.obj src/cursor/text.obj src/icon/info.obj src/icon/note.obj src/icon/warning.obj src/icon/error.obj src/icon/news.obj src/icon/question.obj src/backend/gdi.obj +OBJS = src/core.obj src/draw.obj src/default.obj src/lowlevel.obj src/error.obj src/unicode.obj src/font.obj src/color.obj src/messagebox.obj src/boldfont.obj src/widget/button.obj src/widget/frame.obj src/widget/opengl.obj src/widget/window.obj src/widget/menu.obj src/widget/entry.obj src/widget/submenu.obj src/widget/image.obj src/widget/scrollbar.obj src/widget/checkbox.obj src/widget/label.obj src/widget/numberentry.obj src/external/ds.obj src/external/image.obj src/cursor/default.obj src/cursor/cross.obj src/cursor/text.obj src/icon/info.obj src/icon/note.obj src/icon/warning.obj src/icon/error.obj src/icon/news.obj src/icon/question.obj +OOOBJS = oosrc/base.obj oosrc/widget/button.obj oosrc/widget/frame.obj oosrc/widget/image.obj oosrc/widget/menu.obj oosrc/widget/opengl.obj oosrc/widget/scrollbar.obj oosrc/widget/submenu.obj oosrc/widget/window.obj oosrc/widget/checkbox.obj oosrc/widget/label.obj oosrc/widget/entry.obj oosrc/widget/numberentry.obj -.EXTENSIONS: -.EXTENSIONS: .obj .c - -all: src/Mw.dll +all: src/Mw.dll oosrc/MwOO.dll clean: .SYMBOLIC %erase src/core.obj @@ -47,10 +45,44 @@ clean: .SYMBOLIC %erase src/icon/news.obj %erase src/icon/question.obj %erase src/backend/gdi.obj + %erase oosrc/base.obj + %erase oosrc/widget/button.obj + %erase oosrc/widget/frame.obj + %erase oosrc/widget/image.obj + %erase oosrc/widget/menu.obj + %erase oosrc/widget/opengl.obj + %erase oosrc/widget/scrollbar.obj + %erase oosrc/widget/submenu.obj + %erase oosrc/widget/window.obj + %erase oosrc/widget/checkbox.obj + %erase oosrc/widget/label.obj + %erase oosrc/widget/entry.obj + %erase oosrc/widget/numberentry.obj %erase src/Mw.dll %erase src/Mw.lib + %erase oosrc/MwOO.dll + %erase oosrc/MwOO.lib - +oosrc/MwOO.dll: $(OOOBJS) src/Mw.dll + %write MwOO.lnk system nt_dll initinstance terminstance name oosrc/MwOO.dll + %write MwOO.lnk option implib=oosrc/MwOO.lib + %write MwOO.lnk library src/Mw.lib + %write MwOO.lnk library clib3r.lib + %write MwOO.lnk file oosrc/base.obj + %write MwOO.lnk file oosrc/widget/button.obj + %write MwOO.lnk file oosrc/widget/frame.obj + %write MwOO.lnk file oosrc/widget/image.obj + %write MwOO.lnk file oosrc/widget/menu.obj + %write MwOO.lnk file oosrc/widget/opengl.obj + %write MwOO.lnk file oosrc/widget/scrollbar.obj + %write MwOO.lnk file oosrc/widget/submenu.obj + %write MwOO.lnk file oosrc/widget/window.obj + %write MwOO.lnk file oosrc/widget/checkbox.obj + %write MwOO.lnk file oosrc/widget/label.obj + %write MwOO.lnk file oosrc/widget/entry.obj + %write MwOO.lnk file oosrc/widget/numberentry.obj + wlink @MwOO.lnk + %erase MwOO.lnk src/Mw.dll: $(OBJS) %write Mw.lnk system nt_dll initinstance terminstance name src/Mw.dll %write Mw.lnk option implib=src/Mw.lib @@ -92,70 +124,96 @@ src/Mw.dll: $(OBJS) wlink @Mw.lnk %erase Mw.lnk src/core.obj: src/core.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/core.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/core.c src/draw.obj: src/draw.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/draw.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/draw.c src/default.obj: src/default.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/default.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/default.c src/lowlevel.obj: src/lowlevel.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/lowlevel.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/lowlevel.c src/error.obj: src/error.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/error.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/error.c src/unicode.obj: src/unicode.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/unicode.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/unicode.c src/font.obj: src/font.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/font.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/font.c src/color.obj: src/color.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/color.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/color.c src/messagebox.obj: src/messagebox.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/messagebox.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/messagebox.c src/boldfont.obj: src/boldfont.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/boldfont.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/boldfont.c src/widget/button.obj: src/widget/button.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/widget/button.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/widget/button.c src/widget/frame.obj: src/widget/frame.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/widget/frame.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/widget/frame.c src/widget/opengl.obj: src/widget/opengl.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/widget/opengl.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/widget/opengl.c src/widget/window.obj: src/widget/window.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/widget/window.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/widget/window.c src/widget/menu.obj: src/widget/menu.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/widget/menu.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/widget/menu.c src/widget/entry.obj: src/widget/entry.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/widget/entry.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/widget/entry.c src/widget/submenu.obj: src/widget/submenu.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/widget/submenu.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/widget/submenu.c src/widget/image.obj: src/widget/image.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/widget/image.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/widget/image.c src/widget/scrollbar.obj: src/widget/scrollbar.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/widget/scrollbar.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/widget/scrollbar.c src/widget/checkbox.obj: src/widget/checkbox.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/widget/checkbox.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/widget/checkbox.c src/widget/label.obj: src/widget/label.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/widget/label.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/widget/label.c src/widget/numberentry.obj: src/widget/numberentry.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/widget/numberentry.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/widget/numberentry.c src/external/ds.obj: src/external/ds.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/external/ds.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/external/ds.c src/external/image.obj: src/external/image.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/external/image.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/external/image.c src/cursor/default.obj: src/cursor/default.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/cursor/default.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/cursor/default.c src/cursor/cross.obj: src/cursor/cross.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/cursor/cross.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/cursor/cross.c src/cursor/text.obj: src/cursor/text.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/cursor/text.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/cursor/text.c src/icon/info.obj: src/icon/info.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/icon/info.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/icon/info.c src/icon/note.obj: src/icon/note.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/icon/note.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/icon/note.c src/icon/warning.obj: src/icon/warning.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/icon/warning.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/icon/warning.c src/icon/error.obj: src/icon/error.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/icon/error.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/icon/error.c src/icon/news.obj: src/icon/news.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/icon/news.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/icon/news.c src/icon/question.obj: src/icon/question.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/icon/question.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/icon/question.c src/backend/gdi.obj: src/backend/gdi.c - $(CC) $(CFLAGS) -bt=nt -fo=$@ -i=include src/backend/gdi.c + $(CC) $(CFLAGS) -bt=nt -fo=$@ src/backend/gdi.c +oosrc/base.obj: oosrc/base.cc + $(CXX) $(CXXFLAGS) -bt=nt -fo=$@ oosrc/base.cc +oosrc/widget/button.obj: oosrc/widget/button.cc + $(CXX) $(CXXFLAGS) -bt=nt -fo=$@ oosrc/widget/button.cc +oosrc/widget/frame.obj: oosrc/widget/frame.cc + $(CXX) $(CXXFLAGS) -bt=nt -fo=$@ oosrc/widget/frame.cc +oosrc/widget/image.obj: oosrc/widget/image.cc + $(CXX) $(CXXFLAGS) -bt=nt -fo=$@ oosrc/widget/image.cc +oosrc/widget/menu.obj: oosrc/widget/menu.cc + $(CXX) $(CXXFLAGS) -bt=nt -fo=$@ oosrc/widget/menu.cc +oosrc/widget/opengl.obj: oosrc/widget/opengl.cc + $(CXX) $(CXXFLAGS) -bt=nt -fo=$@ oosrc/widget/opengl.cc +oosrc/widget/scrollbar.obj: oosrc/widget/scrollbar.cc + $(CXX) $(CXXFLAGS) -bt=nt -fo=$@ oosrc/widget/scrollbar.cc +oosrc/widget/submenu.obj: oosrc/widget/submenu.cc + $(CXX) $(CXXFLAGS) -bt=nt -fo=$@ oosrc/widget/submenu.cc +oosrc/widget/window.obj: oosrc/widget/window.cc + $(CXX) $(CXXFLAGS) -bt=nt -fo=$@ oosrc/widget/window.cc +oosrc/widget/checkbox.obj: oosrc/widget/checkbox.cc + $(CXX) $(CXXFLAGS) -bt=nt -fo=$@ oosrc/widget/checkbox.cc +oosrc/widget/label.obj: oosrc/widget/label.cc + $(CXX) $(CXXFLAGS) -bt=nt -fo=$@ oosrc/widget/label.cc +oosrc/widget/entry.obj: oosrc/widget/entry.cc + $(CXX) $(CXXFLAGS) -bt=nt -fo=$@ oosrc/widget/entry.cc +oosrc/widget/numberentry.obj: oosrc/widget/numberentry.cc + $(CXX) $(CXXFLAGS) -bt=nt -fo=$@ oosrc/widget/numberentry.cc diff --git a/doc/index.html b/doc/index.html index 6b62679..76ad8fb 100644 --- a/doc/index.html +++ b/doc/index.html @@ -41,6 +41,9 @@
#define MwMB_ICONNEWS 0x5
+
+ #define MwMB_ICONERROR 0x6 +
#define MwMB_BUTTONMASK 0xf0
@@ -143,6 +146,9 @@
MwForceRender
+
+ MwForceRender2 +
Mw/Cursor.h
@@ -248,6 +254,9 @@
Mw/Icon.h
+
+ MwIconError[] +
MwIconInfo[]
@@ -528,6 +537,13 @@
+
#define MwMB_ICONERROR 0x6
+
+
+ Error icon. +
+
+
#define MwMB_BUTTONMASK 0xf0
@@ -641,7 +657,7 @@

-
#define MwDispatch3(x, y, name)
+
#define MwDispatch3(x, y, z)
Dispatches the handler of widget class. @@ -662,10 +678,10 @@ Handler name.
- Parameter name + Parameter z
- Property name. + Argument.

@@ -1323,6 +1339,28 @@
+
MWDECL void MwForceRender2 (
+	MwWidget handle,
+	void* ptr
+);
+
+
+ Forcefully makes widget render. +
+
+ Parameter handle +
+
+ Widget. +
+
+ Parameter ptr +
+
+ Ignored. +
+
+

Mw/Cursor.h

@@ -1968,6 +2006,13 @@

+
MWDECL char* MwIconError[];
+
+
+ Error icon. +
+
+
MWDECL char* MwIconInfo[];
diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 5c2191c..0af1415 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -37,7 +37,7 @@ typedef void* MwLLPixmap; #define MwLLDispatch(x, y, z) \ if(x->handler != NULL && x->handler->y != NULL) x->handler->y(x, z) -enum MwLLKey { +enum MwLLKeyEnum { MwLLKeyBackSpace = (1 << 31) | 1, MwLLKeyLeft, MwLLKeyRight, @@ -45,10 +45,10 @@ enum MwLLKey { MwLLKeyDown }; -enum MwLLMouse { +enum MwLLMouseEnum { MwLLMouseLeft = 1, MwLLMouseMiddle = 2, - MwLLMouseRight = 3, + MwLLMouseRight = 3 }; struct _MwLLMouse { diff --git a/include/MwOO/Base.h b/include/MwOO/Base.h index bebc6cf..5cb9c72 100644 --- a/include/MwOO/Base.h +++ b/include/MwOO/Base.h @@ -38,6 +38,8 @@ class Base { virtual void OnMouseDownHandler(void*) {}; virtual void OnMouseUpHandler(void*) {}; virtual void OnChangedHandler(void*) {}; + virtual void OnKeyHandler(void*) {}; + virtual void OnKeyReleasedHandler(void*) {}; /* END AUTOGENERATE */ diff --git a/oosrc/base.cc b/oosrc/base.cc index 040562d..cb35bf6 100644 --- a/oosrc/base.cc +++ b/oosrc/base.cc @@ -96,6 +96,14 @@ static void __OnChangedHandler(MwWidget widget, void* user, void* call){ MwOO::Base* c = (MwOO::Base*)user; c->OnChangedHandler(call); } +static void __OnKeyHandler(MwWidget widget, void* user, void* call){ + MwOO::Base* c = (MwOO::Base*)user; + c->OnKeyHandler(call); +} +static void __OnKeyReleasedHandler(MwWidget widget, void* user, void* call){ + MwOO::Base* c = (MwOO::Base*)user; + c->OnKeyReleasedHandler(call); +} void MwOO::Base::SetHandler(void){ MwAddUserHandler(this->widget, MwNactivateHandler, __OnActivate, this); @@ -105,5 +113,7 @@ void MwOO::Base::SetHandler(void){ MwAddUserHandler(this->widget, MwNmouseDownHandler, __OnMouseDownHandler, this); MwAddUserHandler(this->widget, MwNmouseUpHandler, __OnMouseUpHandler, this); MwAddUserHandler(this->widget, MwNchangedHandler, __OnChangedHandler, this); + MwAddUserHandler(this->widget, MwNkeyHandler, __OnKeyHandler, this); + MwAddUserHandler(this->widget, MwNkeyReleasedHandler, __OnKeyReleasedHandler, this); } /* END AUTOGENERATE */ diff --git a/resource/icon/error.png b/resource/icon/error.png index e9c3a7d..9f58caa 100644 Binary files a/resource/icon/error.png and b/resource/icon/error.png differ diff --git a/resource/icon/info.png b/resource/icon/info.png index 278da5a..553ea1a 100644 Binary files a/resource/icon/info.png and b/resource/icon/info.png differ diff --git a/resource/icon/news.png b/resource/icon/news.png index 11ecbc3..d27e50e 100644 Binary files a/resource/icon/news.png and b/resource/icon/news.png differ diff --git a/resource/icon/note.png b/resource/icon/note.png index 47c1f9b..95d22cd 100644 Binary files a/resource/icon/note.png and b/resource/icon/note.png differ diff --git a/resource/icon/question.png b/resource/icon/question.png index 57adc03..e63cb6d 100644 Binary files a/resource/icon/question.png and b/resource/icon/question.png differ diff --git a/resource/icon/warning.png b/resource/icon/warning.png index 382c213..d8efe43 100644 Binary files a/resource/icon/warning.png and b/resource/icon/warning.png differ diff --git a/tools/genwat.pl b/tools/genwat.pl index 8978e04..90a21d3 100755 --- a/tools/genwat.pl +++ b/tools/genwat.pl @@ -1,14 +1,16 @@ #!/usr/bin/env perl # $Id$ -our @sources = (); +our @sources = (); +our @c_sources = (); +our @cxx_sources = (); sub scan { opendir(DIR, $_[0]); my @files = readdir(DIR); foreach my $f (@files) { if (!($f =~ /^vulkan\.cc?$/) && ($f =~ /\.cc?$/)) { - push(@sources, $_[0] . "/" . $f); + push(@sources, $_[0] . "/" . $f); $f =~ s/\.cc?$/.obj/g; my $p = $_[0] . "/" . $f; print(OUT " $p"); @@ -22,8 +24,10 @@ print(OUT "# \$Id\$\n"); print(OUT "WATCOM = /usr/watcom\n"); print(OUT "CC = wcc386\n"); print(OUT "CXX = wpp386\n"); -print(OUT "CFLAGS = -q -d_MILSKO -dUSE_GDI -dUSE_STB_IMAGE -dSTBI_NO_SIMD -i=\$(WATCOM)/h/nt\n"); -print(OUT "CXXFLAGS =\n"); +print(OUT +"CFLAGS = -q -d_MILSKO -dUSE_GDI -dUSE_STB_IMAGE -dSTBI_NO_SIMD -i=\$(WATCOM)/h/nt -i=include\n" +); +print(OUT "CXXFLAGS = -q -i=include -i=\$(WATCOM)/h/nt\n"); print(OUT "\n"); print(OUT "OBJS ="); scan("src"); @@ -32,39 +36,76 @@ scan("src/external"); scan("src/cursor"); scan("src/icon"); push(@sources, "src/backend/gdi.c"); -print(OUT " src/backend/gdi.obj\n"); +@c_sources = @sources; +@sources = (); print(OUT "\n"); -print(OUT ".EXTENSIONS:\n"); -print(OUT ".EXTENSIONS: .obj .c\n"); +print(OUT "OOOBJS ="); +scan("oosrc"); +scan("oosrc/widget"); +@cxx_sources = @sources; +@sources = (); print(OUT "\n"); -print(OUT "all: src/Mw.dll\n"); +print(OUT "\n"); +print(OUT "all: src/Mw.dll oosrc/MwOO.dll\n"); print(OUT "\n"); print(OUT "clean: .SYMBOLIC\n"); -foreach my $l (@sources){ - my $obj = $l; - $obj =~ s/\.cc?/.obj/g; - print(OUT " %erase $obj\n"); + +foreach my $l (@c_sources) { + my $obj = $l; + $obj =~ s/\.cc?/.obj/g; + print(OUT " %erase $obj\n"); +} +foreach my $l (@cxx_sources) { + my $obj = $l; + $obj =~ s/\.cc?/.obj/g; + print(OUT " %erase $obj\n"); } print(OUT " %erase src/Mw.dll\n"); print(OUT " %erase src/Mw.lib\n"); +print(OUT " %erase oosrc/MwOO.dll\n"); +print(OUT " %erase oosrc/MwOO.lib\n"); print(OUT "\n"); +print(OUT "oosrc/MwOO.dll: \$(OOOBJS) src/Mw.dll\n"); +print(OUT +" %write MwOO.lnk system nt_dll initinstance terminstance name oosrc/MwOO.dll\n" +); +print(OUT " %write MwOO.lnk option implib=oosrc/MwOO.lib\n"); +print(OUT " %write MwOO.lnk library src/Mw.lib\n"); +print(OUT " %write MwOO.lnk library clib3r.lib\n"); + +foreach my $l (@cxx_sources) { + my $obj = $l; + $obj =~ s/\.cc?/.obj/g; + print(OUT " %write MwOO.lnk file $obj\n"); +} +print(OUT " wlink \@MwOO.lnk\n"); +print(OUT " %erase MwOO.lnk"); print(OUT "\n"); print(OUT "src/Mw.dll: \$(OBJS)\n"); -print(OUT " %write Mw.lnk system nt_dll initinstance terminstance name src/Mw.dll\n"); +print(OUT + " %write Mw.lnk system nt_dll initinstance terminstance name src/Mw.dll\n" +); print(OUT " %write Mw.lnk option implib=src/Mw.lib\n"); print(OUT " %write Mw.lnk library clib3r.lib\n"); -foreach my $l (@sources){ - my $obj = $l; - $obj =~ s/\.cc?/.obj/g; - print(OUT " %write Mw.lnk file $obj\n"); + +foreach my $l (@c_sources) { + my $obj = $l; + $obj =~ s/\.cc?/.obj/g; + print(OUT " %write Mw.lnk file $obj\n"); } print(OUT " wlink \@Mw.lnk\n"); print(OUT " %erase Mw.lnk"); print(OUT "\n"); -foreach my $l (@sources){ - my $obj = $l; - $obj =~ s/\.cc?/.obj/g; - print(OUT "$obj: $l\n"); - print(OUT " \$(CC) \$(CFLAGS) -bt=nt -fo=\$@ -i=include $l\n"); +foreach my $l (@c_sources) { + my $obj = $l; + $obj =~ s/\.cc?/.obj/g; + print(OUT "$obj: $l\n"); + print(OUT " \$(CC) \$(CFLAGS) -bt=nt -fo=\$@ $l\n"); +} +foreach my $l (@cxx_sources) { + my $obj = $l; + $obj =~ s/\.cc?/.obj/g; + print(OUT "$obj: $l\n"); + print(OUT " \$(CXX) \$(CXXFLAGS) -bt=nt -fo=\$@ $l\n"); } close(OUT); diff --git a/tools/update.sh b/tools/update.sh index cd67a7d..2c28a8e 100755 --- a/tools/update.sh +++ b/tools/update.sh @@ -8,4 +8,5 @@ fi ./tools/icon.sh ./tools/genoo.pl ./tools/genmsvc.pl +./tools/genwat.pl $MAKE format