first commit
[scm/bb/meta-tizen.git] / recipes-tizen / db4 / db4.inc
1 DESCRIPTION = "Berkeley DB Database Library Version 4.8"
2 HOMEPAGE = "http://www.sleepycat.com"
3 SECTION = "System/Libraries"
4 LICENSE = "BSD-3-Clause"
5
6 SRC_URI = ""
7
8 S = "${WORKDIR}/git"
9
10 PROVIDES = ""
11
12 #PROVIDES by db4-doc 
13 PROVIDES += "db4-doc"
14 RPROVIDES_db4-doc += "db4-doc"
15
16 #PROVIDES by db4-utils 
17 PROVIDES += "db4-utils"
18 RPROVIDES_db4-utils += "db4-utils"
19
20 #PROVIDES by db4 
21 PROVIDES += "db4"
22 RPROVIDES_db4 += "db4"
23 # the PROVIDES rules is ignore "db = 4.8.30.NC"
24 PROVIDES += "db"
25 RPROVIDES_db4 += "db"
26
27 #PROVIDES by db4-devel 
28 PROVIDES += "db4-devel"
29 RPROVIDES_db4-devel += "db4-devel"
30 RPROVIDES_db4-devel += "db4-dev"
31
32 RDEPENDS = ""
33 #RDEPENDS of db4-devel (${PN}-devel)
34 RDEPENDS_${PN}-devel += "glibc-dev"
35 RDEPENDS_${PN}-devel += "db4"
36
37
38 DEPENDS = ""
39 #DEPENDS of db4 
40 DEPENDS += "autoconf-native"
41 DEPENDS += "gcc-c++"
42 DEPENDS += "fdupes-native"
43
44 do_patch() {
45  chmod -Rf a+rX,u+w,g-w,o-w ${S}
46  #setup -q -n db-4.8.30.NC
47  cp ${S}/packaging/db4.manifest .
48  
49  
50 }
51
52 do_configure() {
53 }
54
55 do_compile() {
56  LANG=C
57  export LANG
58  unset DISPLAY
59  CFLAGS="-O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables" ; export CFLAGS ; 
60  CXXFLAGS="${CXXFLAGS:--O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables}" ; export CXXFLAGS ; 
61  FFLAGS="${FFLAGS:--O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -I%_fmoddir}" ; export FFLAGS ; 
62  LD_AS_NEEDED=1; export LD_AS_NEEDED ; 
63  
64  cd dist
65  # dist/RELEASE codes the build date into the binary.
66  # Use last change of changes file instead
67  LAST_MOD=`stat --format="%Y" ${S}/packaging/db4.changes`
68  DIST_DATE=`date '+%B %e, %Y' --date="@$LAST_MOD"`
69  sed -i -e "s/^DB_RELEASE_DATE=.*$/DB_RELEASE_DATE=\"$DIST_DATE\"/" RELEASE
70  ./s_config
71  CFLAGS="-O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fno-strict-aliasing"
72  CC=gcc
73  export CFLAGS CXXFLAGS CC
74  #
75  # Build now the NPTL version
76  #
77  mkdir ../build_nptl
78  cd ../build_nptl
79  ../dist/configure --prefix=/usr \
80          --libdir=/usr/lib --enable-compat185 --disable-dump185 \
81          --enable-shared --disable-static --enable-cxx \
82          --with-mutex="POSIX/pthreads/library" \
83          x86_64-suse-linux
84  # Make sure O_DIRECT is really disabled (build host could have old kernel)
85  perl -pi -e 's/#define HAVE_O_DIRECT 1/#undef HAVE_O_DIRECT/' db_config.h
86  # Remove libtool predep_objects and postdep_objects wonkiness
87  perl -pi -e 's/^predep_objects=".*$/predep_objects=""/' libtool
88  perl -pi -e 's/^postdep_objects=".*$/postdep_objects=""/' libtool
89  perl -pi -e 's/-shared -nostdlib/-shared/' libtool
90  
91  make -j16 LIBSO_LIBS='$(LIBS)' LIBXSO_LIBS='$(LIBS)'" -L/usr/lib -lstdc++"
92  
93  
94  
95 }
96
97 do_install() {
98  echo export RPM_BUILD_ROOT=${D}
99  LANG=C
100  export LANG
101  unset DISPLAY
102  rm -rf ${D} 
103  mkdir -p ${D} 
104  
105  mkdir -p ${D}/usr/include/db4
106  CONFIG_ARGS=$(find . -name "config.log" -exec grep "\$ \.\./dist\/configure" {} \; | sed 's/.*configure\( --.*\)/\1/g')
107  if [ -z "$CONFIG_ARGS" ]
108  then
109    echo "could not find configure arguments ... exiting"
110    exit 42
111  fi
112  mkdir -p ${D}/usr/lib
113  cd build_nptl
114  make prefix=${D}/usr libdir=${D}/usr/lib strip=true install
115  cd ..
116  # make ldd happy:
117  chmod 755 ${D}/usr/lib/libdb*.so
118  # Fix header file installation
119  mv ${D}/usr/include/*.h ${D}/usr/include/db4
120  echo "#include <db4/db.h>" > ${D}/usr/include/db.h
121  echo "#include <db4/db_185.h>" > ${D}/usr/include/db_185.h
122  echo "#include <db4/db_cxx.h>" > ${D}/usr/include/db_cxx.h
123  # remove dangling tags symlink from examples.
124  rm -f examples_cxx/tags
125  rm -f examples_c/tags
126  # Move documentation to the right directory
127  mkdir -p ${D}/usr/share/doc/packages/db4
128  mv ${D}/usr/docs/* ${D}//usr/share/doc/packages/db4
129  cp -a examples_cxx examples_c ${D}//usr/share/doc/packages/db4
130  cp -a LICENSE README ${D}//usr/share/doc/packages/db4
131  #
132  # Remove api documentation for C++, Java and TCL
133  rm -rf ${D}//usr/share/doc/packages/db4/csharp
134  rm -rf ${D}//usr/share/doc/packages/db4/java
135  rm -rf ${D}//usr/share/doc/packages/db4/api_reference/CXX
136  rm -rf ${D}//usr/share/doc/packages/db4/api_reference/STL
137  rm -rf ${D}//usr/share/doc/packages/db4/api_reference/TCL
138  rm -rf ${D}//usr/share/doc/packages/db4/gsg*/CXX
139  rm -rf ${D}//usr/share/doc/packages/db4/gsg*/JAVA
140  mv ${D}//usr/share/doc/packages/db4/collections/tutorial ${D}//usr/share/doc/packages/db4/
141  # Remove crappy *.la files
142  rm -rf ${D}/usr/lib/*.la
143  rm -rf ${D}/usr/lib/tls/*.la
144  
145   _target=""; 
146   _symlinks=0; 
147    
148   fdupes -q -n -r ${D}/usr/lib | 
149    while read _file; do 
150      if test -z "$_target" ; then 
151        _target="$_file"; 
152      else 
153        if test -z "$_file" ; then 
154         _target=""; 
155         continue ; 
156        fi ; 
157        if test "$_symlinks" = 1; then 
158          ln -sf "${_target#${D}}" "$_file"; 
159        else 
160          ln -f "$_target" "$_file"; 
161        fi ;
162      fi ; 
163   done 
164  
165   _target=""; 
166   _symlinks=0; 
167    
168   fdupes -q -n -r ${D}/usr/share/doc/packages/db4 | 
169    while read _file; do 
170      if test -z "$_target" ; then 
171        _target="$_file"; 
172      else 
173        if test -z "$_file" ; then 
174         _target=""; 
175         continue ; 
176        fi ; 
177        if test "$_symlinks" = 1; then 
178          ln -sf "${_target#${D}}" "$_file"; 
179        else 
180          ln -f "$_target" "$_file"; 
181        fi ;
182      fi ; 
183   done 
184  
185  
186 }
187
188 PACKAGES = ""
189 PACKAGES += "db4-doc"
190 PACKAGES += "db4-utils"
191 PACKAGES += "db4"
192 PACKAGES += "db4-devel"
193
194 db4-doc_files = ""
195 db4-doc_files += "db4.manifest"
196 db4-doc_files += "/usr/share/doc/packages/db4"
197 db4-doc_files += "/usr/share/doc/packages/db4/LICENSE"
198 db4-doc_files += "/usr/share/doc/packages/db4/README"
199 db4-doc_files += "/usr/share/doc/packages/db4/index.html"
200 db4-doc_files += "/usr/share/doc/packages/db4/license"
201 db4-doc_files += "/usr/share/doc/packages/db4/articles"
202 db4-doc_files += "/usr/share/doc/packages/db4/api_reference"
203 db4-doc_files += "/usr/share/doc/packages/db4/examples_c"
204 db4-doc_files += "/usr/share/doc/packages/db4/examples_cxx"
205 db4-doc_files += "/usr/share/doc/packages/db4/gsg*"
206 db4-doc_files += "/usr/share/doc/packages/db4/porting"
207 db4-doc_files += "/usr/share/doc/packages/db4/programmer_reference"
208 db4-doc_files += "/usr/share/doc/packages/db4/tutorial"
209
210 db4-utils_files = ""
211 db4-utils_files += "db4.manifest"
212 db4-utils_files += "/usr/bin/db_archive"
213 db4-utils_files += "/usr/bin/db_checkpoint"
214 db4-utils_files += "/usr/bin/db_deadlock"
215 db4-utils_files += "/usr/bin/db_dump"
216 db4-utils_files += "/usr/bin/db_load"
217 db4-utils_files += "/usr/bin/db_printlog"
218 db4-utils_files += "/usr/bin/db_recover"
219 db4-utils_files += "/usr/bin/db_sql"
220 db4-utils_files += "/usr/bin/db_stat"
221 db4-utils_files += "/usr/bin/db_upgrade"
222 db4-utils_files += "/usr/bin/db_verify"
223 db4-utils_files += "/usr/bin/db_hotbackup"
224
225 db4_files = ""
226 db4_files += "db4.manifest"
227 db4_files += "/usr/lib/libdb-4.8.so"
228 db4_files += "/usr/lib/libdb_cxx-4.8.so"
229
230 db4-devel_files = ""
231 db4-devel_files += "db4.manifest"
232 db4-devel_files += "/usr/include/db4"
233 db4-devel_files += "/usr/include/db.h"
234 db4-devel_files += "/usr/include/db_185.h"
235 db4-devel_files += "/usr/include/db_cxx.h"
236 db4-devel_files += "/usr/include/db4/db.h"
237 db4-devel_files += "/usr/include/db4/db_185.h"
238 db4-devel_files += "/usr/include/db4/db_cxx.h"
239 db4-devel_files += "/usr/lib/libdb.so"
240 db4-devel_files += "/usr/lib/libdb-4.so"
241 db4-devel_files += "/usr/lib/libdb_cxx.so"
242 db4-devel_files += "/usr/lib/libdb_cxx-4.so"
243
244 FILES_${PN}-doc = "${db4-doc_files}"
245 FILES_${PN}-utils = "${db4-utils_files}"
246 FILES_${PN} = "${db4_files}"
247 FILES_${PN}-devel = "${db4-devel_files}"
248
249 PKG_db4-doc= "db4-doc"
250 PKG_db4-utils= "db4-utils"
251 PKG_db4= "db4"
252 PKG_db4-devel= "db4-devel"
253
254 require db4-extraconf.inc