⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefile

📁 GNU FreeDOS兼容MS DOS很好的东东.
💻
字号:
## Makefile for Borland C++ 3.1 for kernel.sys## $Id: makefile,v 1.19 2004/05/30 20:59:33 bartoldeman Exp $#!include "../mkfiles/generic.mak"LIBS=..\lib\device.lib ..\lib\libm.libHDR=../hdr/# *List Macros*# Only 8 files per definition; this is limitation of DOS batch# files (only 9 directly accessible parameters).OBJS1=kernel.obj entry.obj io.obj console.obj serial.obj printer.obj dsk.obj \sysclk.objOBJS2=asmsupt.obj execrh.obj nlssupt.obj procsupt.obj dosidle.obj int2f.obj \nls_hc.objOBJS3=apisupt.obj intr.obj irqstack.obj blockio.obj chario.obj systime.obj \error.objOBJS4=break.obj dosfns.obj fatdir.obj fatfs.obj fattab.obj fcbfns.obj \inthndlr.objOBJS5=ioctl.obj dosnames.obj memmgr.obj task.obj newstuff.obj nls.obj network.objOBJS6=prf.obj misc.obj strings.obj syspack.obj lfnapi.obj iasmsupt.objOBJS7=main.obj config.obj initoem.obj inithma.obj dyninit.obj iprf.obj \initdisk.obj initclk.objOBJS=$(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(OBJS5) $(OBJS6) $(OBJS7)#               *Explicit Rules*production:     ..\bin\$(TARGET).sys..\bin\$(TARGET).sys: kernel.sys		copy kernel.sys ..\bin		copy kernel.sys ..\bin\$(TARGET).sys		copy kernel.map ..\bin\$(TARGET).mapkernel.sys:	kernel.exe ..\utils\exeflat.exe		$(XUPX) kernel.exe		..\utils\exeflat kernel.exe kernel.sys 0x60 -S0x10 -S0x8B $(UPXOPT)kernel.exe:	$(TARGET).lnk $(OBJS) $(LIBS)		$(LINK) @$(TARGET).lnk;clobber:        clean		-$(RM) kernel.exe kernel.sys status.meclean:		-$(RM) *.obj *.bak *.crf *.xrf *.map *.lst *.cod *.err *.lnk# XXX: This is a very ugly way of linking the kernel, forced upon us by the# inability of Turbo `make' 2.0 to perform command line redirection. -- ror4ECHOTO=..\utils\echoto$(TARGET).lnk: turboc.cfg makefile ..\mkfiles\generic.mak ..\mkfiles\$(COMPILER).mak		-$(RM) *.lnk		$(ECHOTO) $(TARGET).lnk $(OBJS1)+		$(ECHOTO) $(TARGET).lnk $(OBJS2)+		$(ECHOTO) $(TARGET).lnk $(OBJS3)+		$(ECHOTO) $(TARGET).lnk $(OBJS4)+		$(ECHOTO) $(TARGET).lnk $(OBJS5)+		$(ECHOTO) $(TARGET).lnk $(OBJS6)+		$(ECHOTO) $(TARGET).lnk $(OBJS7)		$(ECHOTO) $(TARGET).lnk kernel.exe		$(ECHOTO) $(TARGET).lnk kernel.map		$(ECHOTO) $(TARGET).lnk $(LIBS)#               *Individual File Dependencies*apisupt.obj:	apisupt.asm segs.inc			$(TARGET).lnkasmsupt.obj:	asmsupt.asm segs.inc			$(TARGET).lnkconsole.obj:	console.asm io.inc			$(TARGET).lnkdosidle.obj:	dosidle.asm segs.inc			$(TARGET).lnkentry.obj:	entry.asm   segs.inc $(HDR)stacks.inc	$(TARGET).lnkexecrh.obj:	execrh.asm  segs.inc 			$(TARGET).lnkint2f.obj:	int2f.asm   segs.inc $(HDR)stacks.inc	$(TARGET).lnkintr.obj:	intr.asm    segs.inc			$(TARGET).lnkio.obj:		io.asm	    segs.inc $(HDR)stacks.inc   $(TARGET).lnkirqstack.obj:   irqstack.asm segs.inc			$(TARGET).lnkkernel.obj:	kernel.asm  segs.inc ludivmul.inc 	$(TARGET).lnknls_hc.obj:	nls_hc.asm  segs.inc			$(TARGET).lnknlssupt.obj:	nlssupt.asm segs.inc $(HDR)stacks.inc   $(TARGET).lnkprinter.obj:	printer.asm io.inc			$(TARGET).lnkprocsupt.obj:	procsupt.asm segs.inc $(HDR)stacks.inc  $(TARGET).lnkserial.obj:	serial.asm  io.inc			$(TARGET).lnkHDRS=\    $(HDR)portab.h $(HDR)device.h $(HDR)mcb.h $(HDR)pcb.h \    $(HDR)fat.h $(HDR)fcb.h $(HDR)tail.h $(HDR)time.h $(HDR)process.h \    $(HDR)dcb.h $(HDR)sft.h $(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h     \    $(HDR)dirmatch.h $(HDR)file.h $(HDR)clock.h $(HDR)kbd.h $(HDR)error.h  \    $(HDR)version.h dyndata.hHEADERS=$(HDRS) globals.h proto.hINITHEADERS=$(HDRS) init-mod.h init-dat.hblockio.obj: blockio.c    $(HEADERS) $(TARGET).lnk  break.obj: break.c        $(HEADERS) $(TARGET).lnk  chario.obj: chario.c      $(HEADERS) $(TARGET).lnk  dosfns.obj: dosfns.c      $(HEADERS) $(TARGET).lnk  dosnames.obj: dosnames.c  $(HEADERS) $(TARGET).lnk  dsk.obj: dsk.c            $(HEADERS) $(TARGET).lnk  error.obj: error.c        $(HEADERS) $(TARGET).lnk  fatdir.obj: fatdir.c      $(HEADERS) $(TARGET).lnk  fatfs.obj: fatfs.c        $(HEADERS) $(TARGET).lnk  fattab.obj: fattab.c      $(HEADERS) $(TARGET).lnk  fcbfns.obj: fcbfns.c      $(HEADERS) $(TARGET).lnk  inthndlr.obj: inthndlr.c  $(HEADERS) $(TARGET).lnk  ioctl.obj: ioctl.c        $(HEADERS) $(TARGET).lnk  memmgr.obj: memmgr.c      $(HEADERS) $(TARGET).lnk  misc.obj: misc.c          $(HEADERS) $(TARGET).lnk  lfnapi.obj: lfnapi.c      $(HEADERS) $(TARGET).lnknewstuff.obj: newstuff.c  $(HEADERS) $(TARGET).lnk  network.obj: network.c    $(HEADERS) $(TARGET).lnk  nls.obj: nls.c            $(HEADERS) $(TARGET).lnk  prf.obj: prf.c  $(HDR)portab.h $(TARGET).lnkstrings.obj: strings.c  $(TARGET).lnksysclk.obj: sysclk.c    $(HEADERS) $(TARGET).lnksyspack.obj: syspack.c  $(HEADERS) $(TARGET).lnksystime.obj: systime.c  $(HEADERS) $(TARGET).lnktask.obj: task.c        $(HEADERS) $(TARGET).lnk# now the funny stuff :-)# Files in the INIT segment# XXX: Special handling for initialization modules -- this is required because# TC 2.01 cannot handle `#pragma option' like TC 3 can. -- ror4config.obj:   config.c  $(INITHEADERS) $(TARGET).lnk  	$(CC) $(INITCFLAGS) $*.c	$(INITPATCH) $*.objinitoem.obj:  initoem.c  $(INITHEADERS) $(TARGET).lnk  	$(CC) $(INITCFLAGS) $*.c	$(INITPATCH) $*.objmain.obj:     main.c  $(INITHEADERS) $(TARGET).lnk 	$(CC) $(INITCFLAGS) $*.c	$(INITPATCH) $*.objinithma.obj:  inithma.c  $(INITHEADERS) $(TARGET).lnk  	$(CC) $(INITCFLAGS) $*.c	$(INITPATCH) $*.objdyninit.obj:  dyninit.c  $(INITHEADERS) $(TARGET).lnk  	$(CC) $(INITCFLAGS) $*.c	$(INITPATCH) $*.objinitdisk.obj: initdisk.c  $(INITHEADERS) $(TARGET).lnk  	$(CC) $(INITCFLAGS) $*.c	$(INITPATCH) $*.objinitclk.obj: initclk.c  $(INITHEADERS) $(TARGET).lnk  	$(CC) $(INITCFLAGS) $*.c	$(INITPATCH) $*.obj#the string functions for INIT_TEXTiasmsupt.obj: asmsupt.asm $(TARGET).lnk	$(NASM) -D$(COMPILER) -D_INIT $(NASMFLAGS) -f obj -o iasmsupt.obj asmsupt.asm#the printf for INIT_TEXT - yet another special case, this file includes prf.ciprf.obj: iprf.c prf.c $(HDR)portab.h $(TARGET).lnk	$(CC) $(INITCFLAGS) $*.c	$(INITPATCH) $*.obj

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -