Changeset 60 for trunk/bootcode/Makefile
- Timestamp:
- Feb 18, 2016, 5:18:51 PM (10 years ago)
- File:
-
- 1 edited
-
trunk/bootcode/Makefile (modified) (26 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/bootcode/Makefile
r55 r60 1 1 ############################################################################### 2 # Makefile :: Builds the AIRBOOT.BIN 16-bits RAW Loader Image.#2 # Makefile :: Builds the 'airboot.bin' 16-bits RAW Loader Image # 3 3 ############################################################################### 4 4 # rousseau@ecomstation.com 5 # 6 # Derived from the FIXCODE Makefile. 7 # 8 9 # 10 # This Makefile builds the AIRBOOT.BIN program. 5 6 # 7 # This Makefile builds the 'airboot.bin' program. 11 8 # This is the actual AiR-BOOT that you see when starting your system. 12 9 # It operates at the BIOS level and thus without any operating-system … … 21 18 # possible virusses. This detection code is "hooked" into the interrupt-chain 22 19 # and therefore has it's own relocations which are not related to the main 23 # loader image. For this reason, when the main source AIR-BOOT.ASM is assembled 24 # to a RAW image, this virus-protection code is "embedded" as the last step. 25 # You could compare this to binding a resource-file to an OS/2 executable. 20 # loader image. For this reason, when the main source 'air-boot.asm' is 21 # assembled to a RAW image, this virus-protection code is "embedded" as the 22 # last step. You could compare this to binding a resource-file to an OS/2 23 # executable. 26 24 # 27 25 # When AiR-BOOT gets control, this virus-protection code is copied elsewhere … … 31 29 # 32 30 # This embedding proccess consists of three parts: 33 # - Assembling the virus-detection code, MBR_PROT.ASM, which always results31 # - Assembling the virus-detection code, 'mbrprot.asm', which always results 34 32 # in a 1024 bytes image. 35 # - Compiling the FIXCODEprogram that does the actual embedding.36 # - Running the FIXCODE program against AIR-BOOT.COMcreating the37 # final AIRBOOT.BINimage.38 # 39 40 # 41 # After these operations have been completed, the AIRBOOT.BINimage33 # - Compiling the 'fixcode' program that does the actual embedding. 34 # - Running the 'fixcode' program against 'air-boot.com' creating the 35 # final 'airboot.bin' image. 36 # 37 38 # 39 # After these operations have been completed, the 'airboot.bin' image 42 40 # is ready to be installed. 43 41 # 44 45 #46 # The installer is a C program for OS/2 and Win32, using Open Watcom's47 # cross-platform capabilities. The DOS installer is currently an Assembler48 # program, making it harder to maintain and stay in sync with the C version.49 # No Linux installer is available yet, but work is in progress.50 # In future versions the DOS installer will also be built from the C sources51 # as will the Linux version, again using Open Watcom's cross-platform52 # capabilities. I call it 'DWOL': DOS, Windows, OS/2 and Linux.53 #54 55 42 56 43 … … 63 50 # Include a Master Makefile with several cross-platform definitions and macros. 64 51 # This is used to compensate for the differences between the target platforms. 65 !include ../ INCLUDE/MAKEFILE.MIF52 !include ../include/makefile.mif 66 53 67 54 # On my system, JWasm takes forever to generate a list-file when on a network … … 69 56 # makes no difference. If you experience the same, then put a '#' in front of 70 57 # the variable below to keep JWasm from generating a list-file. 71 #JWASM_LIST_FILE=-Fl=$^&.LST 58 JWASM_LIST_FILE=-Fl=$^&.lst 72 59 73 60 # Specifies the level of debugging. … … 92 79 # The various language versions are created by replacing TXT-files 93 80 # and reassembling this file. 94 BASENAME= AIR-BOOT81 BASENAME=air-boot 95 82 96 83 # When you are developing, you might want to do that using your own language. 97 # Using 'wmake dev' will built a module called AIRBOOT.BINwith this language84 # Using 'wmake dev' will built a module called 'airboot.bin' with this language 98 85 # and leave all the intermediate files intact. 99 86 # When developing on a non-RU language version, you need to do a 'wmake RU' … … 102 89 # taking up extra space. If it builds for RU it will build for all other 103 90 # languages. 104 DEV_BLD_LANG= EN91 DEV_BLD_LANG=en 105 92 106 93 # These are the languages that AiR-BOOT can be assembled with. … … 110 97 # will run out-of-space sooner that the other languages. 111 98 # If that happens at least the others will be built. 112 BLD_LANGUAGES= EN DE NL FR IT SW RU113 #BLD_LANGUAGES= EN DE NL99 BLD_LANGUAGES=en de nl fr it sw ru 100 #BLD_LANGUAGES=en de nl 114 101 115 102 # For each language the Assembler source is compiled to a binary image … … 118 105 # When developing the final image is not renamed. 119 106 # Note that it differs from the source basename. 120 MODULE= AIRBOOT107 MODULE=airboot 121 108 122 109 # This is a list of the Targets to be built. 123 # For AiR-BOOT there is only one real target: AIRBOOT.BIN.110 # For AiR-BOOT there is only one real target: 'airboot.bin'. 124 111 # Each language build generates this target and it is later renamed. 125 112 # Only a dev-build does not rename it so it can directly be used by 126 113 # the installer. 127 TARGET=$(MODULE). BIN114 TARGET=$(MODULE).bin 128 115 129 116 #~ %AB_DEV=FALSE … … 181 168 # -Zd = line number debug info 182 169 # -Zi = symbolic debug info 183 ASM_FLAGS_D0=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DJWASM -q -W0 -Cp -zcw -Fo$^. -Sa $(JWASM_LIST_FILE) -Fw$^&. ERR184 ASM_FLAGS_D1=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DJWASM -q -W4 -Cp -zcw -Zd -Zi -Fo$^. -Sa $(JWASM_LIST_FILE) -Fw$^&. ERR185 ASM_FLAGS_D2=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DJWASM -q -W4 -Cp -zcw -Zd -Zi -Fo$^. -Sa $(JWASM_LIST_FILE) -Fw$^&. ERR170 ASM_FLAGS_D0=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DJWASM -q -W0 -Cp -zcw -Fo$^. -Sa $(JWASM_LIST_FILE) -Fw$^&.err 171 ASM_FLAGS_D1=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DJWASM -q -W4 -Cp -zcw -Zd -Zi -Fo$^. -Sa $(JWASM_LIST_FILE) -Fw$^&.err 172 ASM_FLAGS_D2=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DJWASM -q -W4 -Cp -zcw -Zd -Zi -Fo$^. -Sa $(JWASM_LIST_FILE) -Fw$^&.err 186 173 187 174 # WASM 188 175 !elseif "$(ASM)"=="wasm" 189 176 # -w0 = suppress warnings (wasm is nice to check for missing size qualifiers) 190 ASM_FLAGS_D0=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -dWASM -zq -w4 -fo=$^. -fr=$^&. ERR191 ASM_FLAGS_D1=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -dWASM -zq -w4 -d1 -fo=$^. -fr=$^&. ERR192 ASM_FLAGS_D2=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -dWASM -zq -w4 -d1 -fo=$^. -fr=$^&. ERR177 ASM_FLAGS_D0=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -dWASM -zq -w4 -fo=$^. -fr=$^&.err 178 ASM_FLAGS_D1=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -dWASM -zq -w4 -d1 -fo=$^. -fr=$^&.err 179 ASM_FLAGS_D2=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -dWASM -zq -w4 -d1 -fo=$^. -fr=$^&.err 193 180 194 181 # TASM … … 201 188 # MASM 202 189 !elseif "$(ASM)"=="masm" 203 ASM_FLAGS_D0=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DMASM -c -nologo -Cp -Fo$^. -Sa -Fl$^&. LST204 ASM_FLAGS_D1=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DMASM -c -nologo -Cp -Zd -Zi -Fo$^. -Sa -Fl$^&. LST205 ASM_FLAGS_D2=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DMASM -c -nologo -Cp -Zd -Zi -Fo$^. -Sa -Fl$^&. LST190 ASM_FLAGS_D0=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DMASM -c -nologo -Cp -Fo$^. -Sa -Fl$^&.lst 191 ASM_FLAGS_D1=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DMASM -c -nologo -Cp -Zd -Zi -Fo$^. -Sa -Fl$^&.lst 192 ASM_FLAGS_D2=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DMASM -c -nologo -Cp -Zd -Zi -Fo$^. -Sa -Fl$^&.lst 206 193 207 194 # ALP -- Does not support '/' for includes so it cannot be used for now. 208 195 !elseif "$(ASM)"=="alp" 209 ASM_FLAGS_D0=-D:DEBUG_LEVEL=$(DEBUG_LEVEL) -D:ALP -Mb +Feo: OBJ +Fl +Fel:LST +Fm +Fem:ERR210 ASM_FLAGS_D1=-D:DEBUG_LEVEL=$(DEBUG_LEVEL) -D:ALP -Mb +Od:MS16 +Feo: OBJ +Fl +Fel:LST +Fm +Fem:ERR196 ASM_FLAGS_D0=-D:DEBUG_LEVEL=$(DEBUG_LEVEL) -D:ALP -Mb +Feo:obj +Fl +Fel:LST +Fm +Fem:err 197 ASM_FLAGS_D1=-D:DEBUG_LEVEL=$(DEBUG_LEVEL) -D:ALP -Mb +Od:MS16 +Feo:obj +Fl +Fel:lst +Fm +Fem:err 211 198 ASM_FLAGS_D2=-D:DEBUG_LEVEL=$(DEBUG_LEVEL) -D:ALP 212 199 … … 245 232 # Open Watcom Linker. 246 233 LNK=wlink 247 LNK_FLAGS_D0=op q op v disa {1014 1023} op map=$^&. MAP248 LNK_FLAGS_D1=op q op v d all op map=$^&. MAP249 LNK_FLAGS_D2=op q op v d all op map=$^&. MAP234 LNK_FLAGS_D0=op q op v disa {1014 1023} op map=$^&.map 235 LNK_FLAGS_D1=op q op v d all op map=$^&.map 236 LNK_FLAGS_D2=op q op v d all op map=$^&.map 250 237 LNK_FLAGS=$(LNK_FLAGS_D$(DEBUG_LEVEL)) 251 238 252 239 # These need to be built 253 DEPTARGETS= MBR-PROT ..$(DS)TOOLS$(DS)INTERNAL240 DEPTARGETS=mbr-prot ..$(DS)tools$(DS)internal 254 241 255 242 … … 318 305 # Note that this target is not used as a 'dependency' but 'called' explicitly 319 306 # by the $(BLD_LANGUAGES) target. 320 @echo Include TEXT/$(%BLD_LANG)/MBR.ASM > TEXT$(DS)TXTMBR.ASM321 @echo Include TEXT/$(%BLD_LANG)/MENUS.ASM > TEXT$(DS)TXTMENUS.ASM322 @echo Include TEXT/$(%BLD_LANG)/OTHER.ASM > TEXT$(DS)TXTOTHER.ASM307 @echo include text/$(%BLD_LANG)/mbr.asm > text$(DS)txtmbr.asm 308 @echo include text/$(%BLD_LANG)/menus.asm > text$(DS)txtmenus.asm 309 @echo include text/$(%BLD_LANG)/other.asm > text$(DS)txtother.asm 323 310 324 311 … … 347 334 @echo. 348 335 @echo ** Renaming Target ** 349 $(MV) $(TARGET) AIRBT-$@.BIN336 $(MV) $(TARGET) airbt-$@.bin 350 337 !endif 351 338 # @echo $(%AB_DEV) … … 432 419 # 433 420 # This builds the MBR Protection Image. 434 # It will be embedded into the final AiR-BOOT binary. ( AIRBOOT.BIN)421 # It will be embedded into the final AiR-BOOT binary. (airboot.bin) 435 422 # 436 423 mbrprot: .symbolic … … 438 425 @echo @ Building MBR Protection Image and FixCode first @ 439 426 @echo @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 440 cd MBR-PROT427 cd mbr-prot 441 428 $(MAKE) -h 442 429 cd .. … … 448 435 # 449 436 fixcode: .procedure 450 cd ..$(DS) TOOLS$(DS)INTERNAL437 cd ..$(DS)tools$(DS)internal 451 438 $(MAKE) -h 452 cd ..$(DS)..$(DS) BOOTCODE439 cd ..$(DS)..$(DS)bootcode 453 440 454 441 … … 458 445 459 446 # ----------------------------------------------------------------------------- 460 # FINAL AIRBOOT.BINIMAGE447 # FINAL 'airboot.bin' IMAGE 461 448 # ----------------------------------------------------------------------------- 462 449 # This is the final AiR-BOOT image and has been built for the language … … 467 454 # with NDISASM for cross reference. 468 455 # ----------------------------------------------------------------------------- 469 $(TARGET): .MULTIPLE Makefile.bu $(BASENAME). COM456 $(TARGET): .MULTIPLE Makefile.bu $(BASENAME).com 470 457 @echo $^.: [Final 16-bits raw Binary Image] 471 458 !ifdef __MSDOS__ 472 ..$(DS) TOOLS$(DS)INTERNAL$(DS)FIXCODED.EXE459 ..$(DS)tools$(DS)internal$(DS)fixcoded.exe 473 460 !endif 474 461 !ifdef __OS2__ 475 ..$(DS) TOOLS$(DS)INTERNAL$(DS)FIXCODE2.EXE462 ..$(DS)tools$(DS)internal$(DS)fixcode2.exe 476 463 !endif 477 464 !ifdef __NT__ 478 ..$(DS) TOOLS$(DS)INTERNAL$(DS)FIXCODEW.EXE465 ..$(DS)tools$(DS)internal$(DS)fixcodew.exe 479 466 !endif 480 467 !ifdef __LINUX__ 481 # ..$(DS) TOOLS$(DS)INTERNAL$(DS)FIXCODE482 @chmod +x ..$(DS) TOOLS$(DS)INTERNAL$(DS)FIXCODEL.ELF483 ..$(DS) TOOLS$(DS)INTERNAL$(DS)FIXCODEL.ELF468 # ..$(DS)tools$(DS)internal$(DS)fixcode 469 @chmod +x ..$(DS)tools$(DS)internal$(DS)fixcodel.elf 470 ..$(DS)tools$(DS)internal$(DS)fixcodel.elf 484 471 @chmod +x $^. 485 472 !endif 486 473 @echo. 487 474 !ifndef __MSDOS__ 488 ndisasm $(BASENAME). COM > $(BASENAME).COM.NDA489 ndisasm $(TARGET) > $(TARGET). NDA475 ndisasm $(BASENAME).com > $(BASENAME).com.nda 476 ndisasm $(TARGET) > $(TARGET).nda 490 477 !endif 491 478 @echo. … … 494 481 495 482 # ----------------------------------------------------------------------------- 496 # INTERMEDIATE AIR-BOOT.COMIMAGE483 # INTERMEDIATE 'air-boot.com' IMAGE 497 484 # ----------------------------------------------------------------------------- 498 485 # This is an intermediate image without embedded MBR-protection and code count. 499 # It needs to be post-processed with FIXBOOT.486 # It needs to be post-processed with 'fixboot'. 500 487 # 501 488 # While both DOS COM and RAW linkage generate a flat 16-bits image with … … 504 491 # So we use DOS COM linkage to proteced us from overflow incorrect fixups. 505 492 # ----------------------------------------------------------------------------- 506 $(BASENAME). COM: .MULTIPLE $(BASENAME).OBJ493 $(BASENAME).com: .MULTIPLE $(BASENAME).obj 507 494 @echo $^.: [16-bits non-100h Intermediate Image] 508 $(LNK) $(LNK_FLAGS) file $^&. OBJname $^. sys dos com509 # $(LNK) $(LNK_FLAGS) file $^&. OBJname $^. form raw510 511 512 # ----------------------------------------------------------------------------- 513 # INTERMEDIATE AIR-BOOT.OBJOBJECT MODULE514 # ----------------------------------------------------------------------------- 515 # This is the result of assembling AIR-BOOT.ASM.516 # It is assembled back twice with WDISfor cross reference.495 $(LNK) $(LNK_FLAGS) file $^&.obj name $^. sys dos com 496 # $(LNK) $(LNK_FLAGS) file $^&.obj name $^. form raw 497 498 499 # ----------------------------------------------------------------------------- 500 # INTERMEDIATE 'air-boot.obj' OBJECT MODULE 501 # ----------------------------------------------------------------------------- 502 # This is the result of assembling 'air-boot.asm'. 503 # It is assembled back twice with 'wdis' for cross reference. 517 504 # - once as an (almost) assemblable source-file 518 505 # - once as a disassembly with opcodes in it 519 506 # ----------------------------------------------------------------------------- 520 $(BASENAME). OBJ: .MULTIPLE $(BASENAME).ASM507 $(BASENAME).obj: .MULTIPLE $(BASENAME).asm 521 508 @echo $^.: [16-bits OMF Object File] 522 $(ASM) $(ASM_FLAGS) $(BASENAME). ASM509 $(ASM) $(ASM_FLAGS) $(BASENAME).asm 523 510 !ifndef __MSDOS__ 524 @wdis -fi $^. > $^.. WDA525 !endif 526 @wdis -a -p -fi $^. > $^&. WDA511 @wdis -fi $^. > $^..wda 512 !endif 513 @wdis -a -p -fi $^. > $^&.wda 527 514 528 515 … … 535 522 # DEVELOPER TARGET 536 523 # ----------------------------------------------------------------------------- 537 # This meta-target builds an AIRBOOT.BIN module using the DEV_BLD_LANG setting.538 # It does not change the file-name to correspond to the language,539 # soit can directly be used by the installer.524 # This meta-target builds an 'airboot.bin' module using the DEV_BLD_LANG 525 # setting. It does not change the file-name to correspond to the language,so 526 # it can directly be used by the installer. 540 527 # This is the main target when developing. 541 528 # ----------------------------------------------------------------------------- … … 555 542 @bldlevel $(TARGET) 556 543 @echo. 557 -@type AIRBOOT.MD5 2> nul558 @md5sum $(TARGET) > AIRBOOT.MD5559 @type AIRBOOT.MD5544 -@type airboot.md5 2> nul 545 @md5sum $(TARGET) > airboot.md5 546 @type airboot.md5 560 547 !endif 561 548 !ifdef __LINUX__ 562 549 @echo. 563 @if exist AIR-BOOT.LST @grep ^zzz_code_space AIR-BOOT.LST564 @echo. 565 @cat AIRBOOT.MD5566 @md5sum $(TARGET) > AIRBOOT.MD5567 @cat AIRBOOT.MD5550 @if exist air-boot.lst @grep ^zzz_code_space air-boot.lst 551 @echo. 552 @cat airboot.md5 553 @md5sum $(TARGET) > airboot.md5 554 @cat airboot.md5 568 555 @echo. 569 556 !endif … … 583 570 # @echo CLEANING UP 584 571 @for %%i in ($(TARGET)) do @if exist %%i $(RM) %%i 585 @if exist *. COM $(RM) *.COM586 @if exist *. COM $(RM) *.EXE587 @if exist *. OBJ $(RM) *.OBJ588 @if exist *. WDA $(RM) *.WDA589 @if exist *. NDA $(RM) *.NDA590 @if exist *. MAP $(RM) *.MAP591 @if exist *. LST $(RM) *.LST592 @if exist *. ERR $(RM) *.ERR572 @if exist *.com $(RM) *.com 573 @if exist *.com $(RM) *.exe 574 @if exist *.obj $(RM) *.obj 575 @if exist *.wda $(RM) *.wda 576 @if exist *.nda $(RM) *.nda 577 @if exist *.map $(RM) *.map 578 @if exist *.lst $(RM) *.lst 579 @if exist *.err $(RM) *.err 593 580 @if exist *.o $(RM) *.o 594 581 @%MAKE rmbin 595 582 596 583 # ----------------------------------------------------------------------------- 597 # REMOVE ALL RESIDUAL . BINFILES (old builds)584 # REMOVE ALL RESIDUAL .bin FILES (old builds) 598 585 # ----------------------------------------------------------------------------- 599 586 rmbin: .SYMBOLIC 600 @if exist *. BIN $(RM) *.BIN587 @if exist *.bin $(RM) *.bin 601 588 602 589 … … 604 591 # DISTRIBUTE TO RELEASE SPACE 605 592 # ----------------------------------------------------------------------------- 606 # This distributes all . BIN files to BOOTCODE.607 # Then it installs the English version to RELEASES as AIRBOOT.BIN.593 # This distributes all .bin files to bootcode. 594 # Then it installs the English version to 'release' as 'airboot.bin'. 608 595 # ----------------------------------------------------------------------------- 609 596 dist: .SYMBOLIC 610 @if exist *. BIN $(CP) *.BIN ..$(DS)RELEASE$(DS)BOOTCODE611 @if exist AIRBT-EN.BIN $(CP) AIRBT-EN.BIN ..$(DS)RELEASE$(DS)DOS$(DS)$(TARGET)612 @if exist AIRBT-EN.BIN $(CP) AIRBT-EN.BIN ..$(DS)RELEASE$(DS)WINNT$(DS)$(TARGET)613 @if exist AIRBT-EN.BIN $(CP) AIRBT-EN.BIN ..$(DS)RELEASE$(DS)OS2$(DS)$(TARGET)614 @if exist AIRBT-EN.BIN $(CP) AIRBT-EN.BIN ..$(DS)RELEASE$(DS)LINUX$(DS)$(TARGET)597 @if exist *.bin $(CP) *.bin ..$(DS)release$(DS)bootcode 598 @if exist airbt-en.bin $(CP) airbt-en.bin ..$(DS)release$(DS)dos$(DS)$(TARGET) 599 @if exist airbt-en.bin $(CP) airbt-en.bin ..$(DS)release$(DS)winnt$(DS)$(TARGET) 600 @if exist airbt-en.bin $(CP) airbt-en.bin ..$(DS)release$(DS)os2$(DS)$(TARGET) 601 @if exist airbt-en.bin $(CP) airbt-en.bin ..$(DS)release$(DS)linux$(DS)$(TARGET) 615 602 616 603 … … 626 613 @echo wmake list to show the list of buildable targets 627 614 @echo wmake clean to remove almost all generated files 628 @echo wmake rmbin to remove all residual BINfiles615 @echo wmake rmbin to remove all residual 'bin' files 629 616 @echo wmake rebuild to rebuild all targets 630 617 @echo wmake dist to populate the dist directories
Note:
See TracChangeset
for help on using the changeset viewer.
