kconfig/nconf.h
author Bryan Hundven <bryanhundven@gmail.com>
Sun Jun 26 03:26:54 2011 -0700 (2011-06-26)
changeset 2515 364b06df9e3a
permissions -rw-r--r--
glibc: Refactor startfiles/headers into do_libc_backend()

Refactor the contents of 'do_libc_start_files()' and 'do_libc()' into a
parameterized 'do_libc_backend()'. 'do_libc_start_files()' and 'do_libc()'
call 'do_libc_backend()' with either 'libc_mode=startfiles' or
'libc_mode=final' (respectively) so that the startfiles/headers and
the final libc builds are configured and built with the same options.

One example of where this is needed is when building a mips toolchain.
Previously, if you were building an n32 toolchain, you wouldn't have
noticed an issue, because if '-mabi' is not in CFLAGS, n32 is the
default:

http://sourceware.org/git/?p=glibc-ports.git;a=blob;f=sysdeps/mips/preconfigure;hb=HEAD

But when trying to build an o32 or n64 toolchain the build would
have failed. This is because (e)glibc expects "-mabi={o32,n32,n64}" to be
in CFLAGS, but was not previously provided in 'do_libc_start_files()'.
The build failure would happen in the shared-core gcc when it tries to
configure an n64 or o32 gcc with an n32 libc.

A simpler solution would have been to just add TARGET_CFLAGS to configure
in 'do_libc_start_files()', but this way makes configure and make
consistent for both steps.

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