first commit
[scm/bb/meta-tizen.git] / recipes-tizen / vim / vim.inc
1 DESCRIPTION = "Vi IMproved"
2 HOMEPAGE = "http://www.vim.org/"
3 SECTION = "Base/Utilities"
4 LICENSE = "Vim"
5
6 SRC_URI = ""
7
8 S = "${WORKDIR}/git"
9
10 PROVIDES = ""
11
12 #PROVIDES by vim-data 
13 PROVIDES += "vim-data"
14 RPROVIDES_vim-data += "vim-data"
15
16 #PROVIDES by vim-base 
17 PROVIDES += "vim-base"
18 RPROVIDES_vim-base += "vim-base"
19
20 #PROVIDES by vim-enhanced 
21 PROVIDES += "vim-enhanced"
22 RPROVIDES_vim-enhanced += "vim-enhanced"
23 # the PROVIDES rules is ignore "vi  "
24 PROVIDES += "vi"
25 RPROVIDES_vim-enhanced += "vi"
26 # the PROVIDES rules is ignore "vim_client  "
27 PROVIDES += "vim_client"
28 RPROVIDES_vim-enhanced += "vim_client"
29
30 #PROVIDES by vim-docs  
31 PROVIDES += "vim-docs "
32 RPROVIDES_vim-docs  += "vim-docs "
33
34 #PROVIDES by vim 
35 PROVIDES += "vim"
36 RPROVIDES_vim += "vim"
37 # the PROVIDES rules is ignore "vi  "
38 PROVIDES += "vi"
39 RPROVIDES_vim += "vi"
40 # the PROVIDES rules is ignore "vim_client  "
41 PROVIDES += "vim_client"
42 RPROVIDES_vim += "vim_client"
43
44 RDEPENDS = ""
45 #RDEPENDS of vim-data (${PN}-data)
46 RDEPENDS_${PN}-data += "vim-base"
47
48 #RDEPENDS of vim-base (${PN}-base)
49 RDEPENDS_${PN}-base += "vim-base"
50 RDEPENDS_${PN}-base += "update-alternatives"
51
52 #RDEPENDS of vim (${PN})
53 RDEPENDS_${PN} += "vim-base"
54 RDEPENDS_${PN} += "update-alternatives"
55
56 #RDEPENDS of vim-enhanced (${PN}-enhanced)
57 RDEPENDS_${PN}-enhanced += "vim-data"
58 RDEPENDS_${PN}-enhanced += "vim-base"
59 RDEPENDS_${PN}-enhanced += "update-alternatives"
60 RDEPENDS_${PN}-enhanced += "perl"
61
62
63 DEPENDS = ""
64 #DEPENDS of vim 
65 DEPENDS += "systemd"
66 DEPENDS += "fdupes-native"
67 DEPENDS += "attr"
68 DEPENDS += "ncurses"
69 #Replace "DEPENDS" on gettext by "inherit gettext"
70 inherit gettext
71 inherit perlnative
72 inherit pythonnative
73 DEPENDS += "autoconf-native"
74 DEPENDS += "db4"
75
76 do_patch() {
77  #extracte source 98 
78  pushd ${S}/../
79  unp ${S}/packaging/vim-7.4-patches.tar.bz2 
80  popd 
81  chmod -Rf a+rX,u+w,g-w,o-w ${S}
82  #setup -q -n vim74 -b 98
83  cp ${S}/packaging/vim.manifest .
84  for p in ../vim-7.4-patches/7.4*; do
85      test -e $p || break
86      test ${p#*/7.4.} -le 155 || exit 1
87      echo Patch $p
88      patch -s -p0 < $p
89  done
90  unset p
91  cp ${S}/packaging/tizen.vimrc  .
92  
93  # newer perl? ugly hack to fix build anyway.
94  sed -i -e 's/^XS(XS_/XS_INTERNAL(XS_/' src/if_perl.xs
95  
96  
97 }
98
99 do_configure() {
100 }
101
102 do_compile() {
103  LANG=C
104  export LANG
105  unset DISPLAY
106  CFLAGS="-O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables" ; export CFLAGS ; 
107  CXXFLAGS="${CXXFLAGS:--O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables}" ; export CXXFLAGS ; 
108  FFLAGS="${FFLAGS:--O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -I%_fmoddir}" ; export FFLAGS ; 
109  LD_AS_NEEDED=1; export LD_AS_NEEDED ; 
110  
111  export CFLAGS="-O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -Wall -pipe -fno-strict-aliasing"
112  export CFLAGS=${CFLAGS/-D_FORTIFY_SOURCE=2/-D_FORTIFY_SOURCE=1}
113  
114  export COMMON_OPTIONS="\
115         --disable-selinux \
116         --enable-smack \
117      --with-vim-name=vim \
118      --with-ex-name=ex \
119      --with-view-name=view \
120      --enable-cscope \
121      --enable-multibyte \
122      --enable-sniff \
123      --with-features=huge \
124      --with-compiledby='http://www.tizen.org/' \
125      --with-tlib=tinfo \
126      --with-global-runtime=/usr/share/vim/site"
127  export SCRIPT_OPTIONS="\
128      --enable-perlinterp \
129      --enable-pythoninterp \
130      --with-python-config-dir=/usr/lib/python2.7/config"
131  
132  pushd src
133  autoconf
134  popd
135  #
136  # build small default binary
137  
138    CFLAGS="${CFLAGS:--O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables}" ; export CFLAGS ; 
139    CXXFLAGS="${CXXFLAGS:--O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables}" ; export CXXFLAGS ; 
140    FFLAGS="${FFLAGS:--O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -I%_fmoddir}" ; export FFLAGS ; 
141    autotools_do_configure --build=${TARGET_SYS} --host=${HOST_SYS} \
142          --target=x86_64-tizen-linux \
143          --program-prefix= \
144          --prefix=/usr \
145          --exec-prefix=/usr \
146          --bindir=/usr/bin \
147          --sbindir=/usr/sbin \
148          --sysconfdir=/etc \
149          --datadir=/usr/share \
150          --includedir=/usr/include \
151          --libdir=/usr/lib \
152          --libexecdir=/usr/libexec \
153          --localstatedir=/var \
154          --sharedstatedir=/usr/com \
155          --mandir=/usr/share/man \
156          --infodir=/usr/share/info \
157      ${COMMON_OPTIONS} --disable-gui --without-x --disable-gpm \
158      --disable-perlinterp --disable-pythoninterp \
159      --disable-rubyinterp --disable-tclinterp
160  sed -i -e 's|define HAVE_DATE_TIME 1|undef HAVE_DATE_TIME|' src/auto/config.h
161  make VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/current MAKE="make -e" -j16
162  cp src/vim vim-normal
163  make distclean
164  #
165  # build enhanced binary
166  
167    CFLAGS="${CFLAGS:--O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables}" ; export CFLAGS ; 
168    CXXFLAGS="${CXXFLAGS:--O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables}" ; export CXXFLAGS ; 
169    FFLAGS="${FFLAGS:--O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -I%_fmoddir}" ; export FFLAGS ; 
170    autotools_do_configure --build=${TARGET_SYS} --host=${HOST_SYS} \
171          --target=x86_64-tizen-linux \
172          --program-prefix= \
173          --prefix=/usr \
174          --exec-prefix=/usr \
175          --bindir=/usr/bin \
176          --sbindir=/usr/sbin \
177          --sysconfdir=/etc \
178          --datadir=/usr/share \
179          --includedir=/usr/include \
180          --libdir=/usr/lib \
181          --libexecdir=/usr/libexec \
182          --localstatedir=/var \
183          --sharedstatedir=/usr/com \
184          --mandir=/usr/share/man \
185          --infodir=/usr/share/info ${COMMON_OPTIONS} ${SCRIPT_OPTIONS} --disable-gui
186  sed -i -e 's|define HAVE_DATE_TIME 1|undef HAVE_DATE_TIME|' src/auto/config.h
187  make VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/current MAKE="make -e" -j16
188  cp src/vim vim-enhanced
189  #make distclean
190  #
191  #
192  
193  
194  
195 }
196
197 do_install() {
198  echo export RPM_BUILD_ROOT=${D}
199  LANG=C
200  export LANG
201  unset DISPLAY
202  rm -rf ${D} 
203  mkdir -p ${D} 
204  
205  # create icon directory to have the icon from the tarball installed
206  install -d -m 0755 ${D}/usr/share/icons/hicolor/48x48/apps
207  
208  cd src
209  make install DESTDIR=${D} BINDIR=/usr/bin VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/site
210  cd ..
211  
212  # install the other binaries
213  install -D -m 0755 vim-normal    ${D}//usr/bin/vim-normal
214  install -D -m 0755 vim-enhanced  ${D}/usr/bin/vim-enhanced
215  
216  # compat symlinks
217  # we need a dummy target for /etc/alternatives/vim
218  mkdir -p ${D}/etc/alternatives
219  touch ${D}/etc/alternatives/vim
220  ln -s -f /etc/alternatives/vim ${D}//usr/bin/vim
221  
222  ln -s -f vim   ${D}/usr/bin/vi
223  ln -s -f vim        ${D}/usr/bin/edit
224  ln -s -f vim       ${D}//usr/bin/ex
225  
226  # man pages
227  mkdir -p ${D}/usr/share/man/man1
228  ln -s -f vim.1.gz ${D}/usr/share/man/man1/vi.1.gz
229  ln -s -f vim.1.gz ${D}/usr/share/man/man1/ex.1.gz
230  
231  
232  # make the vim settings more generic
233  ln -s -f vim74 ${D}/usr/share/vim/current
234  
235  # additional files
236  install -D -m 0644 ${S}/packaging/tizen.vimrc ${D}/etc/vimrc
237  
238  # create site wide runtime directory
239  mkdir -p -m 0755 ${D}/usr/share/vim/site/after
240  mkdir -m 0755 ${D}/usr/share/vim/site/autoload
241  mkdir -m 0755 ${D}/usr/share/vim/site/colors
242  mkdir -m 0755 ${D}/usr/share/vim/site/doc
243  mkdir -m 0755 ${D}/usr/share/vim/site/plugin
244  mkdir -m 0755 ${D}/usr/share/vim/site/syntax
245  mkdir -m 0755 ${D}/usr/share/vim/site/ftdetect
246  mkdir -m 0755 ${D}/usr/share/vim/site/after/syntax
247  mkdir -m 0755 ${D}/usr/share/vim/current/skeletons
248  mkdir -m 0755 ${D}/etc/skel
249  
250  
251  #
252  # documentation
253  install -d -m 0755 ${D}/usr/share/doc/packages/{,g}vim/
254  cp runtime/doc/uganda.txt LICENSE
255  install -D -m 0644 \
256      tizen.vimrc \
257      README.txt README_src.txt README_unix.txt \
258    ${D}/usr/share/doc/packages/vim/
259  #
260  # remove unecessary duplicate manpages
261  rm -rf ${D}/usr/share/man/fr.ISO8859-1/
262  rm -rf ${D}/usr/share/man/fr.UTF-8/
263  rm -rf ${D}/usr/share/man/pl.ISO8859-2/
264  rm -rf ${D}/usr/share/man/pl.UTF-8/
265  rm -rf ${D}/usr/share/man/ru.KOI8-R/
266  rm -rf ${D}/usr/share/man/it.ISO8859-1/
267  rm -rf ${D}/usr/share/man/it.UTF-8/
268  rm -rf ${D}/usr/share/man/ru.UTF-8
269  # and move russian manpages to a place where they can be found
270  rm -rf ${D}/usr/share/man/{fr,it,pl,ru,ja}
271  
272  
273  # remove some c source files
274  rm -f ${D}/usr/share/vim/vim74/tools/*.c
275  rm -f ${D}/usr/share/vim/vim74/macros/maze/*.c
276  #
277  # Create ghost files (see vim.conf)
278  mkdir -p ${D}/var/run/vi.recover
279  rm -rf ${D}/usr/share/icons/hicolor/48x48/apps
280  
281  
282   _target=""; 
283   _symlinks=0; 
284   _symlinks=1; 
285   fdupes -q -n -r ${D}/usr/share/vim/vim74/lang | 
286    while read _file; do 
287      if test -z "$_target" ; then 
288        _target="$_file"; 
289      else 
290        if test -z "$_file" ; then 
291         _target=""; 
292         continue ; 
293        fi ; 
294        if test "$_symlinks" = 1; then 
295          ln -sf "${_target#${D}}" "$_file"; 
296        else 
297          ln -f "$_target" "$_file"; 
298        fi ;
299      fi ; 
300   done 
301  
302   _target=""; 
303   _symlinks=0; 
304   _symlinks=1; 
305   fdupes -q -n -r ${D}/usr/share/vim/vim74/tutor | 
306    while read _file; do 
307      if test -z "$_target" ; then 
308        _target="$_file"; 
309      else 
310        if test -z "$_file" ; then 
311         _target=""; 
312         continue ; 
313        fi ; 
314        if test "$_symlinks" = 1; then 
315          ln -sf "${_target#${D}}" "$_file"; 
316        else 
317          ln -f "$_target" "$_file"; 
318        fi ;
319      fi ; 
320   done 
321  
322   _target=""; 
323   _symlinks=0; 
324   _symlinks=1; 
325   fdupes -q -n -r ${D}/usr/share/vim/vim74/ftplugin | 
326    while read _file; do 
327      if test -z "$_target" ; then 
328        _target="$_file"; 
329      else 
330        if test -z "$_file" ; then 
331         _target=""; 
332         continue ; 
333        fi ; 
334        if test "$_symlinks" = 1; then 
335          ln -sf "${_target#${D}}" "$_file"; 
336        else 
337          ln -f "$_target" "$_file"; 
338        fi ;
339      fi ; 
340   done 
341  
342  
343 }
344
345 PACKAGES = ""
346 PACKAGES += "vim-data"
347 PACKAGES += "vim-base"
348 PACKAGES += "vim"
349 PACKAGES += "vim-docs"
350 PACKAGES += "vim-enhanced"
351
352 vim-data_files = ""
353 vim-data_files += "vim.manifest"
354 vim-data_files += "/usr/share/vim/vim74/autoload/*"
355 vim-data_files += "/usr/share/vim/vim74/colors/*"
356 vim-data_files += "/usr/share/vim/vim74/compiler/*"
357 vim-data_files += "/usr/share/vim/vim74/doc/*"
358 vim-data_files += "/usr/share/vim/vim74/ftplugin/*"
359 vim-data_files += "/usr/share/vim/vim74/indent/*"
360 vim-data_files += "/usr/share/vim/vim74/keymap/*"
361 vim-data_files += "/usr/share/vim/vim74/lang/*"
362 vim-data_files += "/usr/share/vim/vim74/macros/*"
363 vim-data_files += "/usr/share/vim/vim74/plugin/*"
364 vim-data_files += "/usr/share/vim/vim74/print/*"
365 vim-data_files += "/usr/share/vim/vim74/spell/*"
366 vim-data_files += "/usr/share/vim/vim74/syntax/*"
367 vim-data_files += "/usr/share/vim/vim74/tools/ccfilter.1"
368 vim-data_files += "/usr/share/vim/vim74/tools/ccfilter_README.txt"
369 vim-data_files += "/usr/share/vim/vim74/tools/efm_filter.pl"
370 vim-data_files += "/usr/share/vim/vim74/tools/efm_filter.txt"
371 vim-data_files += "/usr/share/vim/vim74/tools/efm_perl.pl"
372 vim-data_files += "/usr/share/vim/vim74/tools/mve.awk"
373 vim-data_files += "/usr/share/vim/vim74/tools/mve.txt"
374 vim-data_files += "/usr/share/vim/vim74/tools/pltags.pl"
375 vim-data_files += "/usr/share/vim/vim74/tools/README.txt"
376 vim-data_files += "/usr/share/vim/vim74/tools/ref"
377 vim-data_files += "/usr/share/vim/vim74/tools/shtags.1"
378 vim-data_files += "/usr/share/vim/vim74/tools/shtags.pl"
379 vim-data_files += "/usr/share/vim/vim74/tools/unicode.vim"
380 vim-data_files += "/usr/share/vim/vim74/tools/vimm"
381 vim-data_files += "/usr/share/vim/vim74/tools/vimspell.sh"
382 vim-data_files += "/usr/share/vim/vim74/tools/vimspell.txt"
383 vim-data_files += "/usr/share/vim/vim74/tools/vim_vs_net.cmd"
384 vim-data_files += "/usr/share/vim/vim74/tutor/*"
385 vim-data_files += "/usr/share/vim/vim74/delmenu.vim"
386 vim-data_files += "/usr/share/vim/vim74/menu.vim"
387 vim-data_files += "/usr/share/vim/vim74/mswin.vim"
388 vim-data_files += "/usr/share/vim/vim74/synmenu.vim"
389 vim-data_files += "/usr/share/vim/vim74/gvimrc_example.vim"
390 vim-data_files += "/usr/share/vim/vim74/vimrc_example.vim"
391
392 vim-base_files = ""
393 vim-base_files += "vim.manifest"
394 vim-base_files += "/etc/vimrc"
395 vim-base_files += "/usr/bin/edit"
396 vim-base_files += "/usr/bin/ex"
397 vim-base_files += "/usr/bin/rview"
398 vim-base_files += "/usr/bin/rvim"
399 vim-base_files += "/usr/bin/vi"
400 vim-base_files += "/usr/bin/vim"
401 vim-base_files += "/usr/bin/view"
402 vim-base_files += "/usr/bin/vimdiff"
403 vim-base_files += "/usr/bin/vimtutor"
404 vim-base_files += "/usr/bin/xxd"
405 vim-base_files += "/usr/share/doc/packages/vim"
406 vim-base_files += "/usr/share/vim/current"
407 vim-base_files += "/usr/share/vim/"
408 vim-base_files += "/usr/share/vim/vim74/"
409 vim-base_files += "/usr/share/vim/vim74/autoload/"
410 vim-base_files += "/usr/share/vim/vim74/colors/"
411 vim-base_files += "/usr/share/vim/vim74/compiler/"
412 vim-base_files += "/usr/share/vim/vim74/doc/"
413 vim-base_files += "/usr/share/vim/vim74/ftplugin/"
414 vim-base_files += "/usr/share/vim/vim74/indent/"
415 vim-base_files += "/usr/share/vim/vim74/keymap/"
416 vim-base_files += "/usr/share/vim/vim74/lang/"
417 vim-base_files += "/usr/share/vim/vim74/macros/"
418 vim-base_files += "/usr/share/vim/vim74/plugin/"
419 vim-base_files += "/usr/share/vim/vim74/print/"
420 vim-base_files += "/usr/share/vim/vim74/spell/"
421 vim-base_files += "/usr/share/vim/vim74/syntax/"
422 vim-base_files += "/usr/share/vim/vim74/tools/"
423 vim-base_files += "/usr/share/vim/vim74/tutor/"
424 vim-base_files += "/usr/share/vim/vim74/skeletons/"
425 vim-base_files += "/usr/share/vim/site"
426 vim-base_files += "/usr/share/vim/site/autoload/"
427 vim-base_files += "/usr/share/vim/site/colors/"
428 vim-base_files += "/usr/share/vim/site/doc/"
429 vim-base_files += "/usr/share/vim/site/plugin/"
430 vim-base_files += "/usr/share/vim/site/syntax/"
431 vim-base_files += "/usr/share/vim/site/ftdetect/"
432 vim-base_files += "/usr/share/vim/site/after/"
433 vim-base_files += "/usr/share/vim/site/after/syntax/"
434 vim-base_files += "/usr/share/vim/vim74/bugreport.vim"
435 vim-base_files += "/usr/share/vim/vim74/evim.vim"
436 vim-base_files += "/usr/share/vim/vim74/filetype.vim"
437 vim-base_files += "/usr/share/vim/vim74/ftoff.vim"
438 vim-base_files += "/usr/share/vim/vim74/ftplugin.vim"
439 vim-base_files += "/usr/share/vim/vim74/ftplugof.vim"
440 vim-base_files += "/usr/share/vim/vim74/indent.vim"
441 vim-base_files += "/usr/share/vim/vim74/indoff.vim"
442 vim-base_files += "/usr/share/vim/vim74/optwin.vim"
443 vim-base_files += "/usr/share/vim/vim74/scripts.vim"
444 vim-base_files += "/usr/share/vim/vim74/syntax/syntax.vim"
445
446 vim_files = ""
447 vim_files += "vim.manifest"
448 vim_files += "/usr/bin/vim-normal"
449
450 vim-docs_files = ""
451 vim-docs_files += "/usr/share/info"
452 vim-docs_files += "/usr/share/man"
453
454 vim-enhanced_files = ""
455 vim-enhanced_files += "vim.manifest"
456 vim-enhanced_files += "/usr/bin/vim-enhanced"
457
458 FILES_${PN}-data = "${vim-data_files}"
459 FILES_${PN}-base = "${vim-base_files}"
460 FILES_${PN} = "${vim_files}"
461 FILES_${PN}-docs = "${vim-docs_files}"
462 FILES_${PN}-enhanced = "${vim-enhanced_files}"
463
464 PKG_vim-data= "vim-data"
465 PKG_vim-base= "vim-base"
466 PKG_vim= "vim"
467 PKG_vim-docs= "vim-docs"
468 PKG_vim-enhanced= "vim-enhanced"
469
470 require vim-extraconf.inc