Skip to content

Commit 88ca2f5

Browse files
committed
Add Autotools based build system
* Also support various `ANCIENT_API`_foo macros in `<ancient/ancient.hpp>` in order to avoid having to define macros containing all kinds of escaping-requiring characters from the build system. The supported common cases are `ANCIENT_API_VISIBILITY_DEFAULT` (any modern Unix-like system), `ANCIENT_API_VISIBILITY_DEFAULT_USED` (some Emscripten targets), and `ANCIENT_API_DECLSPEC_DLLEXPORT`/`ANCIENT_API_DECLSPEC_IMPORT` (Windows). * Rename old `Makefile` to `Makefile.unix`. This avoids the name conflict with the automake `Makefile` generated by `configure`. * Add autoconf/automake/libtool/pkg-config build system. The old build system stays functional (albeit with a non-standard `Makefile.unix` name). A simple work-around to just continue with the old build system is to use `ln -s Makefile.unix Makefile` while developing. * Introduce package versioning (using SemVer) and soname versioning via libtool. Details are documented at the top of `configure.ac`. * Release tarballs can now be generated either as before via a direct repository snapshot, or via `make distcheck`.
1 parent d99c9c2 commit 88ca2f5

File tree

8 files changed

+387
-2
lines changed

8 files changed

+387
-2
lines changed

.gitignore

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,28 @@
11
*~
2+
*.la
3+
*.lo
24
*.o
5+
/.deps/
6+
/.libs/
7+
/aclocal.m4
8+
/ancient
9+
/ancient-*.tar.gz
10+
/autom4te.cache/
11+
/build-aux/
12+
/config.log
13+
/config.status
14+
/configure
15+
/libancient.pc
16+
/libtool
17+
/m4/
18+
/Makefile
19+
/Makefile.in
20+
#
21+
/src/.deps/
22+
/src/.dirstamp
23+
/src/Lzh/.deps/
24+
/src/Lzh/.dirstamp
25+
/src/Zip/.deps/
26+
/src/Zip/.dirstamp
27+
/src/common/.deps/
28+
/src/common/.dirstamp

Makefile.am

