summaryrefslogtreecommitdiffstats
path: root/source-builder/config/sqlite-3-1.cfg
blob: a0863bdeb73035fd8a28f0d01b62c67418b6e2f3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#
# Sqlite 3.x.x.x Version 1.
#
# This configuration file configure's, make's and install's Sqlite
#

%if %{release} == %{nil}
%define release 1
%endif

Name:      sqlite-%{sqlite_version}-%{_host}-%{release}
Summary:   SQLite is an in-process library that implements a
           self-contained, serverless, zero-configuration,
           transactional SQL database engine.
Version:   %{sqlite_version}
Release:   %{release}
URL:       https://www.sqlite.org/

#
# Sqlite Source
#
%source set sqlite \
    https://www.sqlite.org/%{sqlite_src_year}/sqlite-autoconf-%{sqlite_src_version}.tar.gz

#
# Prepare the source code.
#
%prep
  build_top=$(pwd)

  source_dir_sqlite="sqlite-autoconf-%{sqlite_src_version}"
  %source setup sqlite -q -n sqlite-autoconf-%{sqlite_src_version}
  %patch setup sqlite -p1

  cd ${build_top}

%build
  build_top=$(pwd)

  %{build_directory}

  mkdir -p ${build_dir}
  cd ${build_dir}

  %{host_build_flags}

  # RTEMS-specific SQLite configuration options.
  # See also
  # - https://sqlite.org/wal.html#noshm
  # - https://sqlite.org/malloc.html
  #
  # Many other compile-time options may be passed in via CFLAGS.
  #   See also https://sqlite.org/compile.html
  #
  # RTEMS filesystems do not support POSIX advisory file locks.  Applications
  # must choose an appropriate SQLite VFS which avoids them, such as unix-none
  # (no locking at all: Application logic must avoid collisions) or
  # unix-dotfile.  This step must be performed at application startup time.
  #   See also https://sqlite.org/c3ref/vfs_find.html
  #
  CFLAGS="${CFLAGS} -DSQLITE_MAX_MMAP_SIZE=0 -DSQLITE_DEFAULT_LOCKING_MODE=1 -DSQLITE_ENABLE_MEMSYS5"

  ../${source_dir_sqlite}/configure \
    --host=%{_host} \
    --prefix=%{_prefix} \
    --bindir=%{_bindir} \
    --exec_prefix=%{_exec_prefix} \
    --includedir=%{_includedir} \
    --libdir=%{_libdir} \
    --libexecdir=%{_libexecdir} \
    --mandir=%{_mandir} \
    --infodir=%{_infodir} \
    --datadir=%{_datadir} \
    --disable-largefile \
    --disable-readline

  %{__make} %{?_smp_mflags} sqlite3.h libsqlite3.la

  cd ${build_top}

%install
  build_top=$(pwd)

  %{__rmdir} $SB_BUILD_ROOT

  cd ${build_dir}
  # Warning: The unusual install targets avoid attempting to compile and link
  # the SQLite3 command-line shell.  The SQLite3 shell is not supported by
  # RTEMS.
  %{__make} DESTDIR=$SB_BUILD_ROOT install-data install-libLTLIBRARIES
  cd ${build_top}