source: xtideuniversalbios/trunk/XTIDE_Universal_BIOS/makefile@ 186

Last change on this file since 186 was 186, checked in by gregli@…, 13 years ago

Initial string compression checkin. All changes are under MODULE_STRINGS_COMPRESSED, and this can still be turned off. With this checkin, the serial and ebios code can both be turned on at the same time and still we remain below the 8K boundary (barely). I still need to chekin StringsCompress.pl after some more code cleanup. The output, in StringsCompressed.asm is checked in here, and should continue be to checkin when Strings.asm is changed, for those who do not have/want to run the Perl script to recreate it.

File size: 4.9 KB
Line 
1###############################################################################
2# Generic makefile for building BIOS binary file. #
3# v. 1.0.0 (28.7.2007 ... 28.7.2007) #
4# (C) Tomi Tilli #
5# aitotat@gmail.com #
6# #
7# Valid makefile targets are: #
8# all Removes existing files and builds binary file in \Build #
9# build Builds binary file in \Build #
10# clean Removes all files from \Build #
11# #
12# Build directory must be created manually if it does not exist. #
13# #
14###############################################################################
15
16###########################################
17# Source files and destination executable #
18###########################################
19
20# Assembly source code file (*.asm):
21SRC_ASM = Src/Main.asm
22
23# Program executable file name without extension:
24PROG = ide
25
26
27#######################################
28# Destination and include directories #
29#######################################
30
31# Directory where binary file will be compiled to
32BUILD_DIR = Build
33
34# Subdirectories where included files are:
35HEADERS = Inc/
36HEADERS += Src/
37HEADERS += Src/Boot/
38HEADERS += Src/Handlers/
39HEADERS += Src/Handlers/Int13h/
40HEADERS += Src/Handlers/Int13h/EBIOS/
41HEADERS += Src/Handlers/Int13h/Tools/
42HEADERS += Src/Device/
43HEADERS += Src/Device/IDE/
44HEADERS += Src/Device/Serial/
45HEADERS += Src/Initialization/
46HEADERS += Src/Libraries/
47HEADERS += Src/VariablesAndDPTs/
48
49# Subdirectories where library files are:
50LIBS = ../Assembly_Library/Inc/
51LIBS += ../Assembly_Library/Src/
52LIBS += ../Assembly_Library/Src/Display/
53LIBS += ../Assembly_Library/Src/File/
54LIBS += ../Assembly_Library/Src/Keyboard/
55LIBS += ../Assembly_Library/Src/Menu/
56LIBS += ../Assembly_Library/Src/Menu/Dialog/
57LIBS += ../Assembly_Library/Src/String/
58LIBS += ../Assembly_Library/Src/Time/
59LIBS += ../Assembly_Library/Src/Util/
60LIBS += ../XTIDE_Universal_BIOS/Inc/
61HEADERS += $(LIBS)
62
63
64#################################################################
65# Assembler preprocessor defines. #
66#################################################################
67DEFINES = INCLUDE_MENU_LIBRARY EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS MODULE_EBIOS MODULE_SERIAL MODULE_STRINGS_COMPRESSED
68DEFINES_XT = ELIMINATE_CGA_SNOW
69DEFINES_XTPLUS = ELIMINATE_CGA_SNOW USE_186
70DEFINES_AT = USE_186 USE_286 USE_AT
71
72
73###################
74# Other variables #
75###################
76
77# Add -D in front of every preprocessor define declaration
78DEFS = $(DEFINES:%=-D%)
79DEFS_XT = $(DEFINES_XT:%=-D%)
80DEFS_XTPLUS = $(DEFINES_XTPLUS:%=-D%)
81DEFS_AT = $(DEFINES_AT:%=-D%)
82
83# Add -I in front of all header directories
84IHEADERS = $(HEADERS:%=-I%)
85
86# Path + target file to be built
87TARGET = $(BUILD_DIR)/$(PROG)
88
89
90#########################
91# Compilers and linkers #
92#########################
93
94# Make
95MAKE = mingw32-make.exe
96
97# Assembler
98AS = nasm.exe
99
100# use this command to erase files.
101RM = -del /Q
102
103
104#############################
105# Compiler and linker flags #
106#############################
107
108# Assembly compiler flags
109ASFLAGS = -f bin # Produce binary object files
110ASFLAGS += $(DEFS) # Preprocessor defines
111ASFLAGS += $(IHEADERS) # Set header file directory paths
112ASFLAGS += -Worphan-labels # Warn about labels without colon
113ASFLAGS += -O9 # Optimize operands to their shortest forms
114
115
116############################################
117# Build process. Actual work is done here. #
118############################################
119
120.PHONY: all at xtplus xt clean
121
122# Make clean debug and release versions
123all: clean at xtplus xt
124 @echo All done!
125
126at:
127 @$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_AT) -l"$(TARGET)_at.lst" -o"$(TARGET)_at.bin"
128 @echo AT version "$(TARGET)_at.bin" built.
129
130xtplus:
131 @$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_XTPLUS) -l"$(TARGET)_xtp.lst" -o"$(TARGET)_xtp.bin"
132 @echo XT plus version "$(TARGET)_xtp.bin" built.
133
134xt:
135 @$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_XT) -l"$(TARGET)_xt.lst" -o"$(TARGET)_xt.bin"
136 @echo XT version "$(TARGET)_xt.bin" built.
137
138clean:
139 @$(RM) $(BUILD_DIR)\*.*
140 @echo Deleted "(*.*)" from "$(BUILD_DIR)/"
141
142src\StringsCompressed.asm: src\Strings.asm src\StringsCompress.pl
143 $(AS) src\Strings.asm $(ASFLAGS) $(DEFS_XT) -DMODULE_STRINGS_COMPRESSED_PRECOMPRESS -o build\Strings.bin -l build\StringsPrecompress.lst
144 perl src\StringsCompress.pl < build\StringsPrecompress.lst > src\StringsCompressed.asm
145
146$(SRC_ASM): src\StringsCompressed.asm
Note: See TracBrowser for help on using the repository browser.