Lines changed: 206 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,206 @@
1+
ACLOCAL_AMFLAGS = -I m4 --install
2+
EXTRA_DIST =
3+
EXTRA_DIST += .gitignore
4+
EXTRA_DIST += libancient.pc.in
5+
EXTRA_DIST += LICENSE
6+
EXTRA_DIST += Makefile.unix
7+
EXTRA_DIST += README.md
8+
EXTRA_DIST += extra/BruteForceRNC1Encoder.cpp
9+
EXTRA_DIST += extra/Makefile
10+
EXTRA_DIST += fuzzing/all_formats.dict
11+
EXTRA_DIST += fuzzing/build.sh
12+
EXTRA_DIST += fuzzing/fuzz-main.sh
13+
EXTRA_DIST += fuzzing/fuzz-secondary.sh
14+
EXTRA_DIST += fuzzing/fuzz-settings.sh
15+
EXTRA_DIST += fuzzing/fuzz.cpp
16+
EXTRA_DIST += fuzzing/get-afl.sh
17+
EXTRA_DIST += fuzzing/readme.md
18+
MOSTLYCLEANFILES =
19+
20+
dist_doc_DATA =
21+
dist_doc_DATA += LICENSE
22+
dist_doc_DATA += README.md
23+
nobase_dist_doc_DATA =
24+
25+
bin_PROGRAMS =
26+
check_PROGRAMS =
27+
lib_LTLIBRARIES =
28+
29+
TESTS =
30+
31+
pkgconfigdir = $(libdir)/pkgconfig
32+
pkgconfig_DATA =
33+
nobase_include_HEADERS =
34+
35+
LIBANCIENT_FILES_SRC =
36+
LIBANCIENT_FILES_SRC += src/ACCADecompressor.cpp
37+
LIBANCIENT_FILES_SRC += src/ACCADecompressor.hpp
38+
LIBANCIENT_FILES_SRC += src/API.cpp
39+
LIBANCIENT_FILES_SRC += src/ARTMDecompressor.cpp
40+
LIBANCIENT_FILES_SRC += src/ARTMDecompressor.hpp
41+
LIBANCIENT_FILES_SRC += src/BLZWDecompressor.cpp
42+
LIBANCIENT_FILES_SRC += src/BLZWDecompressor.hpp
43+
LIBANCIENT_FILES_SRC += src/BZIP2Decompressor.cpp
44+
LIBANCIENT_FILES_SRC += src/BZIP2Decompressor.hpp
45+
LIBANCIENT_FILES_SRC += src/BZIP2Table.hpp
46+
LIBANCIENT_FILES_SRC += src/CBR0Decompressor.cpp
47+
LIBANCIENT_FILES_SRC += src/CBR0Decompressor.hpp
48+
LIBANCIENT_FILES_SRC += src/CRMDecompressor.cpp
49+
LIBANCIENT_FILES_SRC += src/CRMDecompressor.hpp
50+
LIBANCIENT_FILES_SRC += src/CYB2Decoder.cpp
51+
LIBANCIENT_FILES_SRC += src/CYB2Decoder.hpp
52+
LIBANCIENT_FILES_SRC += src/DEFLATEDecompressor.cpp
53+
LIBANCIENT_FILES_SRC += src/DEFLATEDecompressor.hpp
54+
LIBANCIENT_FILES_SRC += src/DLTADecode.cpp
55+
LIBANCIENT_FILES_SRC += src/DLTADecode.hpp
56+
LIBANCIENT_FILES_SRC += src/DMSDecompressor.cpp
57+
LIBANCIENT_FILES_SRC += src/DMSDecompressor.hpp
58+
LIBANCIENT_FILES_SRC += src/Decompressor.cpp
59+
LIBANCIENT_FILES_SRC += src/Decompressor.hpp
60+
LIBANCIENT_FILES_SRC += src/DynamicHuffmanDecoder.hpp
61+
LIBANCIENT_FILES_SRC += src/FASTDecompressor.cpp
62+
LIBANCIENT_FILES_SRC += src/FASTDecompressor.hpp
63+
LIBANCIENT_FILES_SRC += src/FBR2Decompressor.cpp
64+
LIBANCIENT_FILES_SRC += src/FBR2Decompressor.hpp
65+
LIBANCIENT_FILES_SRC += src/FRLEDecompressor.cpp
66+
LIBANCIENT_FILES_SRC += src/FRLEDecompressor.hpp
67+
LIBANCIENT_FILES_SRC += src/HFMNDecompressor.cpp
68+
LIBANCIENT_FILES_SRC += src/HFMNDecompressor.hpp
69+
LIBANCIENT_FILES_SRC += src/HUFFDecompressor.cpp
70+
LIBANCIENT_FILES_SRC += src/HUFFDecompressor.hpp
71+
LIBANCIENT_FILES_SRC += src/HuffmanDecoder.hpp
72+
LIBANCIENT_FILES_SRC += src/ILZRDecompressor.cpp
73+
LIBANCIENT_FILES_SRC += src/ILZRDecompressor.hpp
74+
LIBANCIENT_FILES_SRC += src/IMPDecompressor.cpp
75+
LIBANCIENT_FILES_SRC += src/IMPDecompressor.hpp
76+
LIBANCIENT_FILES_SRC += src/InputStream.cpp
77+
LIBANCIENT_FILES_SRC += src/InputStream.hpp
78+
LIBANCIENT_FILES_SRC += src/LHLBDecompressor.cpp
79+
LIBANCIENT_FILES_SRC += src/LHLBDecompressor.hpp
80+
LIBANCIENT_FILES_SRC += src/LIN1Decompressor.cpp
81+
LIBANCIENT_FILES_SRC += src/LIN1Decompressor.hpp
82+
LIBANCIENT_FILES_SRC += src/LIN2Decompressor.cpp
83+
LIBANCIENT_FILES_SRC += src/LIN2Decompressor.hpp
84+
LIBANCIENT_FILES_SRC += src/LZBSDecompressor.cpp
85+
LIBANCIENT_FILES_SRC += src/LZBSDecompressor.hpp
86+
LIBANCIENT_FILES_SRC += src/LZCBDecompressor.cpp
87+
LIBANCIENT_FILES_SRC += src/LZCBDecompressor.hpp
88+
LIBANCIENT_FILES_SRC += src/LZW2Decompressor.cpp
89+
LIBANCIENT_FILES_SRC += src/LZW2Decompressor.hpp
90+
LIBANCIENT_FILES_SRC += src/LZW4Decompressor.cpp
91+
LIBANCIENT_FILES_SRC += src/LZW4Decompressor.hpp
92+
LIBANCIENT_FILES_SRC += src/LZW5Decompressor.cpp
93+
LIBANCIENT_FILES_SRC += src/LZW5Decompressor.hpp
94+
LIBANCIENT_FILES_SRC += src/LZXDecompressor.cpp
95+
LIBANCIENT_FILES_SRC += src/LZXDecompressor.hpp
96+
LIBANCIENT_FILES_SRC += src/Lzh/LH1Decompressor.cpp
97+
LIBANCIENT_FILES_SRC += src/Lzh/LH1Decompressor.hpp
98+
LIBANCIENT_FILES_SRC += src/Lzh/LH2Decompressor.cpp
99+
LIBANCIENT_FILES_SRC += src/Lzh/LH2Decompressor.hpp
100+
LIBANCIENT_FILES_SRC += src/Lzh/LH3Decompressor.cpp
101+
LIBANCIENT_FILES_SRC += src/Lzh/LH3Decompressor.hpp
102+
LIBANCIENT_FILES_SRC += src/Lzh/LHXDecompressor.cpp
103+
LIBANCIENT_FILES_SRC += src/Lzh/LHXDecompressor.hpp
104+
LIBANCIENT_FILES_SRC += src/Lzh/LZ5Decompressor.cpp
105+
LIBANCIENT_FILES_SRC += src/Lzh/LZ5Decompressor.hpp
106+
LIBANCIENT_FILES_SRC += src/Lzh/LZHDecompressor.cpp
107+
LIBANCIENT_FILES_SRC += src/Lzh/LZHDecompressor.hpp
108+
LIBANCIENT_FILES_SRC += src/Lzh/LZSDecompressor.cpp
109+
LIBANCIENT_FILES_SRC += src/Lzh/LZSDecompressor.hpp
110+
LIBANCIENT_FILES_SRC += src/Lzh/PMDecompressor.cpp
111+
LIBANCIENT_FILES_SRC += src/Lzh/PMDecompressor.hpp
112+
LIBANCIENT_FILES_SRC += src/MASHDecompressor.cpp
113+
LIBANCIENT_FILES_SRC += src/MASHDecompressor.hpp
114+
LIBANCIENT_FILES_SRC += src/MMCMPDecompressor.cpp
115+
LIBANCIENT_FILES_SRC += src/MMCMPDecompressor.hpp
116+
LIBANCIENT_FILES_SRC += src/NONEDecompressor.cpp
117+
LIBANCIENT_FILES_SRC += src/NONEDecompressor.hpp
118+
LIBANCIENT_FILES_SRC += src/NUKEDecompressor.cpp
119+
LIBANCIENT_FILES_SRC += src/NUKEDecompressor.hpp
120+
LIBANCIENT_FILES_SRC += src/OutputStream.cpp
121+
LIBANCIENT_FILES_SRC += src/OutputStream.hpp
122+
LIBANCIENT_FILES_SRC += src/PPDecompressor.cpp
123+
LIBANCIENT_FILES_SRC += src/PPDecompressor.hpp
124+
LIBANCIENT_FILES_SRC += src/RAKEDecompressor.cpp
125+
LIBANCIENT_FILES_SRC += src/RAKEDecompressor.hpp
126+
LIBANCIENT_FILES_SRC += src/RDCNDecompressor.cpp
127+
LIBANCIENT_FILES_SRC += src/RDCNDecompressor.hpp
128+
LIBANCIENT_FILES_SRC += src/RLENDecompressor.cpp
129+
LIBANCIENT_FILES_SRC += src/RLENDecompressor.hpp
130+
LIBANCIENT_FILES_SRC += src/RNCDecompressor.cpp
131+
LIBANCIENT_FILES_SRC += src/RNCDecompressor.hpp
132+
LIBANCIENT_FILES_SRC += src/RangeDecoder.cpp
133+
LIBANCIENT_FILES_SRC += src/RangeDecoder.hpp
134+
LIBANCIENT_FILES_SRC += src/SDHCDecompressor.cpp
135+
LIBANCIENT_FILES_SRC += src/SDHCDecompressor.hpp
136+
LIBANCIENT_FILES_SRC += src/SHR3Decompressor.cpp
137+
LIBANCIENT_FILES_SRC += src/SHR3Decompressor.hpp
138+
LIBANCIENT_FILES_SRC += src/SHRIDecompressor.cpp
139+
LIBANCIENT_FILES_SRC += src/SHRIDecompressor.hpp
140+
LIBANCIENT_FILES_SRC += src/SLZ3Decompressor.cpp
141+
LIBANCIENT_FILES_SRC += src/SLZ3Decompressor.hpp
142+
LIBANCIENT_FILES_SRC += src/SMPLDecompressor.cpp
143+
LIBANCIENT_FILES_SRC += src/SMPLDecompressor.hpp
144+
LIBANCIENT_FILES_SRC += src/SQSHDecompressor.cpp
145+
LIBANCIENT_FILES_SRC += src/SQSHDecompressor.hpp
146+
LIBANCIENT_FILES_SRC += src/SXSCDecompressor.cpp
147+
LIBANCIENT_FILES_SRC += src/SXSCDecompressor.hpp
148+
LIBANCIENT_FILES_SRC += src/StoneCrackerDecompressor.cpp
149+
LIBANCIENT_FILES_SRC += src/StoneCrackerDecompressor.hpp
150+
LIBANCIENT_FILES_SRC += src/TDCSDecompressor.cpp
151+
LIBANCIENT_FILES_SRC += src/TDCSDecompressor.hpp
152+
LIBANCIENT_FILES_SRC += src/TPWMDecompressor.cpp
153+
LIBANCIENT_FILES_SRC += src/TPWMDecompressor.hpp
154+
LIBANCIENT_FILES_SRC += src/XPKDecompressor.cpp
155+
LIBANCIENT_FILES_SRC += src/XPKDecompressor.hpp
156+
LIBANCIENT_FILES_SRC += src/XPKMain.cpp
157+
LIBANCIENT_FILES_SRC += src/XPKMain.hpp
158+
LIBANCIENT_FILES_SRC += src/ZENODecompressor.cpp
159+
LIBANCIENT_FILES_SRC += src/ZENODecompressor.hpp
160+
LIBANCIENT_FILES_SRC += src/Zip/ImplodeDecompressor.cpp
161+
LIBANCIENT_FILES_SRC += src/Zip/ImplodeDecompressor.hpp
162+
LIBANCIENT_FILES_SRC += src/Zip/ReduceDecompressor.cpp
163+
LIBANCIENT_FILES_SRC += src/Zip/ReduceDecompressor.hpp
164+
LIBANCIENT_FILES_SRC += src/Zip/ShrinkDecompressor.cpp
165+
LIBANCIENT_FILES_SRC += src/Zip/ShrinkDecompressor.hpp
166+
LIBANCIENT_FILES_SRC += src/Zip/ZIPDecompressor.cpp
167+
LIBANCIENT_FILES_SRC += src/Zip/ZIPDecompressor.hpp
168+
LIBANCIENT_FILES_SRC += src/common/Buffer.cpp
169+
LIBANCIENT_FILES_SRC += src/common/Buffer.hpp
170+
LIBANCIENT_FILES_SRC += src/common/CRC16.cpp
171+
LIBANCIENT_FILES_SRC += src/common/CRC16.hpp
172+
LIBANCIENT_FILES_SRC += src/common/CRC32.cpp
173+
LIBANCIENT_FILES_SRC += src/common/CRC32.hpp
174+
LIBANCIENT_FILES_SRC += src/common/Common.cpp
175+
LIBANCIENT_FILES_SRC += src/common/Common.hpp
176+
LIBANCIENT_FILES_SRC += src/common/MemoryBuffer.cpp
177+
LIBANCIENT_FILES_SRC += src/common/MemoryBuffer.hpp
178+
LIBANCIENT_FILES_SRC += src/common/OverflowCheck.hpp
179+
LIBANCIENT_FILES_SRC += src/common/StaticBuffer.cpp
180+
LIBANCIENT_FILES_SRC += src/common/StaticBuffer.hpp
181+
LIBANCIENT_FILES_SRC += src/common/SubBuffer.cpp
182+
LIBANCIENT_FILES_SRC += src/common/SubBuffer.hpp
183+
LIBANCIENT_FILES_SRC += src/common/WrappedVectorBuffer.cpp
184+
LIBANCIENT_FILES_SRC += src/common/WrappedVectorBuffer.hpp
185+
186+
pkgconfig_DATA += libancient.pc
187+
lib_LTLIBRARIES += libancient.la
188+
libancient_la_LDFLAGS = -version-info $(LIBANCIENT_LTVER_CURRENT):$(LIBANCIENT_LTVER_REVISION):$(LIBANCIENT_LTVER_AGE) -no-undefined
189+
includeancientdir = $(includedir)/ancient
190+
includeancient_HEADERS =
191+
includeancient_HEADERS += api/ancient/ancient.hpp
192+
#nobase_include_HEADERS += api/ancient/ancient.hpp
193+
libancient_la_CPPFLAGS = -I$(srcdir)/src -I$(srcdir)/api -I$(srcdir)/api/ancient
194+
libancient_la_CXXFLAGS =
195+
libancient_la_CFLAGS =
196+
libancient_la_LIBADD =
197+
libancient_la_SOURCES =
198+
libancient_la_SOURCES += $(LIBANCIENT_FILES_SRC)
199+
200+
bin_PROGRAMS += ancient
201+
ancient_CPPFLAGS = -I$(srcdir)/api
202+
ancient_CXXFLAGS =
203+
ancient_LDADD = libancient.la
204+
ancient_SOURCES =
205+
ancient_SOURCES += main.cpp
206+

