47
48 LINTS = $(SPECIAL_OBJS:%.o=$(LINTS_DIR)/%.ln) \
49 $(CORE_OBJS:%.o=$(LINTS_DIR)/%.ln) \
50 $(KRTLD_OBJS:%.o=$(LINTS_DIR)/%.ln) \
51 $(MACH_NOT_YET_KMODS:%.o=$(LINTS_DIR)/%.ln) \
52 $(LINTS_DIR)/vers.ln \
53 $(LINTS_DIR)/modstubs.ln
54
55 ROOTMODULE = $(ROOT_PSM_KERN_DIR)/$(UNIX)
56 ROOT_MULTIBOOT = $(ROOT_PSM_DIR)/$(MULTIBOOT)
57
58 UNIX_BIN = $(OBJS_DIR)/$(UNIX)
59
60 LIBS = $(GENLIB)
61
62 GENUNIX = genunix
63 GENUNIX_DIR = ../../intel/$(GENUNIX)
64
65 LIBOPTS = -L $(GENUNIX_DIR)/$(OBJS_DIR) -l $(GENUNIX)
66
67 CTFEXTRAOBJS = $(OBJS_DIR)/vers.o
68
69 DBOOT_OBJS_DIR = dboot/$(OBJS_DIR)
70 DBOOT_OBJECTS = $(DBOOT_OBJS:%=$(DBOOT_OBJS_DIR)/%)
71 DBOOT_BIN = $(DBOOT_OBJS_DIR)/$(DBOOT)
72 DBOOT_O = $(OBJS_DIR)/$(DBOOT).o
73 DBOOT_S = $(DBOOT_O:%.o=%.s)
74 DBOOT_LINTS = $(DBOOT_OBJS:%.o=$(DBOOT_OBJS_DIR)/%.ln)
75 DBOOT_LINT = $(i386_LINT)
76 DBOOT_LINTTAGS = -erroff=E_STATIC_UNUSED
77
78 #
79 # Include common rules.
80 #
81 include $(UTSBASE)/i86pc/Makefile.i86pc
82
83 #
84 # Define targets
85 #
86 ALL_TARGET = $(UNIX_BIN) $(MULTIBOOT)
87 LINT_TARGET = $(LINT_LIB) $(DBOOT_LINT_LIB)
88 INSTALL_TARGET = $(UNIX_BIN) $(MULTIBOOT) $(ROOTMODULE) $(ROOT_MULTIBOOT)
89
90 #
91 # This is UNIX_DIR. Use a short path.
92 #
93 UNIX_DIR = .
94
95 #
96 # Overrides
97 #
98 CLEANFILES += \
99 $(UNIX_O) $(MODSTUBS_O) \
100 $(OBJS_DIR)/vers.c $(OBJS_DIR)/vers.o \
101 $(OBJS_DIR)/dtracestubs.s \
102 $(DTRACESTUBS_O) $(DTRACESTUBS)
103
104 CLEANFILES += \
105 $(DBOOT_O) $(DBOOT_S) \
106 $(DBOOT_OBJECTS) \
107 $(OBJS_DIR)/bios_call_src.o \
108 $(OBJS_DIR)/bios_call_src \
109 $(OBJS_DIR)/bios_call.s \
110 $(DBOOT_BIN)
111
112 CLEANFILES += \
113 $(OBJS_DIR)/fb_swtch_src.o \
114 $(OBJS_DIR)/fb_swtch_src \
115 $(OBJS_DIR)/fb_swtch.s
116
117 CLEANFILES += \
118 $(ZLIB_OBJS:%.o=$(OBJS_DIR)/%.o) \
119 $(ZLIB_OBJS:%.o=$(OBJS_DIR)/%.ln)
120
121 CLOBBERFILES = $(CLEANFILES) $(UNIX_BIN) $(MULTIBOOT)
122 CLEANLINTFILES += $(LINT_LIB) $(DBOOT_LINT_LIB) $(DBOOT_LINTS)
171 lint: $(LINT_DEPS)
172
173 clean.lint: $(CLEAN_LINT_DEPS)
174
175 install: $(INSTALL_DEPS)
176
177 MAPFILE_32 = $(MAPFILE)
178 MAPFILE_64 = $(MAPFILE).amd64
179
180 MAPFILE_NAME = $(MAPFILE_$(CLASS))
181
182 $(UNIX_BIN): $(UNIX_O) $(MODSTUBS_O) $(MAPFILE_NAME) \
183 $(GENLIB) $(DTRACESTUBS) $(DBOOT_O)
184 $(LD) -dy -b -o $@ -e dboot_image -znointerp -M $(MAPFILE_NAME) \
185 $(UNIX_O) $(DBOOT_O) $(MODSTUBS_O) $(LIBOPTS) \
186 $(DTRACESTUBS)
187 $(MBH_PATCH) $(UNIX_BIN)
188 $(CTFMERGE_UNIQUIFY_AGAINST_GENUNIX)
189 $(POST_PROCESS)
190
191 $(UNIX_O): $(OBJECTS) $(OBJS_DIR)/vers.o
192 $(LD) -r -o $@ $(OBJECTS) $(OBJS_DIR)/vers.o
193
194 $(DBOOT_BIN): $(DBOOT_OBJS_DIR) $(DBOOT_OBJECTS) dboot/Mapfile.dboot
195 $(LD) -dn -e _start -M dboot/Mapfile.dboot \
196 -o $(DBOOT_BIN) $(DBOOT_OBJECTS)
197
198 $(DBOOT_O): $(DBOOT_BIN)
199 @echo " .data" > $(DBOOT_S)
200 @echo " .globl dboot_image" >> $(DBOOT_S)
201 @echo "dboot_image:" >> $(DBOOT_S)
202 $(ELFEXTRACT) $(DBOOT_BIN) >> $(DBOOT_S)
203 $(COMPILE.s) -o $(DBOOT_O) $(DBOOT_S)
204
205 $(DBOOT_OBJS_DIR):
206 -@mkdir -p $@ 2> /dev/null
207
208 #
209 # dboot is built as an intermediate target in dboot.o, so just make
210 # dboot.o the dependency here.
211 #
212 $(MULTIBOOT): $(DBOOT_O)
213 $(CP) $(DBOOT_BIN) $(MULTIBOOT)
214 $(POST_PROCESS)
215
216 #
217 # Special rules for generating assym.h for inclusion in assembly files.
218 #
219 $(DSF_DIR)/$(OBJS_DIR)/assym.h $(DSF_DIR)/$(OBJS_DIR)/kdi_assym.h: FRC
220 @cd $(DSF_DIR); $(MAKE) all.targ
221
222 #
223 # The global lint target builds the kernel lint library (llib-lunix.ln)
224 # which is equivalent to a lint of /unix.o. Then all kernel modules for
225 # this architecture are linted against the kernel lint library.
226 #
227 # Note: lint errors in the kernel lint library will be repeated for
|
47
48 LINTS = $(SPECIAL_OBJS:%.o=$(LINTS_DIR)/%.ln) \
49 $(CORE_OBJS:%.o=$(LINTS_DIR)/%.ln) \
50 $(KRTLD_OBJS:%.o=$(LINTS_DIR)/%.ln) \
51 $(MACH_NOT_YET_KMODS:%.o=$(LINTS_DIR)/%.ln) \
52 $(LINTS_DIR)/vers.ln \
53 $(LINTS_DIR)/modstubs.ln
54
55 ROOTMODULE = $(ROOT_PSM_KERN_DIR)/$(UNIX)
56 ROOT_MULTIBOOT = $(ROOT_PSM_DIR)/$(MULTIBOOT)
57
58 UNIX_BIN = $(OBJS_DIR)/$(UNIX)
59
60 LIBS = $(GENLIB)
61
62 GENUNIX = genunix
63 GENUNIX_DIR = ../../intel/$(GENUNIX)
64
65 LIBOPTS = -L $(GENUNIX_DIR)/$(OBJS_DIR) -l $(GENUNIX)
66
67 CTFEXTRAOBJS = $(OBJS_DIR)/vers.o $(OBJS_DIR)/comm_page_ctf.o
68
69 DBOOT_OBJS_DIR = dboot/$(OBJS_DIR)
70 DBOOT_OBJECTS = $(DBOOT_OBJS:%=$(DBOOT_OBJS_DIR)/%)
71 DBOOT_BIN = $(DBOOT_OBJS_DIR)/$(DBOOT)
72 DBOOT_O = $(OBJS_DIR)/$(DBOOT).o
73 DBOOT_S = $(DBOOT_O:%.o=%.s)
74 DBOOT_LINTS = $(DBOOT_OBJS:%.o=$(DBOOT_OBJS_DIR)/%.ln)
75 DBOOT_LINT = $(i386_LINT)
76 DBOOT_LINTTAGS = -erroff=E_STATIC_UNUSED
77
78 #
79 # Include common rules.
80 #
81 include $(UTSBASE)/i86pc/Makefile.i86pc
82
83 #
84 # Define targets
85 #
86 ALL_TARGET = $(UNIX_BIN) $(MULTIBOOT)
87 LINT_TARGET = $(LINT_LIB) $(DBOOT_LINT_LIB)
88 INSTALL_TARGET = $(UNIX_BIN) $(MULTIBOOT) $(ROOTMODULE) $(ROOT_MULTIBOOT)
89
90 #
91 # This is UNIX_DIR. Use a short path.
92 #
93 UNIX_DIR = .
94
95 #
96 # Overrides
97 #
98 CLEANFILES += \
99 $(UNIX_O) $(MODSTUBS_O) \
100 $(OBJS_DIR)/vers.c \
101 $(OBJS_DIR)/dtracestubs.s \
102 $(DTRACESTUBS_O) $(DTRACESTUBS) \
103 $(CTFEXTRAOBJS)
104
105 CLEANFILES += \
106 $(DBOOT_O) $(DBOOT_S) \
107 $(DBOOT_OBJECTS) \
108 $(OBJS_DIR)/bios_call_src.o \
109 $(OBJS_DIR)/bios_call_src \
110 $(OBJS_DIR)/bios_call.s \
111 $(DBOOT_BIN)
112
113 CLEANFILES += \
114 $(OBJS_DIR)/fb_swtch_src.o \
115 $(OBJS_DIR)/fb_swtch_src \
116 $(OBJS_DIR)/fb_swtch.s
117
118 CLEANFILES += \
119 $(ZLIB_OBJS:%.o=$(OBJS_DIR)/%.o) \
120 $(ZLIB_OBJS:%.o=$(OBJS_DIR)/%.ln)
121
122 CLOBBERFILES = $(CLEANFILES) $(UNIX_BIN) $(MULTIBOOT)
123 CLEANLINTFILES += $(LINT_LIB) $(DBOOT_LINT_LIB) $(DBOOT_LINTS)
172 lint: $(LINT_DEPS)
173
174 clean.lint: $(CLEAN_LINT_DEPS)
175
176 install: $(INSTALL_DEPS)
177
178 MAPFILE_32 = $(MAPFILE)
179 MAPFILE_64 = $(MAPFILE).amd64
180
181 MAPFILE_NAME = $(MAPFILE_$(CLASS))
182
183 $(UNIX_BIN): $(UNIX_O) $(MODSTUBS_O) $(MAPFILE_NAME) \
184 $(GENLIB) $(DTRACESTUBS) $(DBOOT_O)
185 $(LD) -dy -b -o $@ -e dboot_image -znointerp -M $(MAPFILE_NAME) \
186 $(UNIX_O) $(DBOOT_O) $(MODSTUBS_O) $(LIBOPTS) \
187 $(DTRACESTUBS)
188 $(MBH_PATCH) $(UNIX_BIN)
189 $(CTFMERGE_UNIQUIFY_AGAINST_GENUNIX)
190 $(POST_PROCESS)
191
192 $(UNIX_O): $(OBJECTS) $(CTFEXTRAOBJS)
193 $(LD) -r -o $@ $(OBJECTS) $(OBJS_DIR)/vers.o
194
195 $(DBOOT_BIN): $(DBOOT_OBJS_DIR) $(DBOOT_OBJECTS) dboot/Mapfile.dboot
196 $(LD) -dn -e _start -M dboot/Mapfile.dboot \
197 -o $(DBOOT_BIN) $(DBOOT_OBJECTS)
198
199 $(DBOOT_O): $(DBOOT_BIN)
200 @echo " .data" > $(DBOOT_S)
201 @echo " .globl dboot_image" >> $(DBOOT_S)
202 @echo "dboot_image:" >> $(DBOOT_S)
203 $(ELFEXTRACT) $(DBOOT_BIN) >> $(DBOOT_S)
204 $(COMPILE.s) -o $(DBOOT_O) $(DBOOT_S)
205
206 $(DBOOT_OBJS_DIR):
207 -@mkdir -p $@ 2> /dev/null
208
209 $(OBJS_DIR)/comm_page_ctf.o: $(UTSBASE)/i86pc/ml/comm_page.s
210 $(COMPILE.c) -_gcc=-xc -D_GENCTF -o $@ $(UTSBASE)/i86pc/ml/comm_page.s
211 $(CTFCONVERT_O)
212
213 #
214 # dboot is built as an intermediate target in dboot.o, so just make
215 # dboot.o the dependency here.
216 #
217 $(MULTIBOOT): $(DBOOT_O)
218 $(CP) $(DBOOT_BIN) $(MULTIBOOT)
219 $(POST_PROCESS)
220
221 #
222 # Special rules for generating assym.h for inclusion in assembly files.
223 #
224 $(DSF_DIR)/$(OBJS_DIR)/assym.h $(DSF_DIR)/$(OBJS_DIR)/kdi_assym.h: FRC
225 @cd $(DSF_DIR); $(MAKE) all.targ
226
227 #
228 # The global lint target builds the kernel lint library (llib-lunix.ln)
229 # which is equivalent to a lint of /unix.o. Then all kernel modules for
230 # this architecture are linted against the kernel lint library.
231 #
232 # Note: lint errors in the kernel lint library will be repeated for
|