Date: 14-NOV-1994 10:59:29 +0100 From: TAUPIN AT rsovax DOT lps DOT u-psud DOT fr Subj: Compiling MicroEmacs To: djgpp AT sun DOT soe DOT clarkson DOT edu Reply to: Stephen Turnbull > Date: 10-NOV-1994 10:36:27 +0100 > From: TAUPIN AT rsovax DOT lps DOT u-psud DOT fr > Subj: Compiling MIcroEmacs > > Subject: compiling MicroEmacs. > > PLEEEAAASE ! Do not send me advices you have not tested, 99.999% > of them fail. > >If the precision of the above statistic is justified, you have >received 100,000 pieces of advice. You would be doing us all a favor >if you list them up and explain how they failed. > If I modify estruct.h with #define UNIX 1 /* a random UNIX compiler (instead of 0)*/ #define TURBO 0 /* Turbo C/MSDOS (instead of 1) */ Then "gcc -c msdos.c" gives the following diags (hand written due to lack of > piping with gcc): msdos.c: In function `doschar': msdos.c:279: `rg' undeclared (first use this function) ... msdos.c: In function `typeahead': msdos.c:279: `rg' undeclared (first use this function) ... msdos.c: In function `shellprog': msdos.c:279: storage size of `regs' is not known msdos.c: In function `execprog': msdos.c:279: storage size of `regs' is not known msdos.c:279: storage size of `segreg' is not known ... On the other hand, if I keep "#define TURBO 1" and "#define UNIX 0" and try to compile the "msdos.c" (the hardest) routine, then I have to comment out some lines in "eproto.h", namely: /* extern int setkey(KEYTAB *key, short type, char *name); */ /* char *strcat(char *, char *); */ /* char *strcpy(char *, char *); */ /* char *malloc(int); */ but, in fine, I get the diagnostic: msdos.c:898 `_doserrno' undeclared (first use this function) and the source was: #if (TURBO | MSC | DTL) && (NOVELL == 0) intdosx(®s, ®s, &segreg); if (regs.x.cflag == 0) { regs.h.ah = 0x4d; /* get child process return code */ intdos(®s, ®s); /* go do it */ rval = regs.x.ax; /* save child's return code */ } else rval = -_doserrno; /* failed child call */ #endif ---> a solution or a bypass? Thanks D. Taupin