diff --git a/NTMakefile b/NTMakefile index db18e06d4..f3123aafc 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 d33d007af..4eda5bc0f 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 6b62679cb..76ad8fbec 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 5c2191c02..0af1415da 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 bebc6cfec..5cb9c727a 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 040562dd0..cb35bf666 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 e9c3a7d47..9f58caaeb 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 278da5af6..553ea1a1f 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 11ecbc3fd..d27e50e7a 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 47c1f9b7e..95d22cda5 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 57adc0358..e63cb6d1b 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 382c21337..d8efe4375 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 8978e0465..90a21d3e0 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 cd67a7de1..2c28a8e62 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