annotate packages/io/framebuf/current/src/gen_framebufs.tcl @ 2863:7d8c61e6225c default tip

* Added execute permissions to files missed in conversion from CVS
author alexs
date Thu, 26 Mar 2009 20:39:18 +0000
parents 74dbf4c3f2e1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2711
eacd6295a6aa * ecosadmin.tcl, pkgconf/fixhtml.tcl,
jld
parents: 2565
diff changeset
1 #!/usr/bin/env tclsh
2565
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
2
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
3 #===============================================================================
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
4 #
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
5 # gen_framebufs.tcl
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
6 #
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
7 # Amalgamate the various framebuffers available on a given platform
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
8 #
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
9 #===============================================================================
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
10 # ####ECOSGPLCOPYRIGHTBEGIN####
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
11 # -------------------------------------------
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
12 # This file is part of eCos, the Embedded Configurable Operating System.
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
13 # Copyright (C) 2008 Free Software Foundation, Inc.
2565
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
14 #
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
15 # eCos is free software; you can redistribute it and/or modify it under
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
16 # the terms of the GNU General Public License as published by the Free
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
17 # Software Foundation; either version 2 or (at your option) any later
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
18 # version.
2565
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
19 #
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
20 # eCos is distributed in the hope that it will be useful, but WITHOUT
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
21 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
22 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
23 # for more details.
2565
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
24 #
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
25 # You should have received a copy of the GNU General Public License
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
26 # along with eCos; if not, write to the Free Software Foundation, Inc.,
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
27 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
2565
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
28 #
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
29 # As a special exception, if other files instantiate templates or use
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
30 # macros or inline functions from this file, or you compile this file
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
31 # and link it with other works to produce a work based on this file,
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
32 # this file does not by itself cause the resulting work to be covered by
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
33 # the GNU General Public License. However the source code for this file
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
34 # must still be made available in accordance with section (3) of the GNU
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
35 # General Public License v2.
2565
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
36 #
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
37 # This exception does not invalidate any other reasons why a work based
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
38 # on this file might be covered by the GNU General Public License.
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
39 # -------------------------------------------
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2711
diff changeset
40 # ####ECOSGPLCOPYRIGHTEND####
2565
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
41 #===============================================================================
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
42 ######DESCRIPTIONBEGIN####
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
43 #
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
44 # Author(s): bartv
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
45 # Date: 2005-03-29
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
46 #
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
47 # This script is invoked via a custom make rule to generate a file
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
48 # <cyg/io/framebufs/framebufs.h>
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
49 #
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
50 #####DESCRIPTIONEND####
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
51 #===============================================================================
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
52
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
53 proc do_it { dir } {
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
54
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
55 # dir should be set to <prefix>/install/include/cyg/io/framebufs
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
56 if { ! [file exists $dir] } {
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
57 file mkdir $dir
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
58 }
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
59 if { ! [file isdirectory $dir] } {
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
60 puts stderr "gen_framebufs.tcl: strange build tree, $dir should be a directory"
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
61 exit 1
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
62 }
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
63
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
64 set framebufs_file [file join $dir "framebufs.h"]
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
65 set current_data ""
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
66 if { [file exists $framebufs_file] } {
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
67 set fd [open $framebufs_file "r"]
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
68 set current_data [read $fd]
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
69 close $fd
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
70 }
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
71
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
72 set headers [lsort [glob -nocomplain [file join $dir "*.h*"]]]
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
73
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
74 set new_data \
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
75 "\#ifndef CYGONCE_IO_FRAMEBUFS_FRAMEBUFS_H
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
76 # define CYGONCE_IO_FRAMEBUFS_FRAMEBUFS_H
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
77
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
78 /* This is a generated file - do not edit! */
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
79 /* <cyg/io/framebufs/framebufs.h> should not be #include'd */
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
80 /* directly, instead use <cyg/io/framebuf.h> */
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
81 "
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
82
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
83 foreach header $headers {
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
84 set header [file tail $header]
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
85 if { [string equal "framebufs.h" $header] } {
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
86 continue
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
87 }
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
88 append new_data "#include <cyg/io/framebufs/[set header]>\n"
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
89 }
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
90
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
91 # Next, work out the default test device. We need to read pkgconf/io_framebuf.h,
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
92 # look for CYGDAT_IO_FRAMEBUF_DEVICES, and extract the first entry.
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
93 set pkgconf_file [file join $dir "../../../pkgconf/io_framebuf.h"]
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
94 if { ! [file exists $pkgconf_file] || ! [file readable $pkgconf_file] } {
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
95 puts stderr "gen_framebufs.tcl: strange build tree, no access to $pkgconf_file"
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
96 exit 1
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
97 }
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
98 set fd [open $pkgconf_file "r"]
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
99 while { ! [eof $fd] } {
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
100 set line [gets $fd]
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
101 if { [regexp {^#define\s*CYGDAT_IO_FRAMEBUF_DEVICES\s*(\S*)\s+.*$} $line junk fb] } {
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
102 append new_data "#define CYGDAT_IO_FRAMEBUF_DEFAULT_TEST_DEVICE $fb\n"
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
103 break
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
104 }
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
105 }
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
106
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
107 # Close the #ifndef CYGONCE_
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
108 append new_data "#endif\n"
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
109
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
110 if { ! [string equal $current_data $new_data] } {
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
111 set fd [open $framebufs_file "w"]
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
112 puts -nonewline $fd $new_data
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
113 close $fd
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
114 }
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
115 }
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
116
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
117 if { 0 == $::argc } {
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
118 puts stderr "gen_framebufs.tcl: missing argument for install directory"
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
119 exit 1
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
120 }
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
121
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
122 if { [catch { do_it [lindex $::argv 0] } msg] } {
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
123 puts stderr "gen_framebufs.tcl: internal error"
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
124 puts stderr " $msg"
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
125 exit 1
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
126 }
f9d071633ee7 Contribute eCosCentric's framebuffer infrastructure.
bartv
parents:
diff changeset
127 exit 0