kconfig/nconf.h
author Michael Hope <michael.hope@linaro.org>
Thu Sep 29 12:40:42 2011 +1300 (2011-09-29)
changeset 2695 f2495884ca3e
permissions -rw-r--r--
config: add a 'auto' value for the number of parallel jobs

When CT_PARALLEL_JOBS is -1, set the number of parallel jobs to the
number of online CPUs + 1. Update documentation to match.

I find this useful when building in the cloud. You can use the same
.config file and have the build adapt to the number of processors
available. Limited testing shows that NCPUS+1 is faster than NCPUS+0
or NCPUS+2.

Signed-off-by: Michael Hope <michael.hope@linaro.org>
     1 /*
     2  * Copyright (C) 2008 Nir Tzachar <nir.tzachar@gmail.com?
     3  * Released under the terms of the GNU GPL v2.0.
     4  *
     5  * Derived from menuconfig.
     6  *
     7  */
     8 
     9 #include <ctype.h>
    10 #include <errno.h>
    11 #include <fcntl.h>
    12 #include <limits.h>
    13 #include <stdarg.h>
    14 #include <stdlib.h>
    15 #include <string.h>
    16 #include <unistd.h>
    17 #include <locale.h>
    18 #include <curses.h>
    19 #include <menu.h>
    20 #include <panel.h>
    21 #include <form.h>
    22 
    23 #include <stdio.h>
    24 #include <time.h>
    25 #include <sys/time.h>
    26 
    27 #include "ncurses.h"
    28 
    29 #define max(a, b) ({\
    30 		typeof(a) _a = a;\
    31 		typeof(b) _b = b;\
    32 		_a > _b ? _a : _b; })
    33 
    34 #define min(a, b) ({\
    35 		typeof(a) _a = a;\
    36 		typeof(b) _b = b;\
    37 		_a < _b ? _a : _b; })
    38 
    39 typedef enum {
    40 	NORMAL = 1,
    41 	MAIN_HEADING,
    42 	MAIN_MENU_BOX,
    43 	MAIN_MENU_FORE,
    44 	MAIN_MENU_BACK,
    45 	MAIN_MENU_GREY,
    46 	MAIN_MENU_HEADING,
    47 	SCROLLWIN_TEXT,
    48 	SCROLLWIN_HEADING,
    49 	SCROLLWIN_BOX,
    50 	DIALOG_TEXT,
    51 	DIALOG_MENU_FORE,
    52 	DIALOG_MENU_BACK,
    53 	DIALOG_BOX,
    54 	INPUT_BOX,
    55 	INPUT_HEADING,
    56 	INPUT_TEXT,
    57 	INPUT_FIELD,
    58 	FUNCTION_TEXT,
    59 	FUNCTION_HIGHLIGHT,
    60 	ATTR_MAX
    61 } attributes_t;
    62 extern attributes_t attributes[];
    63 
    64 typedef enum {
    65 	F_HELP = 1,
    66 	F_SYMBOL = 2,
    67 	F_INSTS = 3,
    68 	F_CONF = 4,
    69 	F_BACK = 5,
    70 	F_SAVE = 6,
    71 	F_LOAD = 7,
    72 	F_SEARCH = 8,
    73 	F_EXIT = 9,
    74 } function_key;
    75 
    76 void set_colors(void);
    77 
    78 /* this changes the windows attributes !!! */
    79 void print_in_middle(WINDOW *win,
    80 		int starty,
    81 		int startx,
    82 		int width,
    83 		const char *string,
    84 		chtype color);
    85 int get_line_length(const char *line);
    86 int get_line_no(const char *text);
    87 const char *get_line(const char *text, int line_no);
    88 void fill_window(WINDOW *win, const char *text);
    89 int btn_dialog(WINDOW *main_window, const char *msg, int btn_num, ...);
    90 int dialog_inputbox(WINDOW *main_window,
    91 		const char *title, const char *prompt,
    92 		const char *init, char *result, int result_len);
    93 void refresh_all_windows(WINDOW *main_window);
    94 void show_scroll_win(WINDOW *main_window,
    95 		const char *title,
    96 		const char *text);