nanogui: Building Microwindows under DOS with DJGPP.
Subject:
RE: Building Microwindows under DOS with DJGPP.
From:
Simon Wood ####@####.####
Date:
22 Mar 2001 16:08:49 -0000
Message-Id: <44632C76B97BD211AF6B00805FADCAB20879056F@exchange.saltaire.pace.co.uk>
Partial success, but now I'm really confussed.....
For reference I'm using DJGPP v203 under Windows 95.
1) Turned out to be easy, patched include/drivers to be
#if UNIX
#include <sys/time.h>
#endif
#if MSDOS
#include <time.h>
#endif
typedef void (*MWTIMERCB)(void *);
typedef struct mw_timer MWTIMER;
struct mw_timer {
struct timeval timeout;
MWTIMERCB callback;
void *arg;
MWTIMER *next;
MWTIMER *prev;
};
MWTIMER *GdAddTimer(MWTIMEOUT timeout, MWTIMERCB callback, void *arg);
void GdDestroyTimer(MWTIMER *timer);
MWTIMER *GdFindTimer(void *arg);
MWBOOL GdGetNextTimeout(struct timeval *tv, MWTIMEOUT timeout);
MWBOOL GdTimeout(void);
/* error.c*/
2). Seems to be a problem with DJGPP itself (though I'm sure that someone will falme me to tell me I'm wrong).
In the linking process DJGPP runs:
c:/djgpp/lib/gcc-lib/djgpp/2.952/collect2.exe -o mdemo c:/djgpp/lib/crt0.o -Lc:/soft/dev/microwin/src/lib -Lc:/djgpp/lib -Lc:/djgpp/lib/gcc-lib/djgpp/2.952 -Lc:/djgpp/bin -Lc:/djgpp/lib -lgrx20 mdemo.o c:/soft/dev/microwin/src/lib/libmwin.a c:/soft/dev/microwin/src/lib/libmwinlib.a c:/soft/dev/microwin/src/lib/libmwengine.a c:/soft/dev/microwin/src/lib/libmwdrivers.a c:/soft/dev/microwin/src/lib/libmwfonts.a c:/soft/dev/microwin/src/lib/libmwimages.a -lgrx20 -lgcc -lc -lgcc -Tdjgpp.djl c:/soft/dev/microwin/src/lib/libmwinlib.a
and gives:
(edit.o)(.text+0x6f6):edit.c: undefined reference to `CreateFont'
'CreateFont' is in winfont.o, which is in libmwin.a.
bash-2.04$ ar -t libmwin.a
winmain.o
winuser.o
wingdi.o
winexpos.o
winclip.o
winevent.o
windefw.o
winrgn.o
winfont.o
winsbar.o
If I suffix the (long) command with 'c:/soft/dev/microwin/src/mwin/winfont.o' (to specify another object to add) then it builds and runs.... very strange!!
Anybody have any friends in DJGPP circles who can explain this one away??
Simon Wood