Added compiler specific makefiles

git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@319 6ac86273-5f31-0410-b378-82cca8765d1b
This commit is contained in:
Bart Oldeman 2001-11-04 21:43:35 +00:00
parent e092c873fa
commit a904ce9dc3
7 changed files with 385 additions and 0 deletions

53
mkfiles/bc5.mak Normal file
View File

@ -0,0 +1,53 @@
#
# BC5.MAK - kernel copiler options for Borland C++
#
# Use these for Borland C++
COMPILERPATH=$(BC5_BASE)
COMPILERBIN=$(COMPILERPATH)\bin
CC=$(COMPILERBIN)\tcc
CFLAGST=-mt -lt -a- -k- -f- -ff- -O -Z -d
CFLAGSC=-a- -mc
INCLUDEPATH=$(COMPILERPATH)\include
LIBUTIL=$(COMPILERBIN)\tlib
LIBPATH=$(COMPILERPATH)\lib
LIBTERM=
LIBPLUS=+
TARGET=KBC
# used for building the library
CLIB=$(COMPILERPATH)\lib\cs.lib
MATH_EXTRACT=*H_LDIV *H_LLSH *H_LURSH *N_LXMUL *F_LXMUL *H_LRSH
MATH_INSERT=+H_LDIV +H_LLSH +H_LURSH +N_LXMUL +F_LXMUL +H_LRSH
#
# heavy stuff - building the kernel
# Compiler and Options for Borland C++
# ------------------------------------
#
# -zAname ¦ ¦ Code class
# -zBname ¦ ¦ BSS class
# -zCname ¦ ¦ Code segment
# -zDname ¦ ¦ BSS segment
# -zEname ¦ ¦ Far segment
# -zFname ¦ ¦ Far class
# -zGname ¦ ¦ BSS group
# -zHname ¦ ¦ Far group
# -zPname ¦ ¦ Code group
# -zRname ¦ ¦ Data segment
# -zSname ¦ ¦ Data group
# -zTname ¦ ¦ Data class
# -zX ¦«¦ Use default name for "X"
#
# ALLCFLAGS specified by turbo.cfg and config.mak
#
ALLCFLAGS = $(TARGETOPT) $(ALLCFLAGS)
INITCFLAGS = $(ALLCFLAGS) -zAINIT -zCINIT_TEXT -zDIB -zRID -zTID -zPIGROUP -zBIB -zGIGROUP -zSIGROUP
CFLAGS = $(ALLCFLAGS) -zAHMA -zCHMA_TEXT
DYNCFLAGS = $(ALLCFLAGS) -zRDYN_DATA -zTDYN_DATA -zDDYN_DATA -zBDYN_DATA
IPRFCFLAGS = $(INITCFLAGS) -oiprf.obj

49
mkfiles/generic.mak Normal file
View File

@ -0,0 +1,49 @@
#**********************************************************************
#* TARGET : we create a %TARGET%.sys file
#* TARGETOPT : options, handled down to the compiler
#**********************************************************************
TARGETOPT=-1-
!if $(XCPU)+1 != 1
!if $(XCPU) == 186
TARGETOPT=-1
!endif
!if $(XCPU) == 386
TARGETOPT=-3
!endif
!endif
!if $(XFAT)+1 != 1
!if $(XFAT) == 32
ALLCFLAGS=$(ALLCFLAGS) -DWITHFAT32
!endif
!endif
!if $(XCPU) == 386
NASMFLAGS = $(NASMFLAGS) -i../hdr/ -DI386
!else
NASMFLAGS = $(NASMFLAGS) -i../hdr/
!endif
PATCHOBJ=@rem
INITPATCH = CODE=INIT _DATA=IDATA DATA=ID BSS=ID DGROUP=IGROUP CONST=IC
STDPATCH = CODE=HMA CONST=DCONST
DYNPATCH = _DATA=DYN_DATA DATA=DYN_DATA CODE=HMA CONST=DCONST
!include "..\mkfiles\$(COMPILER).mak"
THETARGET=$(TARGET)$(XCPU)$(XFAT)
# These are generic definitions
RM=-del
.asm.obj :
$(NASM) $(NASMFLAGS) -f obj $*.asm
# *Implicit Rules*
.c.obj :
$(CC) $(CFLAGS) -c $*.c
.cpp.obj :
$(CC) $(CFLAGS) -c $*.cpp

