Now we are looking for the mainboard Makefile!

git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@14 f3766cd6-281f-0410-b1cd-43a5c92072e9
This commit is contained in:
Ronald G. Minnich 2006-10-09 03:00:28 +00:00
parent 0779053768
commit f9779f8be4
4 changed files with 25 additions and 28 deletions

View file

@ -380,16 +380,16 @@ include .config
# To avoid any implicit rule to kick in, define an empty command
.config .kconfig.d: ;
# If .config is newer than include/linux/autoconf.h, someone tinkered
# If .config is newer than include/linuxbios/autoconf.h, someone tinkered
# with it and forgot to run make oldconfig.
# If kconfig.d is missing then we are probarly in a cleaned tree so
# we execute the config step to be sure to catch updated Kconfig files
include/linux/autoconf.h: .kconfig.d .config
include/linuxbios/autoconf.h: .kconfig.d .config
$(Q)mkdir -p include/linux
$(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig
else
# Dummy target needed, because used as prerequisite
include/linux/autoconf.h: ;
include/linuxbios/autoconf.h: ;
endif
# The all: target is the default when no target is given on the
@ -563,7 +563,7 @@ $(linuxbios-dirs): prepare scripts
$(Q)$(MAKE) $(build)=$@
# Build the kernel release string
# The LINUXBIOSRELEASE is stored in a file named .kernelrelease
# The LINUXBIOSRELEASE is stored in a file named .linuxbiosrelease
# to be used when executing for example make install or make modules_install
#
# Take the contents of any files called localversion* and the config
@ -607,7 +607,7 @@ linuxbiosrelease = $(LINUXBIOSVERSION)$(localver-full)
# Things we need to do before we recursively start building the kernel
# or the modules are listed in "prepare".
# A multi level approach is used. prepareN is processed before prepareN-1.
# archprepare is used in arch Makefiles and when processed asm symlink,
# archprepare is used in arch Makefiles and when processed
# version.h and scripts_basic is processed / created.
# Listed in dependency order
@ -619,8 +619,7 @@ PHONY += prepare-all
# prepare3 is used to check if we are building in a separate output directory,
# and if so do:
# 1) Check that make has not been executed in the kernel src $(srctree)
# 2) Create the include2 directory, used for the second asm symlink
prepare3: .kernelrelease
prepare3: .linuxbiosrelease
ifneq ($(LBBUILD_SRC),)
@echo ' Using $(srctree) as source for kernel'
$(Q)if [ -f $(srctree)/.config ]; then \
@ -628,14 +627,12 @@ ifneq ($(LBBUILD_SRC),)
echo " in the '$(srctree)' directory.";\
/bin/false; \
fi;
$(Q)if [ ! -d include2 ]; then mkdir -p include2; fi;
$(Q)ln -fsn $(srctree)/include/asm-$(ARCH) include2/asm
endif
# prepare2 creates a makefile if using a separate output directory
prepare2: prepare3 outputmakefile
prepare1: prepare2 include/linux/version.h include/asm \
prepare1: prepare2 include/linuxbios/version.h\
include/config/MARKER
ifneq ($(LBBUILD_MODULES),)
$(Q)mkdir -p $(MODVERDIR)
@ -651,11 +648,11 @@ prepare prepare-all: prepare1
export CPPFLAGS_linuxbios.lds += -P -C -U$(ARCH)
# Split autoconf.h into include/linux/config/*
# Split autoconf.h into include/linuxbios/config/*
include/config/MARKER: scripts/basic/split-include include/linux/autoconf.h
@echo ' SPLIT include/linux/autoconf.h -> include/config/*'
@scripts/basic/split-include include/linux/autoconf.h include/config
include/config/MARKER: scripts/basic/split-include include/linuxbios/autoconf.h
@echo ' SPLIT include/linuxbios/autoconf.h -> include/config/*'
@scripts/basic/split-include include/linuxbios/autoconf.h include/config
@touch $@
# Generate some files
@ -671,13 +668,13 @@ define filechk_version.h
echo '"$(LINUXBIOSRELEASE)" exceeds $(uts_len) characters' >&2; \
exit 1; \
fi; \
(echo \#define UTS_RELEASE \"$(LINUXBIOSRELEASE)\"; \
(echo \#define LINUXBIOS_RELEASE \"$(LINUXBIOSRELEASE)\"; \
echo \#define LINUX_VERSION_CODE `expr $(VERSION) \\* 65536 + $(PATCHLEVEL) \\* 256 + $(SUBLEVEL)`; \
echo '#define LINUXBIOS_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'; \
)
endef
include/linuxbios/version.h: $(srctree)/Makefile .config .kernelrelease FORCE
include/linuxbios/version.h: $(srctree)/Makefile .config .linuxbiosrelease FORCE
$(call filechk,version.h)
# ---------------------------------------------------------------------------
@ -701,9 +698,9 @@ CLEAN_FILES += linuxbios.rom System.map \
# Directories & files removed with 'make mrproper'
MRPROPER_DIRS += include/config
MRPROPER_FILES += .config .config.old include/asm .version .old_version \
include/linux/autoconf.h include/linux/version.h \
.kernelrelease Module.symvers tags TAGS cscope*
MRPROPER_FILES += .config .config.old .old_version \
include/linuxbios/autoconf.h include/linuxbios/version.h \
.linuxbiosrelease Module.symvers tags TAGS cscope*
# clean - Delete most, but leave enough to build external modules
#
@ -786,7 +783,7 @@ help:
@echo ' rpm - Build a kernel as an RPM package'
@echo ' tags/TAGS - Generate tags file for editors'
@echo ' cscope - Generate cscope index'
@echo ' kernelrelease - Output the release version string'
@echo ' linuxbiosrelease - Output the release version string'
@echo ' kernelversion - Output the version stored in Makefile'
@echo ''
@echo 'Static analysers'

View file

@ -17,15 +17,15 @@
*
* To use this list as-is however has the drawback that virtually
* every file in the kernel includes <linux/config.h> which then again
* includes <linux/autoconf.h>
* includes <linuxbios/autoconf.h>
*
* If the user re-runs make *config, linux/autoconf.h will be
* If the user re-runs make *config, linuxbios/autoconf.h will be
* regenerated. make notices that and will rebuild every file which
* includes autoconf.h, i.e. basically all files. This is extremely
* annoying if the user just changed CONFIG_HIS_DRIVER from n to m.
*
* So we play the same trick that "mkdep" played before. We replace
* the dependency on linux/autoconf.h by a dependency on every config
* the dependency on linuxbios/autoconf.h by a dependency on every config
* option which is mentioned in any of the listed prequisites.
*
* To be exact, split-include populates a tree in include/config/,
@ -72,7 +72,7 @@
* cmd_<target> = <cmdline>
*
* and then basically copies the .<target>.d file to stdout, in the
* process filtering out the dependency on linux/autoconf.h and adding
* process filtering out the dependency on linuxbios/autoconf.h and adding
* dependencies on include/config/my/option.h for every
* CONFIG_MY_OPTION encountered in any of the prequisites.
*
@ -97,7 +97,7 @@
* Note 2: if somebody writes HELLO_CONFIG_BOOM in a file, it will depend onto
* CONFIG_BOOM. This could seem a bug (not too hard to fix), but please do not
* fix it! Some UserModeLinux files (look at arch/um/) call CONFIG_BOOM as
* UML_CONFIG_BOOM, to avoid conflicts with /usr/include/linux/autoconf.h,
* UML_CONFIG_BOOM, to avoid conflicts with /usr/include/linuxbios/autoconf.h,
* through arch/um/include/uml-config.h; this fixdep "bug" makes sure that
* those files will have correct dependencies.
*/
@ -320,7 +320,7 @@ void parse_dep_file(void *map, size_t len)
p++;
}
memcpy(s, m, p-m); s[p-m] = 0;
if (strrcmp(s, "include/linux/autoconf.h") &&
if (strrcmp(s, "include/linuxbios/autoconf.h") &&
strrcmp(s, "arch/um/include/uml-config.h") &&
strrcmp(s, ".ver")) {
printf(" %s \\\n", s);

View file

@ -512,7 +512,7 @@ int conf_write(const char *name)
fclose(out);
if (out_h) {
fclose(out_h);
rename(".tmpconfig.h", "include/linux/autoconf.h");
rename(".tmpconfig.h", "include/linuxbios/autoconf.h");
}
if (!name || basename != conf_def_filename) {
if (!name)

View file

@ -44,7 +44,7 @@ int file_write_dep(const char *name)
else
fprintf(out, "\t%s\n", file->name);
}
fprintf(out, "\n.config include/linux/autoconf.h: $(deps_config)\n\n$(deps_config):\n");
fprintf(out, "\n.config include/linuxbios/autoconf.h: $(deps_config)\n\n$(deps_config):\n");
fclose(out);
rename("..config.tmp", name);
return 0;