Makefile renamed to Makefile.unix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ VPATH := src src/Lzh src/Zip src/common fuzzing
55
CXX ?= c++
66
COMMONFLAGS = -Os -Wall -Wsign-compare -Wnarrowing -Isrc -Iapi -Iapi/ancient
77
CFLAGS = $(COMMONFLAGS)
8-
CXXFLAGS = $(COMMONFLAGS) -std=c++17 -fno-rtti -fvisibility=hidden -DANCIENT_API="__attribute__((visibility(\"default\")))"
8+
CXXFLAGS = $(COMMONFLAGS) -std=c++17 -fno-rtti -fvisibility=hidden -DANCIENT_API_VISIBILITY_DEFAULT
99

1010
ifeq ($(BUILD_LIBRARY),1)
1111
LIB = ancient.dylib

api/ancient/ancient.hpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,26 @@
33
#ifndef ANCIENT_ANCIENT_HPP
44
#define ANCIENT_ANCIENT_HPP
55

6+
#ifndef ANCIENT_API
7+
#if defined(ANCIENT_API_DECLSPEC_DLLEXPORT)
8+
#define ANCIENT_API __declspec(dllexport)
9+
#endif
10+
#if defined(ANCIENT_API_DECLSPEC_DLLIMPORT)
11+
#define ANCIENT_API __declspec(dllimport)
12+
#endif
13+
#if defined(ANCIENT_API_VISIBILITY_DEFAULT_USED)
14+
#define ANCIENT_API __attribute__((visibility("default"))) __attribute__((used))
15+
#endif
16+
#if defined(ANCIENT_API_VISIBILITY_DEFAULT)
17+
#define ANCIENT_API __attribute__((visibility("default")))
18+
#endif
19+
#if defined(ANCIENT_API_VISIBILITY_HIDDEN)
20+
#define ANCIENT_API __attribute__((visibility("hidden")))
21+
#endif
622
#ifndef ANCIENT_API
723
#define ANCIENT_API
824
#endif
25+
#endif
926