42
mkfiles/mscl8.mak Normal file
View File

@ -0,0 +1,42 @@
#
# MSCL8.MAK - kernel copiler options for MS CL8 = MSVC1.52
#
# Use these for MSCV 1.52
COMPILERPATH=$(MS_BASE)
COMPILERBIN=$(COMPILERPATH)\bin
INCLUDEPATH=$(COMPILERPATH)\include
CC=$(COMPILERBIN)\cl
CFLAGST = /Fm /AS /Os ????
CFLAGSC=-a- -mc ????
LIBUTIL=$(COMPILERBIN)\lib /nologo
LIBPATH=$(COMPILERPATH)\lib
LIBUTIL=$(COMPILERBIN)\lib /nologo
LIBTERM=;
# used for building the library
CLIB=$(COMPILERPATH)\lib\slibce.lib
MATH_EXTRACT=*aflmul *aFlshl *aFNauldi *aFulrem *aFulshr *aFuldiv *aFlrem *aFldiv
MATH_INSERT= +aflmul +aFlshl +aFNauldi +aFulrem +aFulshr +aFuldiv +aFlrem +aFldiv
!if $(XCPU) == 186
TARGETOPT=-G1
!end
!if $(XCPU) == 386
TARGETOPT=-G3
!end
TARGET=KMS
#
# heavy stuff - building
ALLCFLAGS = -I..\hdr $(TARGETOPT) $(ALLCFLAGS) -nologo -c -Zl -Fc -Zp1 -Gs -Os -WX
INITCFLAGS = $(ALLCFLAGS) -NTINIT_TEXT -AT
CFLAGS = $(ALLCFLAGS) -NTHMA_TEXT
DYNCFLAGS = $(ALLCFLAGS) -NTHMA_TEXT
IPRFCFLAGS = $(INITCFLAGS) -Foiprf.obj
PATCHOBJ = patchobj

56
mkfiles/tc2.mak Normal file
View File

@ -0,0 +1,56 @@
#
# TURBOC.MAK - kernel copiler options for TURBOC
#
# Use these for Turbo C 2.01
COMPILERPATH=$(TC2_BASE)
COMPILERBIN=$(COMPILERPATH)
CC=$(COMPILERBIN)\tcc
CFLAGST=-mt -lt -a- -k- -f- -ff- -O -Z -d
CFLAGSC=-a- -mc
INCLUDEPATH=$(COMPILERPATH)\include
LIBUTIL=$(COMPILERBIN)\tlib
LIBPATH=$(COMPILERPATH)\lib
LIBTERM=
LIBPLUS=+
TARGET=KTC
# used for building the library
CLIB=$(COMPILERPATH)\lib\cs.lib
MATH_EXTRACT=*LDIV *LXMUL *LURSH *LLSH *LRSH
MATH_INSERT=+LDIV +LXMUL +LURSH +LLSH +LRSH
#
# heavy stuff - building the kernel
# Compiler and Options for Borland C++
# ------------------------------------
#
# -zAname ¦ ¦ Code class
# -zBname ¦ ¦ BSS class
# -zCname ¦ ¦ Code segment
# -zDname ¦ ¦ BSS segment
# -zEname ¦ ¦ Far segment
# -zFname ¦ ¦ Far class
# -zGname ¦ ¦ BSS group
# -zHname ¦ ¦ Far group
# -zPname ¦ ¦ Code group
# -zRname ¦ ¦ Data segment
# -zSname ¦ ¦ Data group
# -zTname ¦ ¦ Data class
# -zX ¦«¦ Use default name for "X"
#
# ALLCFLAGS specified by turbo.cfg and config.mak
#
ALLCFLAGS = $(TARGETOPT) $(ALLCFLAGS)
INITCFLAGS = $(ALLCFLAGS) -zAINIT -zCINIT_TEXT -zDIB -zRID -zTID -zPIGROUP -zBIB -zGIGROUP -zSIGROUP
CFLAGS = $(ALLCFLAGS) -zAHMA -zCHMA_TEXT
DYNCFLAGS = $(ALLCFLAGS) -zRDYN_DATA -zTDYN_DATA -zDDYN_DATA -zBDYN_DATA
IPRFCFLAGS = $(INITCFLAGS) -oiprf.obj

