From 17cb74bcb4583921abc32ddbe2991f27ae816707 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Karel=20Ko=C4=8D=C3=AD?= Date: Wed, 22 Jul 2015 11:12:24 +0200 Subject: [PATCH] Makefile configuration is now automatically generated and more changes Makefile configuration file is now generated automatically and contains all string config options. Separated tables drop from databaseinit.sql to file databaseclean.sql. Also add clean and init target for database. For this reason is also separated output and result from normal clean. From now on won't be results removed on standard clean. ARCH config variable is renamed to kernel_arch to make name more clear. --- Makefile | 36 ++++++++++++++++++++++++++++-------- conf.py | 10 +++++----- scripts/confmk.py | 13 +++++++------ scripts/databaseclean.sql | 3 +++ scripts/databaseinit.sql | 11 ----------- 5 files changed, 43 insertions(+), 30 deletions(-) create mode 100644 scripts/databaseclean.sql diff --git a/Makefile b/Makefile index e95c742..52eef26 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: all help parse_kconfig write_config build run test clean clean_linux clean_buildroot mlinux mbuildroot deflinux distclean_linux distclean_buildroot distclean picosat init initialize permute_conf +.PHONY: all help parse_kconfig write_config build run test clean clean_db clean_database clean_measure clean_linux clean_buildroot mlinux mbuildroot deflinux distclean_linux distclean_buildroot distclean picosat init initialize initialize_database initdb permute_conf -include .conf.mk @@ -35,18 +35,27 @@ mbuildroot: buildroot/.config buildroot/system/skeleton/usr/bin/linux-conf-perf $(MAKE) -C buildroot menuconfig mlinux: - ARCH=$(ARCH) $(MAKE) -C linux menuconfig + ARCH=$(CONF_KERNEL_ARCH) $(MAKE) -C linux menuconfig deflinux: - ARCH=$(ARCH) $(MAKE) -C linux defconfig + ARCH=$(CONF_KERNEL_ARCH) $(MAKE) -C linux defconfig mpermute_conf: permute_conf - cd linux && SRCARCH=$(ARCH) ARCH=$(ARCH) KERNELVERSION=$(ARCH) ../scripts/permute_conf/permute_conf Kconfig + cd linux && \ + SRCARCH=$(CONF_KERNEL_ARCH) ARCH=$(CONF_KERNEL_ARCH) \ + KERNELVERSION=$(CONF_KERNEL_ARCH) \ + ../scripts/permute_conf/permute_conf Kconfig init: initialize initialize: parse_kconfig picosat scripts/initialize.py +initdb: initialize_database +initialize_database: + echo "$(CONF_DB_HOST):$(CONF_DB_PORT):$(CONF_DB_DATABASE):$(CONF_DB_USER):$(CONF_DB_PASSWORD)" > .pgpass + psql -d "$(CONF_DB_DATABASE)" -h "$(CONF_DB_HOST)" -p "$(CONF_DB_PORT)" -f scripts/databaseinit.sql + $(RM) .pgpass + test: parse_kconfig scripts/test.py @@ -63,7 +72,18 @@ clean: @$(MAKE) -C scripts/allconfig clean @if [ -e scripts/picosat-959/makefile ]; then $(MAKE) -C scripts/picosat-959 clean; fi $(RM) .conf.mk - $(RM) -r jobfiles output result + $(RM) -r jobfiles + +clean_measure: cleandb + $(RM) -r configurations + $(RM) -r output + $(RM) -r result + +cleandb: clean_database +clean_database: + echo "$(CONF_DB_HOST):$(CONF_DB_PORT):$(CONF_DB_DATABASE):$(CONF_DB_USER):$(CONF_DB_PASSWORD)" > .pgpass + psql -d "$(CONF_DB_DATABASE)" -h "$(CONF_DB_HOST)" -p "$(CONF_DB_PORT)" -f scripts/databaseclean.sql + rm -f .pgpass distclean: clean distclean_linux distclean_buildroot $(RM) .conf.mk @@ -98,11 +118,11 @@ permute_conf: @$(MAKE) -C scripts/permute_conf/ buildroot/.config: - cp $(BUILDROOT_DEF_CONFIG) $@ + cp $(CONF_BUILDROOT_DEF_CONFIG) $@ buildroot/system/skeleton/usr/bin/linux-conf-perf: - cp $(BUILDROOT_INITSCRIPT) $@ - cat $(BUILDROOT_INITTAB_DIRECTIVE) >> buildroot/system/skeleton/etc/inittab + cp $(CONF_BUILDROOT_INITSCRIPT) $@ + cat $(CONF_BUILDROOT_INITTAB_DIRECTIVE) >> buildroot/system/skeleton/etc/inittab picosat: scripts/picosat-959/picosat scripts/picosat-959/picosat: diff --git a/conf.py b/conf.py index 3909de7..c383507 100644 --- a/conf.py +++ b/conf.py @@ -1,14 +1,14 @@ import os ## Global configs -# ARCH -# This defines environment variable for linux kernel. +# kernel_arch +# This defines environment variable ARCH for linux kernel. # Change this to change target architecture -ARCH = 'x86' +kernel_arch = 'x86' # kernle_env # Enviroment variables for Linux -kernel_env = {'SRCARCH': ARCH, 'ARCH': ARCH, 'KERNELVERSION': ARCH} +kernel_env = {'SRCARCH': kernel_arch, 'ARCH': kernel_arch, 'KERNELVERSION': kernel_arch} # linux_make_args # These are arguments passed to make when linux is build. linux_make_args = ['-j8'] @@ -78,7 +78,7 @@ dot_config = 'dot_config' linux_sources = 'linux/' linux_kconfig_head = linux_sources + 'Kconfig' linux_dot_config = linux_sources + '.config' -linux_image = linux_sources + 'arch/' + ARCH + '/boot/bzImage' +linux_image = linux_sources + 'arch/' + kernel_arch + '/boot/bzImage' buildroot_def_config = 'buildroot_recipe/buildroot.def.config' buildroot_inittab_directive = 'buildroot_recipe/inittab_directive' diff --git a/scripts/confmk.py b/scripts/confmk.py index b8a1e6c..3a59510 100755 --- a/scripts/confmk.py +++ b/scripts/confmk.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 import os import sys +import re from conf import conf def gen_confmk(): @@ -11,12 +12,12 @@ def gen_confmk(): with open(conf.dot_confmk, 'w') as f: f.write("# This file is generated. Please don't edit this file.\n") - f.write("ARCH := " + conf.ARCH + "\n") - f.write("\n") - f.write("BUILDROOT_INITRAM := " + conf.buildroot_initram + "\n") - f.write("BUILDROOT_INITTAB_DIRECTIVE := " + conf.buildroot_inittab_directive + "\n") - f.write("BUILDROOT_INITSCRIPT := " + conf.buildroot_initscript + "\n") - f.write("BUILDROOT_DEF_CONFIG := " + conf.buildroot_def_config + "\n") + for var in dir(conf): + if not re.match('__.*__', var): + val = eval('conf.' + var) + if type(val) is str: + f.write("CONF_" + var.upper() + " := ") + f.write(val + '\n') ################################################################################# diff --git a/scripts/databaseclean.sql b/scripts/databaseclean.sql new file mode 100644 index 0000000..0eb3193 --- /dev/null +++ b/scripts/databaseclean.sql @@ -0,0 +1,3 @@ +DROP TABLE IF EXISTS measure; +DROP TABLE IF EXISTS configurations; +DROP TABLE IF EXISTS toolsgit; diff --git a/scripts/databaseinit.sql b/scripts/databaseinit.sql index 95702fb..eee51fa 100644 --- a/scripts/databaseinit.sql +++ b/scripts/databaseinit.sql @@ -1,14 +1,3 @@ --- --- Drop all tables --- -DROP TABLE IF EXISTS measure; -DROP TABLE IF EXISTS configurations; -DROP TABLE IF EXISTS toolsgit; - --- --- Initialize database --- - -- In this table are tracked versions of tools in git CREATE TABLE toolsgit ( id BIGSERIAL PRIMARY KEY, -- Id -- 2.39.2