Update installation script for metadata spelling
[geeqie.git] / scripts / check-compiles.sh
1 #!/bin/sh
2
3 #/*
4 # * Copyright (C) 2021 The Geeqie Team
5 # *
6 # * Author: Colin Clark  
7 # *  
8 # * This program is free software; you can redistribute it and/or modify
9 # * it under the terms of the GNU General Public License as published by
10 # * the Free Software Foundation; either version 2 of the License, or
11 # * (at your option) any later version.
12 # *
13 # * This program is distributed in the hope that it will be useful,
14 # * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 # * GNU General Public License for more details.
17 # *
18 # * You should have received a copy of the GNU General Public License along
19 # * with this program; if not, write to the Free Software Foundation, Inc.,
20 # * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21 # */
22
23 ## @file
24 ## @brief Check that Geeqie compiles with both gcc and clang,
25 ## for both GTK2 and GTK3, and with and without optional modules.
26 ## 
27
28 compile()
29 {
30         compiler="$1"
31
32         # Cannot have --enable-debug-flags with --disable-gtk3
33         set -- "$disable_list --disable-gtk3" "--disable-gtk3" "$disable_list --enable-debug-flags" "--enable-debug-flags" "$disable_list" ""
34
35         i=1
36         while [ $i -le 6 ]
37         do
38                 variant=""
39                 eval variant="\$${i}"
40
41                 if [ "$variant" != "${variant%gtk3*}" ]
42                 then
43                         gtk="GTK2"
44                 else
45                         gtk="GTK3"
46                 fi
47                 if [ "$variant" != "${variant%disable-threads*}" ]
48                 then
49                         disabled="all disabled"
50                 else
51                         disabled="none disabled"
52                 fi
53                 if [ "$variant" != "${variant%--enable-debug-flags*}" ]
54                 then
55                         debug_flags="enable-debug-flags"
56                 else
57                         debug_flags=""
58                 fi
59
60                 printf '\e[32m%s\n' "$compiler $gtk $debug_flags $disabled"
61                 sudo make maintainer-clean > /dev/null 2>&1
62                 ./autogen.sh "$variant" > /dev/null 2>&1
63                 make -j > /dev/null
64
65                 i=$((i+1))
66         done
67 }
68
69 disable_list=" "$(awk -F '[][]' '/AC_HELP_STRING\(\[--disable-/ {if ($2 != "gtk3") print $2}' configure.ac | tr '\n' ' ')
70
71 printf '%s\n' "Disabled list: :$disable_list"
72
73 export CFLAGS="-Wno-deprecated-declarations"
74
75 export CC=clang
76 export CXX=clang++
77 compile "clang"
78
79 export CC=
80 export CXX=
81 compile "gcc"