diff --git a/NTMakefile b/NTMakefile index db18e06d..f3123aaf 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 d33d007a..4eda5bc0 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 6b62679c..76ad8fbe 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 5c2191c0..0af1415d 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 bebc6cfe..5cb9c727 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 040562dd..cb35bf66 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 e9c3a7d4..9f58caae 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 278da5af..553ea1a1 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 11ecbc3f..d27e50e7 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 47c1f9b7..95d22cda 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 57adc035..e63cb6d1 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 382c2133..d8efe437 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 8978e046..90a21d3e 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 cd67a7de..2c28a8e6 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