]> git.donarmstrong.com Git - lilypond.git/blob - cygwin/mknetrel.split
(dos_to_posix)[__CYGWIN__]: Return
[lilypond.git] / cygwin / mknetrel.split
1 # -*- shell-script -*-
2 # mknetrel.split -- split subpackages
3
4 extras_preinstall () {
5     :;
6 }
7
8 extras_presplit () {
9     :;
10 }
11
12 presplit () {
13     :;
14 }
15
16 devel_name () {
17     if ! libdev 2> /dev/null ; then
18         echo $base-devel
19     else
20         if expr "$base" : "\(lib\)" > /dev/null 2>&1; then
21             echo $base-dev
22         else
23             echo lib$base-dev
24         fi
25     fi
26 }
27
28 doc_name () {
29     echo $base-doc
30 }
31
32 lib_name () {
33     if expr "$base" : "\(lib\)" > /dev/null 2>&1; then
34         echo $base$sover
35     else
36         echo lib$base$sover
37     fi
38 }
39
40 extras_lib_split () {
41     mkdir -p ./$prefix/bin || exit 1
42     mv $inst/$prefix/bin/*.dll ./$prefix/bin
43     # better move dlls to bin, see gmp
44     mkdir -p ./$prefix/lib || exit 1
45     mv $inst/$prefix/lib/*.dll ./$prefix/lib
46     mkdir -p ./$prefix/lib || exit 1
47     mv $inst/$prefix/lib/lib*.la ./$prefix/lib
48     mkdir -p ./$prefix/share || exit 1
49     mv $inst/$prefix/share/$base ./$prefix/share
50     rmdir $inst/$prefix/bin || true
51     rmdir $inst/$prefix/lib || true
52     rmdir $inst/$prefix/share || true
53     true
54 }
55    
56 extras_devel_split () {
57     mkdir -p ./$prefix/bin || exit 1
58     mv $inst/bin/*-config ./$prefix/bin
59     tar -C $inst -cf - ./$prefix/include | tar -xf -
60     rm -rf $inst/$prefix/include
61     # Only static .a libs in devel, load time .la files go in LIB or
62     # BIN package.
63     mkdir -p ./$prefix/lib || exit 1
64     mv $inst/$prefix/lib/*.a ./$prefix/lib
65     mv $inst/$prefix/lib/pkgconfig ./$prefix/lib
66     mkdir -p ./$prefix/share || exit 1
67     tar -C $inst -cf - ./$prefix/share/aclocal | tar -xf -
68     rm -rf $inst/$prefix/share/aclocal
69     tar -C $inst -cf - ./$prefix/share/libtool | tar -xf -
70     rm -rf $inst/$prefix/share/libtool
71     rmdir $inst/$prefix/lib || true
72     rmdir $inst/$prefix/share || true
73     true
74 }
75
76 extras_doc_split () {
77     mkdir -p ./$docprefix || exit 1
78     mkdir -p ./$infodir || exit 1
79     tar -C $inst -cf - ./$infodir | tar -xf -
80     rm -rf $inst/$infodir
81     if [ "$cygwin" == "mingw" ]; then
82         mkdir -p ./$mandir || exit 1
83         tar -C $inst -cf - ./$mandir | tar -xf -
84         rm -rf $inst/$mandir
85     fi
86     true
87 }
88
89 extras_prebuild () {
90     for i in $sub_packages; do
91         rm -rf $inst-$i
92         mkdir -p $inst-$i || exit 1
93     done
94 }
95
96 extras_postinstall () {
97     fixdoc
98     fix_libtool_la
99     
100     mkdir -p $inst-doc/$docprefix
101     cd $build || exit 1
102
103     cd $src || exit 1
104     install -d -m755 $inst/$packagedocdir
105
106     readmes="$(find . -maxdepth 1 -type f -a -name '[A-Z]*' | egrep -v 'Makefile|GNUmakefile')"
107     install -m644 $readmes $inst/$packagedocdir
108     install -m644 $cygwin/changelog $inst/$packagedocdir/changelog.$Cygwin
109
110     ## Cygwin readmes
111     cd $src || exit 1
112     install -d -m755 $inst/$cygdocdir
113
114     cd $src || exit 1
115     install -m644 $cygwin/README $inst/$packagedocdir/README.$Cygwin
116     install -m644 $cygwin/README $inst/$cygdocdir/$package.README
117     cd $build || exit 1
118     install -m644 $cygwin/out/README $inst/$packagedocdir/README.$Cygwin
119     install -m644 $cygwin/out/README $inst/$cygdocdir/$package.README
120 }
121
122 auto_requires () {
123     dlls=
124     requires=
125     dlls=$(find . -name '*dll' -o -name '*.exe' \
126         | xargs $cygcheck 2>&1 | grep '^  [^ ]' \
127         | tr -d '[ \r]' | sed 's@.*\\@@g' | sort -u)
128     for x in $(ls -1 bin/* sbin/*); do
129         case $x in
130             *.exeXXX|*.dllXXX)
131                 dlls="$($cygcheck $x 2>&1 | grep '^  [^ ]' | tr -d '[ \r]' | sed 's@.*bin\\@@g') $dlls"
132                 ;;
133         esac
134         case "$(file -b $x)" in
135             "*Bourne shell script*")
136                 requires="bash\n$requires"
137                 ;;
138             "*guile*script*")
139                 requires="guile\n$requires"
140                 ;;
141             "*perl*script*")
142                 requires="perl\n$requires"
143                 ;;
144             "*python*script*")
145                 requires="python\n$requires"
146                 ;;
147         esac
148     done
149     for x in $dlls; do
150         requires="$(cyg-apt find $x | sed 's/:.*//')\n$requires"
151     done
152     requires=$(echo -e "$requires" | sort -u)
153     echo $requires
154 }
155
156 hint () {
157     if [ -r $shint ]; then
158         cp $shint $hint
159     else
160         cat > $hint <<EOF
161 sdesc: "$name"
162 ldesc: "$name - no description (missing $package/$cygwin/$(basename $shint) file)"
163 EOF
164     fi
165     grep ^requires: $hint || echo "requires: $depends" >> $hint
166     if [ "$cygwin" == "cygwin" ]; then
167         if grep ^build-requires: $hint; then
168             mv $hint $hint~
169             grep -v build-requires $hint~ > $hint
170         fi
171         if iscygwin; then
172             cygcheck=cygcheck.exe
173         else
174             cygcheck="wine $cygwin_prefix/bin/cygcheck.exe"
175         fi
176         echo "#auto-requires: $(cd usr; auto_requires)" >> $hint
177     else
178         grep ^build-requires: $hint || echo "build-requires: $build_depends" >> $hint
179     fi
180 }
181
182 domkdist () {
183     #
184     # Fix up installation slightly
185     #
186     cd $inst || exit 1
187     chmod -R u+w,og-w,a+rX .
188     cd usr 2>/dev/null && dousrstuff
189
190     # Split off any sub-packages.  The actual splitting is handled by
191     # a package's specific code in extra/.
192
193     # To package `foo' in foo, foo-doc and foo-devel, set
194     # sub_packages='doc devel'.
195
196     # Then provide functions doc_name and devel_name, that return the
197     # full name of the sub-package.  Also provide functions doc_split
198     # and devel_split, that mv part of foo's installation in $inst to
199     # the sub-packages' installation roots $inst-doc and $inst-devel.
200
201     cd $inst || exit 1
202     presplit
203
204     for i in $sub_packages; do
205         subname=$(${i}_name)
206         cd $inst-$i || exit 1
207         ${i}_split || exit 1
208     done
209     
210     cd $inst || exit 1
211     prepackage
212
213     cd $inst || exit 1
214     hard2soft
215
216     #
217     # Make tar balls
218     #
219
220     # The base package
221     echo creating $tarstem.tar.bz2
222     cd $inst || exit 1
223
224     name=$base
225     shint=$src/$cygwin/$name.hint
226     hint=$uploads/setup.hint
227     hint
228     find * -print | egrep -v '\.cvsignore|\.bak$|\.orig$|\.o$|\.rej$|~$|^.#|CVS|/tags$' | sort | tar -T - --no-recursion --owner=0 --group=0 -cjf $tarstem.tar.bz2
229
230     # Any sub-packages
231     for i in $sub_packages; do
232         subname=$(${i}_name)
233         subload=$uploads/$subname
234         subtarstem=$subload/$subname-$ver
235         shint=$src/$cygwin/$subname.hint
236         hint=$subload/setup.hint
237         depends=$(eval echo '$'${i}_depends)
238         mkdir -p $subload || exit 1
239         echo creating $subtarstem.tar.bz2
240         name=$subname
241         cd $inst-$i
242         hint
243         grep ^external-source: $hint || echo "external-source: $base" >> $hint
244         hard2soft
245         find * -print | egrep -v '\.cvsignore|\.bak$|\.orig$|\.o$|\.rej$|~$|^.#|CVS|/tags$' | sort | tar -T - --no-recursion --owner=0 --group=0 -cjf $subtarstem.tar.bz2
246     done
247
248     # The source package
249     cd $src/.. || exit 1
250     echo creating "$tarstem"-src.tar.bz2
251     ##find $package_src/* -print -follow | egrep -v '\.cvsignore|\.bak$|\.orig$|\.o$|~$|^.#|CVS|%redact|/tags$' | egrep -v "$src_exclude" | sort | tar -T - --no-recursion --owner=0 --group=0 -cjf "$tarstem"-src.tar.bz2
252     find $package_src/* -print | egrep -v '\.cvsignore|\.bak$|\.orig$|\.o$|\.rej$|~$|^.#|CVS|%redact|/tags$|/TAGS$|autom4te.cache$' | egrep -v "$src_exclude" | sort | tar -T - --no-recursion --owner=0 --group=0 -cjf "$tarstem"-src.tar.bz2
253     ##cd $package_src && tar -cj --exclude='\.cvsignore' --exclude='\.bak$' --exclude='\.orig$' --exclude='\.o$' --exclude='~$' --exclude='^.#' --exclude='CVS' --exclude='%redact' --exclude='/tags$' --exclude='/TAGS$' --exclude='autom4te.cache' --owner=0 --group=0 -f "$tarstem"-src.tar.bz2 .
254     postpackage
255 }
256
257 devel_split () {
258     extras_devel_split
259 }
260
261 doc_split () {
262     extras_doc_split
263 }
264
265 lib_split () {
266     extras_lib_split
267 }
268
269 prebuild () {
270     extras_prebuild
271 }
272
273 postinstall () {
274     extras_postinstall
275 }