53
mkfiles/tc3.mak Normal file
View File

@ -0,0 +1,53 @@
#
# TC3.MAK - kernel copiler options for Turbo C 3.0
#
# Use these for Turbo C 3.0
COMPILERPATH=$(TC3_BASE)
COMPILERBIN=$(COMPILERPATH)\bin
CC=$(COMPILERBIN)\tcc
CFLAGST=-mt -lt -a- -k- -f- -ff- -O -Z -d
CFLAGSC=-a- -mc
INCLUDEPATH=$(COMPILERPATH)\include
LIBUTIL=$(COMPILERBIN)\tlib
LIBPATH=$(COMPILERPATH)\lib
LIBTERM=
LIBPLUS=+
TARGET=KT3
# used for building the library
CLIB=$(COMPILERPATH)\lib\cs.lib
MATH_EXTRACT=*H_LDIV *H_LLSH *H_LURSH *N_LXMUL *F_LXMUL *H_LRSH
MATH_INSERT=+H_LDIV +H_LLSH +H_LURSH +N_LXMUL +F_LXMUL +H_LRSH
#
# heavy stuff - building the kernel
# Compiler and Options for Borland C++
# ------------------------------------
#
# -zAname ¦ ¦ Code class
# -zBname ¦ ¦ BSS class
# -zCname ¦ ¦ Code segment
# -zDname ¦ ¦ BSS segment
# -zEname ¦ ¦ Far segment
# -zFname ¦ ¦ Far class
# -zGname ¦ ¦ BSS group
# -zHname ¦ ¦ Far group
# -zPname ¦ ¦ Code group
# -zRname ¦ ¦ Data segment
# -zSname ¦ ¦ Data group
# -zTname ¦ ¦ Data class
# -zX ¦«¦ Use default name for "X"
#
# ALLCFLAGS specified by turbo.cfg and config.mak
#
ALLCFLAGS = $(TARGETOPT) $(ALLCFLAGS)
INITCFLAGS = $(ALLCFLAGS) -zAINIT -zCINIT_TEXT -zDIB -zRID -zTID -zPIGROUP -zBIB -zGIGROUP -zSIGROUP
CFLAGS = $(ALLCFLAGS) -zAHMA -zCHMA_TEXT
DYNCFLAGS = $(ALLCFLAGS) -zRDYN_DATA -zTDYN_DATA -zDDYN_DATA -zBDYN_DATA
IPRFCFLAGS = $(INITCFLAGS) -oiprf.obj

52
mkfiles/turbocpp.mak Normal file
View File

@ -0,0 +1,52 @@
#
# TURBOCPP.MAK - kernel copiler options for TCPP 1.01
#
# Use these for Turbo CPP 1.01
COMPILERPATH=$(TP1_BASE)
COMPILERBIN=$(COMPILERPATH)\bin
CC=$(COMPILERBIN)\tcc
CFLAGST=-mt -lt -a- -k- -f- -ff- -O -Z -d
CFLAGSC=-a- -mc
INCLUDEPATH=$(COMPILERPATH)\include
LIBUTIL=$(COMPILERBIN)\tlib
LIBPATH=$(COMPILERPATH)\lib
LIBTERM=
LIBPLUS=+
TARGET=KTP
# used for building the library
CLIB=$(COMPILERPATH)\lib\cs.lib
MATH_EXTRACT=*H_LDIV *F_LXMUL *H_LURSH *H_LLSH *H_LRSH
MATH_INSERT=+H_LDIV +F_LXMUL +H_LURSH +H_LLSH +H_LRSH
#
# heavy stuff - building the kernel
# Compiler and Options for Borland C++
# ------------------------------------
#
# -zAname ¦ ¦ Code class
# -zBname ¦ ¦ BSS class
# -zCname ¦ ¦ Code segment
# -zDname ¦ ¦ BSS segment
# -zEname ¦ ¦ Far segment
# -zFname ¦ ¦ Far class
# -zGname ¦ ¦ BSS group
# -zHname ¦ ¦ Far group
# -zPname ¦ ¦ Code group
# -zRname ¦ ¦ Data segment
# -zSname ¦ ¦ Data group
# -zTname ¦ ¦ Data class
# -zX ¦«¦ Use default name for "X"
#
# ALLCFLAGS specified by turbo.cfg and config.mak
#
ALLCFLAGS = $(TARGETOPT) $(ALLCFLAGS)
INITCFLAGS = $(ALLCFLAGS) -zAINIT -zCINIT_TEXT -zDIB -zRID -zTID -zPIGROUP -zBIB -zGIGROUP -zSIGROUP
CFLAGS = $(ALLCFLAGS) -zAHMA -zCHMA_TEXT
DYNCFLAGS = $(ALLCFLAGS) -zRDYN_DATA -zTDYN_DATA -zDDYN_DATA -zBDYN_DATA
IPRFCFLAGS = $(INITCFLAGS) -oiprf.obj

