import os
+import sys
+import re
+import importlib.machinery
## Global configs
# kernel_arch
# This defines environment variable ARCH for linux kernel.
# Change this to change target architecture
-kernel_arch = 'powerpc'
+kernel_arch = 'x86'
# kernle_env
# Enviroment variables for Linux
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']
# build_command
# Command executed for kernel build in linux folder.
-build_command = ['../build_script']
-
-# novaboot_args
-# These are arguments passed to Novaboot,
-# but only if you don't remove it from boot_command.
-novaboot_args = ['--qemu=qemu-system-x86_64']
-# nbscript
-# This variable is path to Novaboot script.
-nbscript = 'scripts/nbscript'
+build_command = ['make']
+
# boot_command
# Command executed for booting. Output of this command is saved to output folder.
-boot_command = ['./boot_script']
+boot_command = ['echo', 'bootit']
+# boot_timeout
+# Set timeout of boot process if no output is generated for selected seconds
+boot_timeout = 120
# parse_command
# Command to parse double value from boot output
-parse_command = ['./parse_script']
+parse_command = ['echo', '0']
# measurement_identifier
# Identifier of measurement can consist of measure tool name and version
db_database = 'linux-conf-perf'
# db_user
# Define PostgreSQL user
-db_user = 'kocikare'
+db_user = 'user'
# db_password
# Define PostrgreSQL user password
-db_password = 'ohNg3Ien'
+db_password = 'password'
# db_host
# Address of PostgreSQL database server
db_host = 'localhost'
# multithread
# Define if measurement and kernel build should be executed in parallel.
-multithread = True
+multithread = False
# multithread_buffer
# Defines maximal number of buffered configurations before generating is suspended.
multithread_buffer = 32
# What ever are these settings, output is always written to files in folder log.
parse_kconfig_output = False
picosat_output = False
-kernel_config_output = False
-kernel_make_output = False
-boot_output = False
+kernel_config_output = True
+kernel_make_output = True
+boot_output = True
parse_output = False
## Configs for debugging
linux_sources = 'linux/'
linux_kconfig_head = linux_sources + 'Kconfig'
linux_dot_config = linux_sources + '.config'
-linux_image = linux_sources + 'arch/' + kernel_arch + '/boot/uImage'
-
-buildroot_def_config = 'buildroot_recipe/buildroot.def.config'
-buildroot_inittab_directive = 'buildroot_recipe/inittab_directive'
-buildroot_initscript = 'scripts/buildroot_recipe/linux-conf-perf'
-buildroot_initram = 'buildroot/output/images/rootfs.cpio.gz'
+linux_image = linux_sources + 'arch/' + kernel_arch + '/boot/bzImage'
build_folder = 'jobfiles/'
jobfolder_linux_image = build_folder + 'linuxImage'
dot_config_back_file = build_folder + 'dot_config_back'
single_generated_file = build_folder + 'single_generated'
-configurations_folder = 'configurations/'
-hashconfigsort = configurations_folder + 'hashconfigsort'
-
-output_folder = 'output/'
result_folder = 'result/'
log_folder = 'log/'
picosat = 'scripts/picosat-959/picosat'
allconfig = 'scripts/allconfig/allconfig'
-
+#######################################
absroot = os.path.dirname(os.path.realpath(__file__))
+
+#######################################
+# Overlap configuration for specified target
+if os.path.isfile(os.path.join(absroot, '.target')):
+ target = None
+ with open(os.path.join(absroot, '.target'), 'r') as f:
+ target = f.readline().rstrip()
+ conffile = os.path.join(absroot, 'targets', target, 'conf.py')
+ if os.path.isfile(conffile):
+ ovconf = importlib.machinery.SourceFileLoader("module.name", conffile).load_module()
+ for name in dir(ovconf):
+ if not re.match('__*__', name):
+ vars()[name] = vars(ovconf)[name]
+ else:
+ print("E: Invalid target specifier. Write valid target to .target file.")
+ sys.exit(-99)
+else:
+ print("E: No target specifier. Write target to .target file.")
+ sys.exit(-99)