1027
#include <exception>
1128
#include <memory>

autogen.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/usr/bin/env sh
2+
autoreconf -i

configure.ac

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
2+
AC_INIT([ancient], [2.0.0-pre.2], [https://github.com/temisu/ancient/issues], [ancient], [https://github.com/temisu/ancient/])
3+
# ^^^^^^^^^^^
4+
# Package Version
5+
#
6+
# MAJOR.MINOR.PATCH[-PRE][+META]
7+
#
8+
# * increment MAJOR and set MINOR=0 and PATCH=0 for incompatible ABI/API changes (changed/removed API elements)
9+
# * increment MINOR and set PATCH=0 for compatible ABI/API changes (added API elements)
10+
# * increment PATCH and set PRE=-pre.0 immediately after every release, always
11+
# * increment PRE at free will
12+
# * for a release, set PRE="", i.e. the version number should look like "2.32.42" or maybe "2.23.42+autotools"
13+
# * eveything appended after "+" is considered build/variant metadata is not part of version ordering
14+
# For details, see <https://semver.org/spec/v2.0.0.html>.
15+
#
16+
17+
#
18+
# Libtool version-info (used to determine soname)
19+
#
20+
# * increment REVISION immediately after every release, always
21+
# * increment CURRENT when the next release contains any ABI changes (added/changed/removed API elements), and set REVISION=0
22+
# * increment AGE when the next release stays compatible with the previous release (only added API elements)
23+
# * set AGE=0 when the next release is incompatible with the previous release (changed/removed API elements)
24+
# For details, see <https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html>.
25+
LIBANCIENT_LTVER_CURRENT=2
26+
LIBANCIENT_LTVER_REVISION=0
27+
LIBANCIENT_LTVER_AGE=0
28+
#
29+
30+
#
31+
# Dependencies (Debian/Ubuntu package names):
32+
#
33+
# * autoconf
34+
# * autoconf-archive
35+
# * automake
36+
# * libtool
37+
# * make
38+
# * pkg-config
39+
#
40+
41+
#
42+
# Release procedure:
43+
#
44+
# ./autogen.sh
45+
# ./configure
46+
# make distcheck
47+
# make distclean
48+
#
49+
50+
#
51+
# Verbose make output:
52+
# ./configure --disable-silent-rules
53+
#
54+
55+
AC_PREREQ([2.68])
56+
57+
AC_CONFIG_MACRO_DIR([m4])
58+
AC_CONFIG_AUX_DIR([build-aux])
59+
AC_CONFIG_FILES([Makefile libancient.pc])
60+
61+
AM_INIT_AUTOMAKE([1.11 -Wall -Werror foreign subdir-objects])
62+
63+
AM_PROG_AR
64+
65+
LT_INIT
66+
67+
AC_SYS_LARGEFILE
68+
69+
PKG_PROG_PKG_CONFIG([0.24])
70+
71+
AM_SILENT_RULES([yes])
72+
73+
# C
74+
#AC_PROG_CC
75+
#AM_PROG_CC_C_O
76+
77+
# C++
78+
AC_PROG_CXX
79+
80+
AC_PROG_INSTALL
81+
82+
AC_SUBST([LIBANCIENT_LTVER_CURRENT])
83+
AC_SUBST([LIBANCIENT_LTVER_REVISION])
84+
AC_SUBST([LIBANCIENT_LTVER_AGE])
85+
86+
# C
87+
#AC_PROG_CC_STDC
88+
#AC_PROG_CC_C99
89+
90+
# C++
91+
AX_CXX_COMPILE_STDCXX(17, [noext], [mandatory])
92+
93+
# internal (non-exposed) dependencies (pkg-config) for .pc file
94+
LIBANCIENT_PC_REQUIRES_PRIVATE=
95+
# internal (non-exposed) dependencies (plain linker) for .pc file
96+
LIBANCIENT_PC_LIBS_PRIVATE=
97+
# CFLAGS required to use the library for .pc file
98+
LIBANCIENT_PC_CFLAGS=
99+
# ANCIENT_API macro for .pc file
100+
LIBANCIENT_PC_ANCIENT_API=
101+
102+
# C
103+
#AC_LANG_PUSH([C])
104+
#AX_CHECK_COMPILE_FLAG([-fvisibility=hidden], [CFLAGS="$CFLAGS -fvisibility=hidden"])
105+
#AX_CFLAGS_WARN_ALL
106+
#AC_LANG_POP([C])
107+
108+
# C++
109+
AC_LANG_PUSH([C++])
110+
AX_CHECK_COMPILE_FLAG([-fvisibility=hidden], [CXXFLAGS="$CXXFLAGS -fvisibility=hidden"])
111+
AX_CHECK_COMPILE_FLAG([-fvisibility=default], [AC_DEFINE([ANCIENT_API], [__attribute__((visibility("default")))])])
112+
AX_CHECK_COMPILE_FLAG([-fvisibility=default], [AC_SUBST([LIBANCIENT_PC_ANCIENT_API], [-DANCIENT_API_VISIBILITY_DEFAULT])])
113+
AX_CXXFLAGS_WARN_ALL
114+
AC_LANG_POP([C++])
115+
116+
AC_SUBST([LIBANCIENT_PC_REQUIRES_PRIVATE])
117+
AC_SUBST([LIBANCIENT_PC_LIBS_PRIVATE])
118+
AC_SUBST([LIBANCIENT_PC_CFLAGS])
119+
AC_SUBST([LIBANCIENT_PC_ANCIENT_API])
120+
121+
AC_OUTPUT

0 commit comments

Comments
 (0)