diff --git a/moo/lib/icc.mak b/moo/lib/icc.mak index 53a4e5a..a9eff4c 100644 --- a/moo/lib/icc.mak +++ b/moo/lib/icc.mak @@ -6,10 +6,11 @@ # /zfloatsync - FPU is operand-synchronized with the CPU # /m create map file # /g produce debug info -CFLAGS := /D__DOS__ /DMOO_ENABLE_STATIC_MODULE /DNDEBUG +###CFLAGS := /D__DOS__ /DMOO_ENABLE_STATIC_MODULE /DNDEBUG +CFLAGS := /D__DOS__ /DMOO_ENABLE_STATIC_MODULE /DMOO_BUILD_DEBUG LDFLAGS := /xnovm /xregion=12m -SRCS := \ +LIBSRCS := \ bigint.c \ comp.c \ debug.c \ @@ -22,29 +23,53 @@ SRCS := \ logfmt.c \ moo.c \ obj.c \ - opt.c \ pf.c \ rbt.c \ std.c \ sym.c \ utf16.c \ utf8.c \ - utl.c \ - main.c \ + utl.c -OBJS := $(SRCS:.c=.obj) +EXESRCS := \ + opt.c \ + main.c +LIBOBJS := $(LIBSRCS:.c=.obj) +EXEOBJS := $(EXESRCS:.c=.obj) + +LIBFILE=moo.lib EXEFILE=moo.exe MODFILE=..\mod\moomod.lib -RSPFILE := $(EXEFILE,B,S/.*/&.RSP/) +LIBRSPFILE := $(LIBFILE,B,S/.*/&.RSP/) +EXERSPFILE := $(EXEFILE,B,S/.*/&.RSP/) +all: lib exe -all: $(OBJS) hlt.obj - echo $(OBJS) > $(RSPFILE) - echo hlt.obj >> $(RSPFILE) - echo $(MODFILE) >> $(RSPFILE) - echo $(LDFLAGS) >> $(RSPFILE) - $(CC) @$(RSPFILE) /e $(EXEFILE) +# hlt.obj should be included into the library +# but for an unknown reason, the linker was not able to +# find the _halt_cpu symbol when halt.obj was added to +# the library. i suspect 386asm not producing a fully +# compatiable object file. + +exe: hlt.obj $(EXEOBJS) + echo $(EXEOBJS) > $(EXERSPFILE) + echo hlt.obj >> $(EXERSPFILE) + echo $(LIBFILE) >> $(EXERSPFILE) + echo $(MODFILE) >> $(EXERSPFILE) + echo $(LDFLAGS) >> $(EXERSPFILE) + $(CC) @$(EXERSPFILE) /e $(EXEFILE) + +lib: $(LIBOBJS) + echo > $(LIBRSPFILE) + !foreach x $(.NEWER) + modname /r $x >> $(LIBRSPFILE) + !end + echo compress >> $(LIBRSPFILE) + echo update >> $(LIBRSPFILE) + echo quit exit >> $(LIBRSPFILE) + del $(LIBFILE) + lib32 $(LIBFILE) batch < $(LIBRSPFILE) hlt.obj: hlt.asm 386asm -twocase hlt.asm diff --git a/moo/lib/std.c b/moo/lib/std.c index 78e7445..612a570 100644 --- a/moo/lib/std.c +++ b/moo/lib/std.c @@ -3013,7 +3013,7 @@ static void (__interrupt *dos_prev_timer_intr_handler) (void); #endif #if defined(_INTELC32_) -#pragma interrupt(timer_intr_handler) +#pragma interrupt(dos_timer_intr_handler) static void dos_timer_intr_handler (void) #else static void __interrupt dos_timer_intr_handler (void)