Introduce target-specific LDFLAGS, the same way we have CFLAGS for the target.
It seems to be helping gcc somewhat into telling the correct endianness to ld that sticks with little endian even when the target is big (eg armeb-unknown-linux-uclibcgnueabi).
There's still work to do, especially finish the gcc part that is not in this commit.
/trunk/scripts/functions | 9 7 2 0 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
2 * dialog.h -- common declarations for all dialog modules
4 * AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 #include <sys/types.h>
35 * Colors in ncurses 1.9.9e do not work properly since foreground and
36 * background colors are OR'd rather than separately masked. This version
37 * of dialog was hacked to work with ncurses 1.9.9e, making it incompatible
38 * with standard curses. The simplest fix (to make this work with standard
39 * curses) uses the wbkgdset() function, not used in the original hack.
40 * Turn it off if we're building with 1.9.9e, since it just confuses things.
42 #if defined(NCURSES_VERSION) && defined(_NEED_WRAP) && !defined(GCC_PRINTFLIKE)
45 #define wbkgdset(w,p) /*nothing */
50 #define TR(params) _tracef params
55 #define BUF_SIZE (10*1024)
56 #define MIN(x,y) (x < y ? x : y)
57 #define MAX(x,y) (x > y ? x : y)
60 #define ACS_ULCORNER '+'
63 #define ACS_LLCORNER '+'
66 #define ACS_URCORNER '+'
69 #define ACS_LRCORNER '+'
84 #define ACS_UARROW '^'
87 #define ACS_DARROW 'v'
90 /* error return codes */
91 #define ERRDISPLAYTOOSMALL (KEY_MAX + 1)
97 chtype atr; /* Color attribute */
98 int fg; /* foreground */
99 int bg; /* background */
100 int hl; /* highlight this item */
104 const char *backtitle;
105 struct dialog_color screen;
106 struct dialog_color shadow;
107 struct dialog_color dialog;
108 struct dialog_color title;
109 struct dialog_color border;
110 struct dialog_color button_active;
111 struct dialog_color button_inactive;
112 struct dialog_color button_key_active;
113 struct dialog_color button_key_inactive;
114 struct dialog_color button_label_active;
115 struct dialog_color button_label_inactive;
116 struct dialog_color inputbox;
117 struct dialog_color inputbox_border;
118 struct dialog_color searchbox;
119 struct dialog_color searchbox_title;
120 struct dialog_color searchbox_border;
121 struct dialog_color position_indicator;
122 struct dialog_color menubox;
123 struct dialog_color menubox_border;
124 struct dialog_color item;
125 struct dialog_color item_selected;
126 struct dialog_color tag;
127 struct dialog_color tag_selected;
128 struct dialog_color tag_key;
129 struct dialog_color tag_key_selected;
130 struct dialog_color check;
131 struct dialog_color check_selected;
132 struct dialog_color uarrow;
133 struct dialog_color darrow;
139 extern struct dialog_info dlg;
140 extern char dialog_input_result[];
143 * Function prototypes
146 /* item list as used by checklist and menubox */
147 void item_reset(void);
148 void item_make(const char *fmt, ...);
149 void item_add_str(const char *fmt, ...);
150 void item_set_tag(char tag);
151 void item_set_data(void *p);
152 void item_set_selected(int val);
153 int item_activate_selected(void);
154 void *item_data(void);
157 /* item list manipulation for lxdialog use */
158 #define MAXITEMSTR 200
160 char str[MAXITEMSTR]; /* promtp displayed */
162 void *data; /* pointer to menu item - used by menubox+checklist */
163 int selected; /* Set to 1 by dialog_*() function if selected. */
166 /* list of lialog_items */
168 struct dialog_item node;
169 struct dialog_list *next;
172 extern struct dialog_list *item_cur;
173 extern struct dialog_list item_nil;
174 extern struct dialog_list *item_head;
176 int item_count(void);
177 void item_set(int n);
179 const char *item_str(void);
180 int item_is_selected(void);
181 int item_is_tag(char tag);
182 #define item_foreach() \
183 for (item_cur = item_head ? item_head: item_cur; \
184 item_cur && (item_cur != &item_nil); item_cur = item_cur->next)
186 /* generic key handlers */
187 int on_key_esc(WINDOW *win);
188 int on_key_resize(void);
190 void init_dialog(const char *backtitle);
191 void reset_dialog(void);
192 void end_dialog(void);
193 void attr_clear(WINDOW * win, int height, int width, chtype attr);
194 void dialog_clear(void);
195 void print_autowrap(WINDOW * win, const char *prompt, int width, int y, int x);
196 void print_button(WINDOW * win, const char *label, int y, int x, int selected);
197 void print_title(WINDOW *dialog, const char *title, int width);
198 void draw_box(WINDOW * win, int y, int x, int height, int width, chtype box,
200 void draw_shadow(WINDOW * win, int y, int x, int height, int width);
202 int first_alpha(const char *string, const char *exempt);
203 int dialog_yesno(const char *title, const char *prompt, int height, int width);
204 int dialog_msgbox(const char *title, const char *prompt, int height,
205 int width, int pause);
206 int dialog_textbox(const char *title, const char *file, int height, int width);
207 int dialog_menu(const char *title, const char *prompt,
208 const void *selected, int *s_scroll);
209 int dialog_checklist(const char *title, const char *prompt, int height,
210 int width, int list_height);
211 extern char dialog_input_result[];
212 int dialog_inputbox(const char *title, const char *prompt, int height,
213 int width, const char *init);
216 * This is the base for fictitious keys, which activate
219 * Mouse-generated keys are the following:
220 * -- the first 32 are used as numbers, in addition to '0'-'9'
221 * -- the lowercase are used to signal mouse-enter events (M_EVENT + 'o')
222 * -- uppercase chars are used to invoke the button (M_EVENT + 'O')
224 #define M_EVENT (KEY_MAX+1)