80
mkfiles/watcom.mak Normal file
View File

@ -0,0 +1,80 @@
#
# WATCOM.MAK - kernel copiler options for MS CL8 = MSVC1.52
#
# Use these for WATCOM 11.0c
COMPILERPATH=$(WC_BASE)
COMPILERBIN=$(WC_BASE)\binw
CC=$(COMPILERBIN)\wcl
CFLAGST=-mt
CFLAGSC=-mc
INCLUDEPATH=$(COMPILERPATH)\H
WATCOM=$(COMPILERPATH)
PATH=$(COMPILERPATH)\binnt;$(COMPILERPATH)\binw
INCLUDE=$(COMPILERPATH)\h
EDPATH=$(COMPILERPATH)\EDDAT
!if $(XCPU) != 186
!if $(XCPU) != 386
TARGETOPT=-0
!endif
!endif
TARGET=KWC
LINKTERM=;
LIBPATH=$(COMPILERPATH)\lib
LIBUTIL=$(COMPILERBIN)\wlib
LIBPLUS=
LIBTERM=
# used for building the library
CLIB=$(COMPILERPATH)\lib286\dos\clibs.lib
#
#MATH_EXTRACT=*i4d *i4m
#MATH_INSERT= +i4d +i4m
#
# these are NOT usable, as they are called NEAR, and are in TEXT segment.
# so we can't use them, when moving the kernel. called ~15 times
#
# so I include 1 dummy library routine (stridup()), to make lib happy
#
MATH_EXTRACT=*_icstrdu
MATH_INSERT= +_icstrdu
MATH_EXTRACT=*i4d *i4m
MATH_INSERT= +i4d +i4m
#
# heavy stuff - building
#
# -e=<num> set limit on number of error messages
# -ms small memory model (small code/small data)
# -j change char default from unsigned to signed
#-nc=<id> set code class name
#-nd=<id> set data segment name
#-nm=<file> set module name
#-nt=<id> set name of text segment
# -g=<id> set code group name
# -os -> favor code size over execution time in optimizations
# -s remove stack overflow checks
# -w=<num> set warning level number
# -we treat all warnings as errors
# -ze enable extensions (i.e., near, far, export, etc.)
# -zl remove default library information
# -zp=<num> pack structure members with alignment {1,2,4,8,16}
# -zq operate quietly
#
# -3 optimization for 386 - given in CONFIG.MAK, not here
#
ALLCFLAGS = $(TARGETOPT) $(ALLCFLAGS) -c -zq -os -ms -s -e=5 -j -zl -zp=1
INITCFLAGS = $(ALLCFLAGS) -nt=INIT_TEXT -nc=INIT -g=IGROUP
CFLAGS = $(ALLCFLAGS) -nt=HMA_TEXT -nc=HMA -g=HGROUP
DYNCFLAGS = $(ALLCFLAGS)
IPRFCFLAGS = $(INITCFLAGS) -Foiprf.obj