aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/build-aux/makefile-libbindle.am
blob: eba87908996b41caf37ca5ba9cd6c0167a049c24 (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
#
#   Bindle Binaries Tools
#   Copyright (C) 2022 David M. Syzdek <david@syzdek.net>.
#
#   Redistribution and use in source and binary forms, with or without
#   modification, are permitted provided that the following conditions are
#   met:
#
#      * Redistributions of source code must retain the above copyright
#        notice, this list of conditions and the following disclaimer.
#      * Redistributions in binary form must reproduce the above copyright
#        notice, this list of conditions and the following disclaimer in the
#        documentation and/or other materials provided with the distribution.
#      * Neither the name of Bindle Binaries nor the
#        names of its contributors may be used to endorse or promote products
#        derived from this software without specific prior written permission.
#
#   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
#   IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
#   THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
#   PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BINDLE BINARIES BE LIABLE FOR
#   ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
#   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
#   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
#   CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
#   LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
#   OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
#   SUCH DAMAGE.
#

include_HEADERS				+= include/bindle.h
lib_LIBRARIES				+= lib/libbindle.a
EXTRA_DIST				+= $(bindletools_srcdir)/build-aux/makefile-libbindle.am
EXTRA_DIST				+= $(bindletools_srcdir)/include/bindle.h
BUILT_SOURCES				+= include/bindle_prefix.h
CLEANFILES				+= include/bindle_prefix.h

LIBBINDLE_PREFIX			?= bindle_

libbindle_files				=  $(srcdir)/$(bindletools_srcdir)/include/bindle.h \
					   $(srcdir)/$(bindletools_srcdir)/lib/libbindle/libbindle.h \
					   $(srcdir)/$(bindletools_srcdir)/lib/libbindle/ldebug.c \
					   $(srcdir)/$(bindletools_srcdir)/lib/libbindle/ldebug.h \
					   $(srcdir)/$(bindletools_srcdir)/lib/libbindle/lobj.c \
					   $(srcdir)/$(bindletools_srcdir)/lib/libbindle/lobj.h \
					   $(srcdir)/$(bindletools_srcdir)/lib/libbindle/loptions.c \
					   $(srcdir)/$(bindletools_srcdir)/lib/libbindle/loptions.h \
					   $(srcdir)/$(bindletools_srcdir)/lib/libbindle/lstring.c \
					   $(srcdir)/$(bindletools_srcdir)/lib/libbindle/lstring.h \
					   $(srcdir)/$(bindletools_srcdir)/lib/libbindle/lstrings.c \
					   $(srcdir)/$(bindletools_srcdir)/lib/libbindle/lstrings.h \
					   $(srcdir)/$(bindletools_srcdir)/lib/libbindle/lutf8.c \
					   $(srcdir)/$(bindletools_srcdir)/lib/libbindle/lutf8.h
libbindle_sources			=  $(libbindle_files) \
					   include/bindle_prefix.h


# macros for lib/libbindle.a
lib_libbindle_a_DEPENDENCIES		= Makefile \
					  config.h \
					  $(libbindle_sources)
lib_libbindle_a_CPPFLAGS		= $(AM_CPPFLAGS) \
					  -I$(srcdir)/lib/libbindle
lib_libbindle_a_CFLAGS			= $(AM_CFLAGS)
lib_libbindle_a_SOURCES			= $(libbindle_sources)


libbindle_symbol_list = $(EGREP) \
	'^[[:space:]]{0,1}bindle_[_[:alnum:]]{1,}[\(\;][[:space:]]{0,}$$' \
	$(libbindle_sources) \
	|cut -d: -f2 \
	|$(SED) -e 's/[[:space:]]//g' -e 's/[(;]$$//g' -e 's/^bindle_//g' \
	|sort \
	|uniq


include/bindle_prefix.h: Makefile $(libbindle_files)
	@if test "x$(V)" == "x0";then \
	   echo "  GEN      $(@)"; \
	else \
	   echo "$(libbindle_symbol_list)"; \
	fi; \
	$(MKDIR_P) "`dirname "$(@)"`" || exit 1; \
	rm -f $(@) || exit 1; \
	for FUNC in `$(libbindle_symbol_list)`;do \
	   echo "#undef bindle_$$FUNC"; \
	   echo "#define bindle_$$FUNC $(LIBBINDLE_PREFIX)$$FUNC"; \
	done > $(@); \
	touch $(@);

# end of automake file