]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - packages/services/gfx/mw/v2_0/cdl/microwindows.cdl
unified MX27, MX25, MX37 trees
[karo-tx-redboot.git] / packages / services / gfx / mw / v2_0 / cdl / microwindows.cdl
1 # ====================================================================
2 #
3 #      microwindows.cdl
4 #
5 #      MicroWindows configuration data
6 #
7 # ====================================================================
8 #####ECOSGPLCOPYRIGHTBEGIN####
9 ## -------------------------------------------
10 ## This file is part of eCos, the Embedded Configurable Operating System.
11 ## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
12 ##
13 ## eCos is free software; you can redistribute it and/or modify it under
14 ## the terms of the GNU General Public License as published by the Free
15 ## Software Foundation; either version 2 or (at your option) any later version.
16 ##
17 ## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
18 ## WARRANTY; without even the implied warranty of MERCHANTABILITY or
19 ## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
20 ## for more details.
21 ##
22 ## You should have received a copy of the GNU General Public License along
23 ## with eCos; if not, write to the Free Software Foundation, Inc.,
24 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
25 ##
26 ## As a special exception, if other files instantiate templates or use macros
27 ## or inline functions from this file, or you compile this file and link it
28 ## with other works to produce a work based on this file, this file does not
29 ## by itself cause the resulting work to be covered by the GNU General Public
30 ## License. However the source code for this file must still be made available
31 ## in accordance with section (3) of the GNU General Public License.
32 ##
33 ## This exception does not invalidate any other reasons why a work based on
34 ## this file might be covered by the GNU General Public License.
35 ##
36 ## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
37 ## at http://sources.redhat.com/ecos/ecos-license/
38 ## -------------------------------------------
39 #####ECOSGPLCOPYRIGHTEND####
40 # ====================================================================
41 ######DESCRIPTIONBEGIN####
42 #
43 # Author(s):      jskov
44 # Original data:  jskov
45 # Contributors:
46 # Date:           2002-03-25
47 #
48 #####DESCRIPTIONEND####
49 #
50 # ====================================================================
51
52 cdl_package CYGPKG_MICROWINDOWS {
53     display       "MicroWindows"
54     requires      CYGPKG_POSIX
55     requires      CYGPKG_POSIX_TIMERS
56     requires      CYGPKG_ISOINFRA
57     requires      CYGINT_ISO_C_TIME_TYPES
58     requires      CYGINT_ISO_STRERROR
59     requires      CYGINT_ISO_ERRNO
60     requires      CYGINT_ISO_ERRNO_CODES
61     requires      CYGINT_ISO_MALLOC
62     requires      CYGINT_ISO_STRING_BSD_FUNCS
63     requires      CYGPKG_IO_FILEIO
64     requires      CYGPKG_NET_STACK_INET
65     description   "Microwindows."
66
67     # Note: separating the stack implementation from the common support leads
68     # to some rather incestious config file relationships.
69     define_proc {
70     }
71
72     # FB drivers
73     compile                                             \
74         drivers/fblin16.c                               \
75         drivers/fblin1.c                                \
76         drivers/fblin24.c                               \
77         drivers/fblin2.c                                \
78         drivers/fblin32.c                               \
79         drivers/fblin4.c                                \
80         drivers/fblin8.c                                \
81         drivers/fb.c                                    \
82         drivers/fbportrait_down.c                       \
83         drivers/fbportrait_left.c                       \
84         drivers/fbportrait_right.c                      \
85         drivers/genfont.c                               \
86         drivers/genmem.c
87
88      # engine
89      compile                                    \
90         engine/devarc.c                         \
91         engine/devclip.c                        \
92         engine/devdraw.c                        \
93         engine/devfont.c                        \
94         engine/devimage.c                       \
95         engine/devkbd.c                         \
96         engine/devlist.c                        \
97         engine/devmouse.c                       \
98         engine/devopen.c                        \
99         engine/devpal1.c                        \
100         engine/devpal2.c                        \
101         engine/devpal4.c                        \
102         engine/devpal8.c                        \
103         engine/devpoly.c                        \
104         engine/devrgn2.c                        \
105         engine/devrgn.c                         \
106         engine/devtimer.c                       \
107         engine/error.c                          \
108         engine/selfont.c
109
110      # NANO X
111      compile                                    \
112         nanox/srvmain.c                         \
113         nanox/srvfunc.c                         \
114         nanox/srvutil.c                         \
115         nanox/srvevent.c                        \
116         nanox/srvclip.c                         \
117         nanox/srvnet.c                          \
118         nanox/clientfb.c                        \
119         nanox/client.c                          \
120         nanox/error.c                           \
121         nanox/nxdraw.c                          \
122         nanox/nxproto.c                         \
123         nanox/nxutil.c
124
125      # FONTS
126      compile                                    \
127         fonts/helvB10.c                         \
128         fonts/helvB12.c                         \
129         fonts/helvR10.c                         \
130         fonts/rom8x16.c                         \
131         fonts/rom8x8.c                          \
132         fonts/symbol.c                          \
133         fonts/winFreeSansSerif11x13.c           \
134         fonts/winFreeSystem14x16.c              \
135         fonts/X5x7.c                            \
136         fonts/X6x13.c
137
138     # eCos stuff
139     cdl_component CYGBLD_MICROWINDOWS_ECOS {
140         display   "Build MicroWindows eCos support"
141         default_value 0
142
143         # These files are unique to eCos
144         compile ecos/ecos_init.c 
145         compile -library=libextras.a ecos/nanox_thread.c
146
147         cdl_option CYGBLD_MICROWINDOWS_ECOS_APP {
148             display  "Build complete eCos+MicroWindows application"
149             default_value 0
150             make -priority 320 {
151                 <PREFIX>/bin/ecos_mw.elf : $(PREFIX)/lib/target.ld $(PREFIX)/lib/vectors.o $(PREFIX)/lib/libtarget.a $(PREFIX)/lib/libextras.a $(REPOSITORY)/$(PACKAGE)/src/ecos/ecos_app.c
152                         @sh -c "mkdir -p $(dir $@)"
153                         $(CC) -c $(INCLUDE_PATH) $(CFLAGS) -o $(PREFIX)/lib/ecos_app.o $(REPOSITORY)/$(PACKAGE)/src/ecos/ecos_app.c
154                         $(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o $@ $(PREFIX)/lib/ecos_app.o
155             }
156             
157         }
158     }
159
160     # eCos VNC server drivers
161     cdl_option CYGBLD_MICROWINDOWS_VNC_DRIVERS {
162         display   "Build MicroWindows VNC server drivers"
163         default_value 0
164         description \
165             "This option builds the drivers for the VNC server.  The VNC server
166              then provides a virtual screen, keyboard and mouse for MicroWindows."
167
168         compile                     \
169             drivers/scr_vnc_ecos.c  \
170             drivers/kbd_vnc_ecos.c  \
171             drivers/mou_vnc_ecos.c
172             
173         requires CYGBLD_MICROWINDOWS_ECOS
174         requires CYGBLD_MICROWINDOWS_NANOWM
175         requires CYGPKG_VNC_SERVER
176         requires !CYGBLD_MICROWINDOWS_ARM_DRIVERS
177         requires CYGPKG_VNC_SERVER_BUILD_MOUSE_DRIVER
178         requires CYGPKG_VNC_SERVER_BUILD_KEYBOARD_DRIVER
179     }
180
181     # eCos ARM drivers
182     cdl_option CYGBLD_MICROWINDOWS_ARM_DRIVERS {
183         display   "Build MicroWindows ARM drivers"
184         default_value CYGPKG_HAL_ARM
185
186         compile                                 \
187             drivers/scr_ecos.c                  \
188             drivers/kbd_ipaq.c                  \
189             drivers/mou_ipaq.c
190
191
192         requires CYGBLD_MICROWINDOWS_ECOS
193         requires CYGBLD_MICROWINDOWS_NANOWM
194         requires CYGBLD_MICROWINDOWS_NXKBD
195         requires CYGBLD_MICROWINDOWS_NANOX_DEMOS
196
197         # This should come from the HAL
198         requires { !CYGPKG_HAL_ARM_SA11X0_IPAQ || is_substr(CYGPKG_MICROWINDOWS_CFLAGS_ADD, " -DMWPIXEL_FORMAT=MWPF_TRUECOLOR565") }
199         requires { !CYGPKG_HAL_ARM_ARM9_AAED2000 || is_substr(CYGPKG_MICROWINDOWS_CFLAGS_ADD, " -DMWPIXEL_FORMAT=MWPF_TRUECOLOR555") }
200
201     }
202
203     cdl_component CYGPKG_MICROWINDOWS_PC {
204         display     "Build options for PC hardware"
205         flavor      none
206     active_if   (CYGPKG_HAL_I386_PCMB && !CYGBLD_MICROWINDOWS_VNC_DRIVERS)
207         compile     drivers/ps2kbdmou_ecos.c
208         
209         requires CYGBLD_MICROWINDOWS_ECOS
210         
211         cdl_option CYGIMP_MICROWINDOWS_PCSVGA32 {
212             display "Assume 32 bits per pixel, RGB == 0888"
213             description \
214                 "This mode can be used when building for a standard PC,
215                  where bootstrap is handled via RedBoot. A custom version
216                  of RedBoot is required, configured to switch the graphics
217                  card to a suitable resolution before the processor enters
218                  protected mode. A VESA-compliant video BIOS is used for
219                  this. The graphics mode should be 32 bits per pixel true-color."
220
221             implements CYGINT_MICROWINDOWS_PC_DRIVER
222             default_value 1
223             compile drivers/scr_ecospcsvga.c
224             requires { is_substr(CYGPKG_MICROWINDOWS_CFLAGS_ADD, " -DMWPIXEL_FORMAT=MWPF_TRUECOLOR0888 ") }
225             requires { !is_substr(CYGPKG_MICROWINDOWS_CFLAGS_ADD, " -DMWPIXEL_FORMAT=MWPF_TRUECOLOR565 ") }
226             requires { !is_substr(CYGPKG_MICROWINDOWS_CFLAGS_ADD, " -DMWPIXEL_FORMAT=MWPF_PALETTE ") }
227         }
228         
229         cdl_option CYGIMP_MICROWINDOWS_PCSVGA16 {
230             display "Assume 16 bits per pixel, RGB == 565"
231             description \
232                 "This mode can be used when building for a standard PC,
233                  where bootstrap is handled via RedBoot. A custom version
234                  of RedBoot is required, configured to switch the graphics
235                  card to a suitable resolution before the processor enters
236                  protected mode. A VESA-compliant video BIOS is used for
237                  this. The graphics mode should be 16 bits per pixel true-color."
238
239             implements CYGINT_MICROWINDOWS_PC_DRIVER
240             default_value 0
241             compile drivers/scr_ecospcsvga.c
242             requires { !is_substr(CYGPKG_MICROWINDOWS_CFLAGS_ADD, " -DMWPIXEL_FORMAT=MWPF_TRUECOLOR0888 ") }
243             requires { is_substr(CYGPKG_MICROWINDOWS_CFLAGS_ADD, " -DMWPIXEL_FORMAT=MWPF_TRUECOLOR565 ") }
244             requires { !is_substr(CYGPKG_MICROWINDOWS_CFLAGS_ADD, " -DMWPIXEL_FORMAT=MWPF_PALETTE ") }
245         }
246         
247         cdl_option CYGIMP_MICROWINDOWS_PCVGA {
248             display "Build for VGA hardware"
249             description \
250                 "This driver manipulates VGA hardware directly, rather than
251                  going via the video BIOS. Only a limited resolution of
252                  640x480 with 4 bits per pixel is available. The driver
253                  does not implement all required microwindows functionality."
254
255             implements CYGINT_MICROWINDOWS_PC_DRIVER
256             default_value 0
257             compile drivers/scr_bios.c drivers/vgainit.c drivers/vgaplan4.c drivers/memplan4.c
258             requires { is_substr(CYGPKG_MICROWINDOWS_CFLAGS_ADD, " -DMWPIXEL_FORMAT=MWPF_PALETTE ") }
259             requires { !is_substr(CYGPKG_MICROWINDOWS_CFLAGS_ADD, " -DMWPIXEL_FORMAT=MWPF_TRUECOLOR0888 ") }
260         }
261         
262         cdl_interface CYGINT_MICROWINDOWS_PC_DRIVER {
263             display "Number of active PC graphics drivers"
264             requires { CYGINT_MICROWINDOWS_PC_DRIVER == 1 }
265         }
266     }
267     
268
269     # Nano WM
270     cdl_option CYGBLD_MICROWINDOWS_NANOWM {
271         display   "Build MicroWindows NANOWM"
272         default_value 0
273
274         compile                                 \
275             demos/nanowm/nanowm.c                       \
276             demos/nanowm/events.c                       \
277             demos/nanowm/wlist.c                        \
278             demos/nanowm/clients.c                      \
279             demos/nanowm/actions.c                      
280         compile -library=libextras.a ecos/nanowm_thread.c
281     }
282
283     # keyboard
284     cdl_option CYGBLD_MICROWINDOWS_NXKBD {
285         display   "Build MicroWindows NXKBD"
286         default_value 0
287
288         compile                                 \
289             demos/nxkbd/nxkbd.c                 \
290             demos/nxkbd/srvconn.c                       \
291             demos/nxkbd/keynorm.c                       \
292             demos/nxkbd/keyctrl.c                       \
293             demos/nxkbd/keyshft.c                       \
294             demos/nxkbd/keynum.c
295     }
296
297     # keyboard
298     cdl_component CYGBLD_MICROWINDOWS_NANOX_DEMOS {
299         display   "Build MicroWindows NanoX demos"
300         default_value 0
301
302         cdl_option CYGBLD_MICROWINDOWS_NANOX_DEMOS_WORLD {
303             display "Include 'world' demo"
304             default_value 0
305             no_define
306             compile demos/nanox/world.c 
307             compile -library=libextras.a ecos/world_thread.c
308         }
309
310         cdl_option CYGBLD_MICROWINDOWS_NANOX_DEMOS_NTETRIS {
311             display "Include 'nano-tetris' demo"
312             default_value 0
313             no_define
314             compile demos/nanox/ntetris.c 
315             compile -library=libextras.a ecos/ntetris_thread.c
316         }
317     }
318
319     cdl_component CYGPKG_MICROWINDOWS_OPTIONS {
320         display "Build options"
321         flavor  none
322         no_define
323         description   "
324             Package specific build options including control over
325             compiler flags used only in building this package,
326             and details of which tests are built."
327
328
329         cdl_option CYGPKG_MICROWINDOWS_CFLAGS_ADD {
330             display "Additional compiler flags"
331             flavor  data
332             no_define
333             default_value { "-I$(PREFIX)/include/microwin -D__ECOS=1 -DMSDOS=0 -DELKS=0 -D__rtems__=0 -D_MINIX=0 -DNOTYET=0 -DUNIX=1 -DHAVE_FILEIO -DHAVE_BMP_SUPPORT=1 -DHAVE_PNM_SUPPORT=1 -DHAVE_XPM_SUPPORT=1 -DxHAVE_JPEG_SUPPORT=1 -DHAVESELECT=1" }
334             description   "
335                 This option modifies the set of compiler flags for
336                 building the MicroWindows package.
337                 These flags are used in addition to the set of global flags."
338         }
339
340         cdl_option CYGPKG_MICROWINDOWS_CFLAGS_REMOVE {
341             display "Suppressed compiler flags"
342             flavor  data
343             no_define
344             default_value { "" }
345             description   "
346                 This option modifies the set of compiler flags for
347                 building the MicroWindows package.
348                 These flags are removed from the set of global flags
349                 if present."
350         }
351     }
352 }