拓胜科技-MUDOS在Windows下编译.pdf
文本预览下载声明
: vc5 bison
~v22pre11/src
windows .bat .mak copy
vc MUDOS WORKSPACEInsert Project into Workspace…src edit_source.mak
workspace ”source
file””local_options””make_func.tab.c”step1.batmake_func.c
edit_source project
cc.h
#define COMPILER cl
#define OPTIMIZE -G4
#define CFLAGS -DWIN32 -D_ALL_SOURCE -G4
#define OBJDIR obj
1/7
edit_source project setting ”c/c++”-”preprocessor
definitions””DEBUG””custom build””command”
cd E:\work\v22.pre11/src
.\windebug\edit_source -configure
.\windebug\edit_source -options -process grammar.y.pre
-malloc -build_func_spec cl /E -build_efuns
“output””grammar.y”
edit_source.c” fprintf(yyout, #define
UINT32 unsigned long\n);”:
{ //WINDOWS UINT32 unsigned int
2/7
#ifndef WIN32
fprintf(yyout, #define UINT32 unsigned long\n);
#else
;
#endif
}
edit_sourcegrammar.y
dos “bison grammar.y”grammar.c
”project”-”insert project into workspace”Mudos.mak mudos
workspace mudos projectsetting-link-”object/library
module”.lib ”c/c++”-”preprocessor definites””DEBUG”,”MSDOS”
backend.cstatic void call_heart_beat();:
static void call_heart_beat()
{
object_t *ob;
heart_beat_t *curr_hb;
heart_beat_flag = 0;
#ifdef SIGALRM
signal(SIGALRM, sigalrm_handler);
#endif
#ifdef HAS_UALARM
3/7
ualarm(HEARTBEAT_INTERVAL, 0);
#else
# ifdef WIN32
# else
alarm(SYSV_HEARTBEAT_INTERVAL); /* defined in config.h
*/
# edif
#enndif
debug(256, (.));
current_time = get_current_time();
current_interactive = 0;
if ((num_hb_to_do = num_hb_objs))
{
num_hb_calls++;
heart_beat_index = 0;
while (!heart_beat_flag)
{
ob = (curr_hb = heart_beats[heart_beat_index])-ob;
DEBUG_CHECK(!(ob-flags O_HEART_BEAT),
Heartbeat not set in object on heartbeat list!);
DEBU
显示全部