Mercurial > minori
annotate configure.ac @ 291:9a88e1725fd2
*: refactor lots of stuff
I forgot to put this into different commits, oops!
anyway, it doesn't really matter *that* much since this is an
unfinished hobby project anyway. once it starts getting stable
commit history will be more important, but for now it's not
that big of a deal
author | Paper <paper@paper.us.eu.org> |
---|---|
date | Sun, 12 May 2024 16:31:07 -0400 |
parents | 9347e2eaf6e5 |
children | 703fb7d7c917 |
rev | line source |
---|---|
236
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
1 AC_INIT([minori], [0.1.0-alpha.1]) |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
2 |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
3 AC_CANONICAL_HOST |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
4 |
258 | 5 AC_CONFIG_SUBDIRS([dep/pugixml dep/animone dep/anitomy]) |
236
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
6 AC_CONFIG_SRCDIR([src/main.cc]) |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
7 AC_CONFIG_AUX_DIR([build-aux]) |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
8 AC_CONFIG_MACRO_DIRS([m4]) |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
9 |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
10 AM_INIT_AUTOMAKE([-Wall -Wportability foreign subdir-objects]) |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
11 |
264 | 12 dnl need C compiler for utf8proc |
13 AC_PROG_CC | |
14 | |
250 | 15 dnl Do we have a C++17 compiler |
236
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
16 AC_PROG_CXX |
237 | 17 AX_CXX_COMPILE_STDCXX([17], [noext], [mandatory]) |
290
9347e2eaf6e5
autoconf: add checking message for Qt PIC stuff
Paper <paper@paper.us.eu.org>
parents:
289
diff
changeset
|
18 AC_LANG([C++]) |
236
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
19 |
250 | 20 dnl Init libtool |
236
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
21 AM_PROG_AR |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
22 LT_INIT |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
23 |
282
19eb6c4dca78
autotools: ax_have_qt sucks, use pkgconf instead
Paper <paper@paper.us.eu.org>
parents:
273
diff
changeset
|
24 |
250 | 25 dnl Qt? |
291 | 26 |
27 | |
289
3dbf01233fec
autoconf: add a check for some weird Qt PIC requirements
Paper <paper@paper.us.eu.org>
parents:
288
diff
changeset
|
28 PKG_CHECK_MODULES([QT], [Qt5Core >= 5.7.0 Qt5Widgets Qt5Gui], [ |
3dbf01233fec
autoconf: add a check for some weird Qt PIC requirements
Paper <paper@paper.us.eu.org>
parents:
288
diff
changeset
|
29 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)" |
3dbf01233fec
autoconf: add a check for some weird Qt PIC requirements
Paper <paper@paper.us.eu.org>
parents:
288
diff
changeset
|
30 QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)" |
291 | 31 |
289
3dbf01233fec
autoconf: add a check for some weird Qt PIC requirements
Paper <paper@paper.us.eu.org>
parents:
288
diff
changeset
|
32 AC_PATH_PROGS(QT_MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"]) |
3dbf01233fec
autoconf: add a check for some weird Qt PIC requirements
Paper <paper@paper.us.eu.org>
parents:
288
diff
changeset
|
33 AC_PATH_PROGS(QT_RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"]) |
3dbf01233fec
autoconf: add a check for some weird Qt PIC requirements
Paper <paper@paper.us.eu.org>
parents:
288
diff
changeset
|
34 AC_PATH_PROGS(QT_UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"]) |
3dbf01233fec
autoconf: add a check for some weird Qt PIC requirements
Paper <paper@paper.us.eu.org>
parents:
288
diff
changeset
|
35 AC_PATH_PROGS(QT_LRELEASE, [lrelease-qt5 lrelease], lrelease, ["${QT_HOST_PATH}" "${QT_PATH}/bin"]) |
3dbf01233fec
autoconf: add a check for some weird Qt PIC requirements
Paper <paper@paper.us.eu.org>
parents:
288
diff
changeset
|
36 AC_PATH_PROGS(QT_LUPDATE, [lupdate-qt5 lupdate], lupdate, ["${QT_HOST_PATH}" "${QT_PATH}/bin"]) |
236
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
37 |
291 | 38 dnl On some platforms (see: Debian), Qt is built with |
39 dnl `-reduce-relocations`, which requires applications | |
40 dnl to be built with position-independent code. | |
41 dnl | |
42 dnl Unfortunately there's no way to check for this | |
43 dnl without using qmake (bleugh), so we use this check | |
44 dnl to see if qglobal.h can be included without PIC. | |
289
3dbf01233fec
autoconf: add a check for some weird Qt PIC requirements
Paper <paper@paper.us.eu.org>
parents:
288
diff
changeset
|
45 |
291 | 46 AC_MSG_CHECKING([for Qt requiring -fPIC]) |
290
9347e2eaf6e5
autoconf: add checking message for Qt PIC stuff
Paper <paper@paper.us.eu.org>
parents:
289
diff
changeset
|
47 |
291 | 48 saved_CXXFLAGS="$CXXFLAGS" |
49 CXXFLAGS="$CXXFLAGS $QT_CFLAGS" | |
50 AC_COMPILE_IFELSE( | |
51 [AC_LANG_PROGRAM([#include <qglobal.h>], [])], | |
52 [ | |
53 AC_MSG_RESULT([no]) | |
54 CXXFLAGS="$saved_CXXFLAGS" | |
55 ], | |
56 [ | |
57 AC_MSG_RESULT([yes]) | |
58 CXXFLAGS="$saved_CXXFLAGS -fPIC -DPIC" | |
59 ] | |
60 ) | |
61 ], [ | |
62 PKG_CHECK_MODULES([QT], [Qt6Core Qt6Widgets Qt6Gui], [ | |
63 QT_BIN_DIRECTORY="$(eval $PKG_CONFIG --variable=bindir Qt6Core)" | |
64 QT_LIBEXEC_DIRECTORY="$(eval $PKG_CONFIG --variable=libexecdir Qt6Core)" | |
65 | |
66 AC_PATH_PROGS(QT_MOC, [moc], moc, ["${QT_LIBEXEC_DIRECTORY}"]) | |
67 AC_PATH_PROGS(QT_RCC, [rcc], rcc, ["${QT_LIBEXEC_DIRECTORY}"]) | |
68 AC_PATH_PROGS(QT_UIC, [uic], uic, ["${QT_LIBEXEC_DIRECTORY}"]) | |
69 AC_PATH_PROGS(QT_LRELEASE, [lrelease], lrelease, ["${QT_BIN_DIRECTORY}"]) | |
70 AC_PATH_PROGS(QT_LUPDATE, [lupdate], lupdate, ["${QT_BIN_DIRECTORY}"]) | |
71 | |
72 dnl in my testing Qt 6 seems to require PIC unconditionally... | |
73 CXXFLAGS="$CXXFLAGS -fPIC" | |
74 ], [ | |
75 AC_MSG_ERROR([${QT_PKG_ERRORS}.]) | |
76 ]) | |
77 ]) | |
289
3dbf01233fec
autoconf: add a check for some weird Qt PIC requirements
Paper <paper@paper.us.eu.org>
parents:
288
diff
changeset
|
78 |
250 | 79 dnl need this for moc |
80 AC_PROG_MKDIR_P | |
81 AC_SUBST([MKDIR_P]) | |
236
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
82 |
250 | 83 dnl libcurl? |
291 | 84 LIBCURL_CHECK_CONFIG([yes], [7.87.0], [have_libcurl=yes], [have_libcurl=no]) |
236
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
85 |
250 | 86 AS_IF([test "x$have_libcurl" = "xno"], [AC_MSG_ERROR([*** libcurl not found.])]) |
236
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
87 |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
88 build_windows=no |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
89 build_osx=no |
250 | 90 build_linux=no |
236
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
91 build_glib=no |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
92 |
250 | 93 AS_CASE(["$host_os"], |
94 [cygwin*|mingw*], [build_windows=yes], | |
95 [darwin*], [build_osx=yes], | |
96 [linux*], [build_linux=yes], | |
97 []) | |
98 | |
99 if test "x$build_windows" = "xyes"; then | |
100 AC_DEFINE([WIN32]) | |
101 | |
102 dnl Check for windres | |
103 AC_CHECK_TOOL([WINDRES], [windres]) | |
104 AC_SUBST([WINDRES]) | |
105 elif test "x$build_osx" = "xyes"; then | |
106 AC_DEFINE([MACOSX]) | |
107 else | |
108 AS_IF([test "x$build_linux" = "xyes"], [AC_DEFINE([linux])]) | |
109 | |
110 PKG_CHECK_MODULES([GLIB], [gio-2.0 glib-2.0], [build_glib=yes], [build_glib=no]) | |
111 if test "x$build_glib" = "xyes"; then | |
112 AC_DEFINE([GLIB]) | |
113 | |
114 AC_SUBST([GLIB_CFLAGS]) | |
115 AC_SUBST([GLIB_LIBS]) | |
116 fi | |
117 fi | |
236
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
118 |
267
09c5bd74fe93
win32: make builds work again
Paper <paper@paper.us.eu.org>
parents:
264
diff
changeset
|
119 AC_DEFINE([UTF8PROC_STATIC]) |
09c5bd74fe93
win32: make builds work again
Paper <paper@paper.us.eu.org>
parents:
264
diff
changeset
|
120 |
236
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
121 AM_CONDITIONAL([BUILD_WIN], [test "x$build_windows" = "xyes"]) |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
122 AM_CONDITIONAL([BUILD_OSX], [test "x$build_osx" = "xyes"]) |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
123 AM_CONDITIONAL([BUILD_GLIB], [test "x$build_glib" = "xyes"]) |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
124 AM_CONDITIONAL([BUILD_WINDRES], [test "x$WINDRES" != "x"]) |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
125 |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
126 AC_CONFIG_FILES([Makefile]) |
4d461ef7d424
HUGE UPDATE: convert build system to autotools
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
127 AC_OUTPUT |