Ignore:
Timestamp:
Apr 12, 2014, 8:23:32 AM (11 years ago)
Author:
Ben Rietbroek
Message:

Various Changes [2012-04-14]

WARNING!!

All commits upto and including the commit of [2012-05-13] contain
a severe bug!! Building from these sources and then disabling
the 'force LBA' feature while also using the drive-letter feature or
editing the label can DESTROY THE MBR on ALL ATTACHED DISKS!!
DO NOT DISABLE 'FORCE LBA USAGE' WHEN BUILT FROM THE THESE COMMITS!!

Changes

o Added BLDLEVEL support
o Enhanced Master Make
o Sanitized sources
o Support for Wasm and Masm6 (experimental)
o Renamed MBR_PROT.ASM to MBR-PROT.ASM
o Merged bitfield code Into Installer
o First steps for cross platform Installer
o More...

File:
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/TOOLS/OS2/SETABOOT/Makefile

    r45 r46  
    11###############################################################################
    2 # Makefile :: Builds FIXCODE program for several platforms.           [wmake] #
     2# Makefile :: Builds the SET(A)BOOT Helper for several platforms.     [wmake] #
    33###############################################################################
    4 
    5 #
    6 # This Makefile builds the FIXCODE program for DOS, Windows, OS/2 and Linux.
    7 # FIXCODE is used to embed the anti-virus code into the AiR-BOOT image.
    8 # This anti-virus code protects the MBR and is installed as a TSR by the
    9 # loader. That's why it cannot be included at the source level.
     4# rousseau@ecomstation.com
     5#
     6# Derived from the INSTALL Makefile.
     7#
     8
     9#
     10# This Makefile builds the SET(A)BOOT Helper for DOS, Windows, OS/2 and Linux.
     11# Like FIXCODE, each platform version has a letter appended it:
     12# 'D' for DOS, 'W' for Windows, '2' for OS/2 and 'L' for Linux.
    1013#
    1114
     
    1417# This is used to compensate for the differences between the target platforms.
    1518#
    16 !include        ../../INCLUDE/MAKEFILE.MIF
     19!include        ../../../INCLUDE/MAKEFILE.MIF
    1720
    1821
     
    4144
    4245#
    43 # Base Name of Program to build.
     46# Base Name of Source Program to compile.
     47#
     48BASENAME=SETABOOT
     49
     50#
     51# Base Name of Executable Module to build.
    4452# A letter is appended for each platform version:
    4553# D=DOS, W=Windows, 2=OS2, L=Linux.
    46 # The DOS COM-version has no suffix.
    47 #
    48 BASENAME=FIXCODE
     54#
     55MODULE=$(BASENAME)
    4956
    5057#
    5158# This is a list of the Targets to be built.
    5259#
    53 TARGETS=$(BASENAME).COM $(BASENAME)D.EXE $(BASENAME)W.EXE $(BASENAME)2.EXE $(BASENAME)L.ELF
    54 #TARGETS=$(BASENAME)D.EXE
    55 #TARGETS=$(BASENAME).COM
     60#TARGETS=$(MODULE)D.EXE $(MODULE)W.EXE $(MODULE)2.EXE $(MODULE)L.ELF
     61TARGETS=$(MODULE).EXE
    5662
    5763#
     
    7884# -zcw  = no _ prefix on symbols (C model)
    7985ASM_FLAGS_D0=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DASSEMBLER=JWASM -q -Cp -Fo$^. -Fl=$^&.LST -Fw$^&.ERR
    80 ASM_FLAGS_D1=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DASSEMBLER=JWASM -q -Zd -Zi -Fo$^. -Sa -Fl=$^&.LST -Fw$^&.ERR
    81 ASM_FLAGS_D2=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DASSEMBLER=JWASM -q -Zd -Zi -Fo$^. -Sa -Fl=$^&.LST -Fw$^&.ERR
     86ASM_FLAGS_D1=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DASSEMBLER=JWASM -q -Cp -Zd -Zi -Fo$^. -Sa -Fl=$^&.LST -Fw$^&.ERR
     87ASM_FLAGS_D2=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DASSEMBLER=JWASM -q -Cp -Zd -Zi -Fo$^. -Sa -Fl=$^&.LST -Fw$^&.ERR
    8288!elseif "$(ASM)"=="wasm"
    8389ASM_FLAGS_D0=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -dASSEMBLER=TASM -zq -fo=$^. -fr=$^&.ERR
     
    8692!elseif "$(ASM)"=="tasm"
    8793# -ml   = case sensitive symbols
    88 ASM_FLAGS_D0=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -dASSEMBLER=TASM -t -l
    89 ASM_FLAGS_D1=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -dASSEMBLER=TASM -t -z -zi -c -la
    90 ASM_FLAGS_D2=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -dASSEMBLER=TASM -t -z -zi -c -la
     94ASM_FLAGS_D0=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -dASSEMBLER=TASM -t -ml -l
     95ASM_FLAGS_D1=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -dASSEMBLER=TASM -t -ml -z -zi -c -la
     96ASM_FLAGS_D2=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -dASSEMBLER=TASM -t -ml -z -zi -c -la
    9197!elseif "$(ASM)"=="alp"
    9298ASM_FLAGS_D0=-D:DEBUG_LEVEL=$(DEBUG_LEVEL) -D:ASSEMBLER=ALP -Mb +Feo:OBJ +Fl +Fel:LST +Fm +Fem:ERR
     
    101107# 16-bits C Compiler
    102108#
     109MM16=-ml
    103110CC16=wcc
    104 CC16_FLAGS_D0=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -w4 -e25 -zq -od -fo=$^.
    105 CC16_FLAGS_D1=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -d2 -w4 -e25 -zq -od -fo=$^.
    106 CC16_FLAGS_D2=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -d2 -w4 -e25 -zq -od -fo=$^.
     111CC16_FLAGS_D0=-dDEBUG_LEVEL=$(DEBUG_LEVEL) $(MM16) -w4 -e25 -zq -otexan -fo=$^. -fr=$^&.ERR
     112CC16_FLAGS_D1=-dDEBUG_LEVEL=$(DEBUG_LEVEL) $(MM16) -d2 -w4 -e25 -zq -od -fo=$^. -fr=$^&.ERR
     113CC16_FLAGS_D2=-dDEBUG_LEVEL=$(DEBUG_LEVEL) $(MM16) -d3 -w4 -e25 -zq -od -fo=$^. -fr=$^&.ERR
    107114CC16_FLAGS=$(CC16_FLAGS_D$(DEBUG_LEVEL))
    108115
     
    110117# 32-bits C Compiler
    111118#
     119MM32=-mf
    112120CC32=wcc386
    113 CC32_FLAGS_D0=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -w4 -e25 -zq -od -6r -mf -fo=$^.
    114 CC32_FLAGS_D1=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -d2 -w4 -e25 -zq -od -6r -mf -fo=$^.
    115 CC32_FLAGS_D2=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -d2 -w4 -e25 -zq -od -6r -mf -fo=$^.
    116 CC32_FLAGS_R=-w4 -e25 -zq -od -6r -mf -fo=$^.
     121CC32_FLAGS_D0=-dDEBUG_LEVEL=$(DEBUG_LEVEL) $(MM32) -w4 -e25 -zq -otexan -6r -fo=$^. -fr=$^&.ERR
     122CC32_FLAGS_D1=-dDEBUG_LEVEL=$(DEBUG_LEVEL) $(MM32) -d2 -w4 -e25 -zq -od -6r -fo=$^. -fr=$^&.ERR
     123CC32_FLAGS_D2=-dDEBUG_LEVEL=$(DEBUG_LEVEL) $(MM32) -d3 -w4 -e25 -zq -od -6r -fo=$^. -fr=$^&.ERR
    117124CC32_FLAGS=$(CC32_FLAGS_D$(DEBUG_LEVEL))
    118125
     
    121128#
    122129LNK=wlink
     130#
     131# DESCRIPTION does not work under WLink/Linux
     132# @ Cannot be escaped like with \x40 and it is still processed in quotes.
     133# WLink/2 can use the '\x40' variant.
     134#
     135#~ LNK_FLAGS_D0=op q op v op map=$^&.MAP op de '\x40\x23KIEWITZ:1.18\x23\x40\x41iR-BOOT Installer by Kiewitz'
    123136LNK_FLAGS_D0=op q op v op map=$^&.MAP
     137#~ LNK_FLAGS_D1=op q op v d all &
     138        #~ order clname CODE clname FAR_CONST clname FAR_DATA clnam BEGDATA clname DATA clname BSS clname STACK clname BLAP NOE &
     139        #~ op map=$^&.MAP
    124140LNK_FLAGS_D1=op q op v d all op map=$^&.MAP
    125141LNK_FLAGS_D2=op q op v d all op map=$^&.MAP
     
    172188        @echo.
    173189        @echo =====================================================================
    174         @echo = PROGRAM: FIXCODE Multi Platform      [DOS, Win32, OS/2 and Linux] =
     190        @echo = PROGRAM: SETABOOT Multi Platform   [DOS, Win32, OS/2 and Linux] =
    175191        @echo =====================================================================
    176192#       @echo.
     
    229245
    230246#
    231 # MAIN TARGETS
    232 #
    233 
    234 ###############################################################################
    235 # DOS 16-bits (COM)
    236 ###############################################################################
    237 $(BASENAME).COM:        $(BASENAME).OBJ
    238         $(LNK) $(LNK_FLAGS) file $^&.OBJ name $^. sys dos com
    239         @if exist $^. @echo             $^. $(MSG_SUCCESS)
    240         @echo.
    241 
    242 $(BASENAME).OBJ:        $(BASENAME).ASM
    243 #       @echo.
    244         @echo TARGET: $^&.COM   [DOS 16-bits COM-file]
    245         $(ASM) $(ASM_FLAGS) $(BASENAME).ASM
    246         @wdis $^. > $^&.WDA
    247 
    248 
    249 ###############################################################################
    250 # DOS 16-bits (MZ)
    251 ###############################################################################
    252 $(BASENAME)D.EXE:       $(BASENAME)D.OBJ
    253         $(LNK) $(LNK_FLAGS) file $^&.OBJ name $^. sys dos
    254         @if exist $^. @echo             $^. $(MSG_SUCCESS)
    255         @echo.
    256 
    257 $(BASENAME)D.OBJ:       $(BASENAME).C $(BASENAME).H
    258 #       @echo.
    259         @echo TARGET: $^&.EXE   [DOS 16-bits Executable]
    260         $(CC16) $(CC16_FLAGS) -bt=dos $(BASENAME).C
    261         @wdis $^. > $^&.WDA
    262 
    263 
    264 ###############################################################################
    265 # NT 32-bits (PE)
    266 ###############################################################################
    267 $(BASENAME)W.EXE:       $(BASENAME)W.OBJ
    268         $(LNK) $(LNK_FLAGS) file $^&.OBJ name $^. sys nt
    269         @if exist $^. @echo             $^. $(MSG_SUCCESS)
    270         @echo.
    271 
    272 $(BASENAME)W.OBJ:       $(BASENAME).C $(BASENAME).H
    273 #       @echo.
    274         @echo TARGET: $^&.EXE   [NT 32-bits Executable]
    275         $(CC32) $(CC32_FLAGS) -I$(%WATCOM)$(DS)h$(DS)nt -bt=nt $(BASENAME).C
    276         @wdis $^. > $^&.WDA
    277 
     247# MAIN TARGET
     248#
    278249
    279250###############################################################################
    280251# OS/2 32-bits (LX)
    281252###############################################################################
    282 $(BASENAME)2.EXE:       $(BASENAME)2.OBJ
     253$(MODULE).EXE:  $(MODULE).OBJ
    283254        $(LNK) $(LNK_FLAGS) file $^&.OBJ name $^. sys os2v2
    284255        @if exist $^. @echo             $^. $(MSG_SUCCESS)
    285256        @echo.
    286 
    287 $(BASENAME)2.OBJ:       $(BASENAME).C $(BASENAME).H
     257        #~ wstrip $^.
     258
     259$(MODULE).OBJ:  $(BASENAME).C $(BASENAME).H
    288260#       @echo.
    289261        @echo TARGET: $^&.EXE   [OS/2 32-bits Executable]
    290262        $(CC32) $(CC32_FLAGS) -I$(%WATCOM)$(DS)h$(DS)os2 -bt=os2 $(BASENAME).C
    291         @wdis $^. > $^&.WDA
    292 
    293 
    294 ###############################################################################
    295 # Linux 32-bits (ELF)
    296 ###############################################################################
    297 $(BASENAME)L.ELF:       $(BASENAME)L.OBJ
    298         $(LNK) $(LNK_FLAGS) file $^&.OBJ name $^&.ELF sys linux
    299 #       $(MV) $^&.ELF $^.
    300         @if exist $^. @echo             $^. $(MSG_SUCCESS)
    301         @echo.
    302 
    303 $(BASENAME)L.OBJ:       $(BASENAME).C $(BASENAME).H
    304 #       @echo.
    305         @echo TARGET: $^&.ELF   [Linux 32-bits Executable]
    306         $(CC32) $(CC32_FLAGS) -bt=linux $(BASENAME).C
    307         @wdis $^. > $^&.WDA
    308 
    309 
    310 
     263        @wdis -fi $^. > $^&.WDA
    311264
    312265
     
    330283        @if exist *.OBJ $(RM) *.OBJ
    331284        @if exist *.WDA $(RM) *.WDA
     285        @if exist *.NDA $(RM) *.NDA
    332286        @if exist *.MAP $(RM) *.MAP
    333287        @if exist *.LST $(RM) *.LST
Note: See TracChangeset for help on using the changeset viewer.