blob: 8d01585d8e34c52159071fdc1b4b1fea7c5003fe [file] [log] [blame]
Will Arthurca8e7f32015-08-03 15:35:19 -04001#;**********************************************************************;
2#
3# Copyright (c) 2015, Intel Corporation
4# All rights reserved.
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions are met:
8#
9# 1. Redistributions of source code must retain the above copyright notice,
10# this list of conditions and the following disclaimer.
11#
12# 2. Redistributions in binary form must reproduce the above copyright notice,
13# this list of conditions and the following disclaimer in the documentation
14# and/or other materials provided with the distribution.
15#
16# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
26# THE POSSIBILITY OF SUCH DAMAGE.
27#;**********************************************************************;
28
Philip Triccae690e082015-09-07 18:17:35 -070029include src_vars.mk
30
Philip Triccaa509a682015-09-14 15:34:52 -070031ACLOCAL_AMFLAGS = -I m4
Philip Tricca6e2b1152017-03-14 09:29:54 -070032AM_CFLAGS = -I$(srcdir)/include -I$(srcdir)/sysapi/include
Philip Triccadaeb5bb2016-05-26 19:27:45 -070033AM_CXXFLAGS = $(AM_CFLAGS)
Philip Triccaa509a682015-09-14 15:34:52 -070034
Philip Tricca2bd4adb2015-09-25 00:14:16 -070035# stuff to build, what that stuff is, and where/if to install said stuff
Philip Tricca00074b72017-05-10 13:14:53 -070036noinst_PROGRAMS = $(tpmclient)
Philip Tricca826f5902016-05-26 16:44:31 -070037lib_LTLIBRARIES = $(libsapi) $(libtcti_device) $(libtcti_socket)
Philip Triccab77704e2016-12-02 11:26:59 -080038noinst_LTLIBRARIES = test/integration/libtest_utils.la
39check_PROGRAMS = $(TESTS_UNIT) $(TESTS_INTEGRATION)
Philip Tricca4334dee2016-08-09 19:56:28 -070040
Philip Triccab194be92016-03-15 13:27:09 -070041# unit tests
Philip Tricca4334dee2016-08-09 19:56:28 -070042if UNIT
Philip Triccab77704e2016-12-02 11:26:59 -080043TESTS_UNIT = \
Philip Tricca73407422016-12-01 15:37:50 -080044 test/unit/CheckOverflow \
45 test/unit/CommonPreparePrologue \
46 test/unit/CopyCommandHeader \
47 test/unit/GetNumHandles \
48 test/unit/marshal-TPM2B-simple \
49 test/unit/marshal-UINT16 \
50 test/unit/marshal-UINT32 \
51 test/unit/tcti-device \
52 test/unit/unmarshal-UINT16 \
53 test/unit/unmarshal-UINT32
Philip Tricca4334dee2016-08-09 19:56:28 -070054endif #UNIT
55
hp7ae176b2016-12-02 11:16:45 -080056TESTS_INTEGRATION = \
hp1b9ccfa2016-12-03 00:05:07 +080057 test/integration/get-random \
58 test/integration/self-test
hp7ae176b2016-12-02 11:16:45 -080059
Philip Triccab194be92016-03-15 13:27:09 -070060TESTS = $(check_PROGRAMS)
Philip Tricca632c4312017-06-05 11:58:08 -070061CLEANFILES = \
62 $(nodist_pkgconfig_DATA) \
Philip Triccafe671682017-06-04 19:14:31 -070063 $(man3_MANS) \
Philip Tricca632c4312017-06-05 11:58:08 -070064 $(man7_MANS)
Philip Tricca7d3515f2015-09-07 10:06:56 -070065
Philip Triccab77704e2016-12-02 11:26:59 -080066AM_TESTS_ENVIRONMENT = \
67 export TPM20TEST_TCTI_NAME="socket"; \
68 export TPM20TEST_SOCKET_ADDRESS="127.0.0.1"; \
69 export TPM20TEST_SOCKET_PORT="2321";
70
Philip Tricca2bd4adb2015-09-25 00:14:16 -070071# headers and where to install them
Philip Triccad69337a2016-05-26 16:16:01 -070072libsapidir = $(includedir)/sapi
73libsapi_HEADERS = $(srcdir)/include/sapi/*.h
Philip Triccac3dedc22016-01-15 13:47:22 -080074libtctidir = $(includedir)/tcti
75libtcti_HEADERS = $(srcdir)/include/tcti/*.h
Philip Tricca7ae01542016-05-05 18:45:03 -070076# pkg-config files
77pkgconfigdir = $(libdir)/pkgconfig
Philip Tricca826f5902016-05-26 16:44:31 -070078nodist_pkgconfig_DATA = lib/sapi.pc lib/tcti-device.pc lib/tcti-socket.pc
Philip Tricca632c4312017-06-05 11:58:08 -070079# man pages / documentation
Philip Tricca1fa2f4d2017-06-04 20:01:39 -070080man3_MANS = man/man3/InitDeviceTcti.3 man/man3/InitSocketTcti.3
Philip Tricca632c4312017-06-05 11:58:08 -070081man7_MANS = man/man7/tcti-device.7 man/man7/tcti-socket.7
82
Philip Triccafe671682017-06-04 19:14:31 -070083EXTRA_DIST = \
84 man/InitDeviceTcti.3.in \
85 man/tcti-device.7.in \
86 man/tcti-socket.7.in
Philip Tricca2bd4adb2015-09-25 00:14:16 -070087
Philip Tricca4334dee2016-08-09 19:56:28 -070088if UNIT
Philip Tricca6e2b1152017-03-14 09:29:54 -070089test_unit_tcti_device_CFLAGS = $(CMOCKA_CFLAGS) $(AM_CFLAGS)
90test_unit_tcti_device_LDADD = $(CMOCKA_LIBS)
91test_unit_tcti_device_LDFLAGS = -Wl,--wrap=read -Wl,-wrap=write
92test_unit_tcti_device_SOURCES = tcti/commonchecks.c tcti/tcti_device.c \
93 ./sysapi/sysapi_util/changeEndian.c test/unit/tcti-device.c
Philip Triccab194be92016-03-15 13:27:09 -070094
Philip Tricca73407422016-12-01 15:37:50 -080095test_unit_CommonPreparePrologue_CFLAGS = $(CMOCKA_CFLAGS) -I$(srcdir)/include \
Philip Tricca6f634c42016-07-23 12:32:15 -070096 -I$(srcdir)/include/sapi -I$(srcdir)/sysapi/include/
Philip Tricca73407422016-12-01 15:37:50 -080097test_unit_CommonPreparePrologue_LDFLAGS = -Wl,--unresolved-symbols=ignore-all
98test_unit_CommonPreparePrologue_LDADD = $(CMOCKA_LIBS)
99test_unit_CommonPreparePrologue_SOURCES = \
100 test/unit/CommonPreparePrologue.c sysapi/sysapi_util/CommandUtil.c \
Philip Tricca90363cd2016-07-23 15:22:37 -0700101 sysapi/sysapi/ContextManagement.c
Philip Tricca6f634c42016-07-23 12:32:15 -0700102
Philip Tricca73407422016-12-01 15:37:50 -0800103test_unit_GetNumHandles_CFLAGS = $(CMOCKA_CFLAGS) \
Philip Tricca364c0ce2016-07-23 16:48:37 -0700104 -I$(srcdir)/include -I$(srcdir)/sysapi/include
Philip Tricca73407422016-12-01 15:37:50 -0800105test_unit_GetNumHandles_LDADD = $(CMOCKA_LIBS)
106test_unit_GetNumHandles_SOURCES = \
107 test/unit/GetNumHandles.c sysapi/sysapi_util/GetNumHandles.c
Philip Tricca1f3a1fd2016-08-14 11:48:45 -0700108
Philip Tricca73407422016-12-01 15:37:50 -0800109test_unit_CopyCommandHeader_CFLAGS = $(CMOCKA_CFLAGS) -I$(srcdir)/include \
Philip Tricca81223f42016-07-28 19:50:08 -0700110 -I$(srcdir)/include/sapi -I$(srcdir)/sysapi/include/
Philip Tricca73407422016-12-01 15:37:50 -0800111test_unit_CopyCommandHeader_LDFLAGS = -Wl,--unresolved-symbols=ignore-all
112test_unit_CopyCommandHeader_LDADD = $(CMOCKA_LIBS)
113test_unit_CopyCommandHeader_SOURCES = \
114 test/unit/CopyCommandHeader.c sysapi/sysapi_util/CommandUtil.c \
Philip Tricca81223f42016-07-28 19:50:08 -0700115 sysapi/sysapi/ContextManagement.c sysapi/sysapi_util/changeEndian.c
Philip Triccaf1811f02016-08-28 11:02:31 -0700116
Philip Tricca73407422016-12-01 15:37:50 -0800117test_unit_marshal_UINT16_CFLAGS = $(CMOCKA_CFLAGS) \
Philip Triccaf1811f02016-08-28 11:02:31 -0700118 -I$(srcdir)/include -I$(srcdir)/include/sapi -I$(srcdir)/sysapi/include/
Philip Tricca73407422016-12-01 15:37:50 -0800119test_unit_marshal_UINT16_LDADD = $(CMOCKA_LIBS)
120test_unit_marshal_UINT16_SOURCES = \
Philip Triccaf1811f02016-08-28 11:02:31 -0700121 sysapi/sysapi_util/changeEndian.c \
122 sysapi/sysapi_util/checkoverflow.c \
123 sysapi/sysapi_util/marshal_uint16.c \
Philip Tricca73407422016-12-01 15:37:50 -0800124 test/unit/marshal-UINT16.c
Philip Tricca80d81bd2016-08-29 09:48:16 -0700125
Philip Tricca73407422016-12-01 15:37:50 -0800126test_unit_unmarshal_UINT16_CFLAGS = $(CMOCKA_CFLAGS) \
Philip Tricca0038a172016-09-01 11:30:06 -0700127 -I$(srcdir)/include -I$(srcdir)/include/sapi -I$(srcdir)/sysapi/include/
Philip Tricca73407422016-12-01 15:37:50 -0800128test_unit_unmarshal_UINT16_LDADD = $(CMOCKA_LIBS)
129test_unit_unmarshal_UINT16_SOURCES = \
Philip Tricca0038a172016-09-01 11:30:06 -0700130 sysapi/sysapi_util/changeEndian.c \
131 sysapi/sysapi_util/checkoverflow.c \
132 sysapi/sysapi_util/unmarshal_uint16.c \
Philip Tricca73407422016-12-01 15:37:50 -0800133 test/unit/unmarshal-UINT16.c
Philip Tricca0038a172016-09-01 11:30:06 -0700134
Philip Tricca73407422016-12-01 15:37:50 -0800135test_unit_marshal_UINT32_CFLAGS = $(CMOCKA_CFLAGS) \
Philip Tricca80d81bd2016-08-29 09:48:16 -0700136 -I$(srcdir)/include -I$(srcdir)/include/sapi -I$(srcdir)/sysapi/include/
Philip Tricca73407422016-12-01 15:37:50 -0800137test_unit_marshal_UINT32_LDADD = $(CMOCKA_LIBS)
138test_unit_marshal_UINT32_SOURCES = \
Philip Tricca80d81bd2016-08-29 09:48:16 -0700139 sysapi/sysapi_util/changeEndian.c \
140 sysapi/sysapi_util/checkoverflow.c \
141 sysapi/sysapi_util/marshal_uint32.c \
Philip Tricca73407422016-12-01 15:37:50 -0800142 test/unit/marshal-UINT32.c
Philip Triccaf2f595d2016-09-01 11:47:31 -0700143
Philip Tricca73407422016-12-01 15:37:50 -0800144test_unit_unmarshal_UINT32_CFLAGS = $(CMOCKA_CFLAGS) \
Philip Triccaf2f595d2016-09-01 11:47:31 -0700145 -I$(srcdir)/include -I$(srcdir)/include/sapi -I$(srcdir)/sysapi/include/
Philip Tricca73407422016-12-01 15:37:50 -0800146test_unit_unmarshal_UINT32_LDADD = $(CMOCKA_LIBS)
147test_unit_unmarshal_UINT32_SOURCES = \
Philip Triccaf2f595d2016-09-01 11:47:31 -0700148 sysapi/sysapi_util/changeEndian.c \
149 sysapi/sysapi_util/checkoverflow.c \
150 sysapi/sysapi_util/unmarshal_uint32.c \
Philip Tricca73407422016-12-01 15:37:50 -0800151 test/unit/unmarshal-UINT32.c
Philip Triccaf2f595d2016-09-01 11:47:31 -0700152
Philip Tricca73407422016-12-01 15:37:50 -0800153test_unit_marshal_TPM2B_simple_CFLAGS = $(CMOCKA_CFLAGS) \
Philip Tricca430cda22016-09-01 15:41:53 -0700154 -I$(srcdir)/include -I$(srcdir)/include/sapi -I$(srcdir)/sysapi/include/
Philip Tricca73407422016-12-01 15:37:50 -0800155test_unit_marshal_TPM2B_simple_LDADD = $(CMOCKA_LIBS)
156test_unit_marshal_TPM2B_simple_SOURCES = \
Philip Tricca430cda22016-09-01 15:41:53 -0700157 sysapi/sysapi_util/changeEndian.c \
158 sysapi/sysapi_util/checkoverflow.c \
159 sysapi/sysapi_util/marshal_uint8.c \
160 sysapi/sysapi_util/unmarshal_uint8.c \
161 sysapi/sysapi_util/marshal_uint16.c \
162 sysapi/sysapi_util/unmarshal_uint16.c \
163 sysapi/sysapi_util/marshal_uint32.c \
164 sysapi/sysapi_util/CopySessionData.c \
165 sysapi/sysapi_util/marshal_simple_tpm2b.c \
166 sysapi/sysapi_util/unmarshal_simple_tpm2b.c \
167 sysapi/sysapi_util/unmarshal_simple_tpm2b_no_size_check.c \
Philip Tricca73407422016-12-01 15:37:50 -0800168 test/unit/marshal-TPM2B-simple.c
Philip Tricca430cda22016-09-01 15:41:53 -0700169
Philip Tricca73407422016-12-01 15:37:50 -0800170test_unit_CheckOverflow_CFLAGS = $(CMOCKA_CFLAGS) \
Philip Tricca1008bf52016-08-29 15:02:43 -0700171 -I$(srcdir)/include -I$(srcdir)/include/sapi -I$(srcdir)/sysapi/include/
Philip Tricca73407422016-12-01 15:37:50 -0800172test_unit_CheckOverflow_LDADD = $(CMOCKA_LIBS)
173test_unit_CheckOverflow_SOURCES = \
Philip Tricca1008bf52016-08-29 15:02:43 -0700174 sysapi/sysapi_util/checkoverflow.c \
Philip Tricca73407422016-12-01 15:37:50 -0800175 test/unit/CheckOverflow.c
Philip Tricca4334dee2016-08-09 19:56:28 -0700176endif # UNIT
Philip Tricca364c0ce2016-07-23 16:48:37 -0700177
Philip Tricca2bd4adb2015-09-25 00:14:16 -0700178# how to build stuff
Philip Triccad69337a2016-05-26 16:16:01 -0700179sysapi_libsapi_la_CFLAGS = -I$(srcdir)/sysapi/include $(AM_CFLAGS)
180sysapi_libsapi_la_LDFLAGS = $(LIBRARY_LDFLAGS)
181sysapi_libsapi_la_SOURCES = $(SYSAPI_C) $(SYSAPIUTIL_C)
Philip Tricca7d3515f2015-09-07 10:06:56 -0700182
Philip Tricca826f5902016-05-26 16:44:31 -0700183tcti_libtcti_device_la_CFLAGS = $(TCTIDEVICE_INC) $(AM_CFLAGS)
184tcti_libtcti_device_la_LDFLAGS = $(LIBRARY_LDFLAGS) \
Philip Tricca92fb8a72016-03-31 15:33:57 -0700185 -Wl,--version-script=$(srcdir)/tcti/tcti_device.map
Philip Tricca826f5902016-05-26 16:44:31 -0700186tcti_libtcti_device_la_SOURCES = $(TCTIDEVICE_C) \
Philip Tricca3d486352016-04-18 11:26:25 -0700187 sysapi/sysapi_util/changeEndian.c $(TCTICOMMON_C) common/debug.c
Philip Tricca97e869f2015-11-03 20:19:44 -0500188
Philip Triccab0927df2016-06-21 06:28:44 -0700189tcti_libtcti_socket_la_CFLAGS = $(TCTISOCKET_INC) $(AM_CFLAGS)
190tcti_libtcti_socket_la_CXXFLAGS = $(TCTISOCKET_INC) $(AM_CXXFLAGS)
Philip Tricca826f5902016-05-26 16:44:31 -0700191tcti_libtcti_socket_la_LDFLAGS = $(LIBRARY_LDFLAGS) \
Philip Tricca92fb8a72016-03-31 15:33:57 -0700192 -Wl,--version-script=$(srcdir)/tcti/tcti_socket.map
Philip Tricca826f5902016-05-26 16:44:31 -0700193tcti_libtcti_socket_la_SOURCES = $(TCTISOCKET_C) \
Philip Tricca98b285a2016-03-11 20:50:04 -0800194 sysapi/sysapi_util/changeEndian.c $(TCTISOCKET_CXX) $(TCTICOMMON_C) \
Philip Tricca4f2bdd72016-04-22 15:03:27 -0400195 common/sockets.cpp common/debug.c
Philip Triccaa51ca972015-11-04 00:13:42 -0500196
Philip Triccab0927df2016-06-21 06:28:44 -0700197test_tpmclient_tpmclient_CFLAGS = $(TPMCLIENT_INC) $(AM_CFLAGS)
Philip Tricca00074b72017-05-10 13:14:53 -0700198test_tpmclient_tpmclient_CXXFLAGS = $(TPMCLIENT_INC) $(TCTICOMMON_INC) $(TCTIDEVICE_INC) $(AM_CXXFLAGS) -DNO_RM_TESTS
Philip Tricca826f5902016-05-26 16:44:31 -0700199test_tpmclient_tpmclient_LDADD = $(libsapi) $(libtcti_socket) $(libtcti_device)
Philip Triccaa51ca972015-11-04 00:13:42 -0500200test_tpmclient_tpmclient_SOURCES = $(TPMCLIENT_CXX) $(COMMON_C) $(SAMPLE_C)
Philip Tricca38de2022015-09-07 11:46:28 -0700201
Philip Triccab77704e2016-12-02 11:26:59 -0800202test_integration_libtest_utils_la_SOURCES = test/integration/test-options.c \
203 test/integration/context-util.c
204
hp7ae176b2016-12-02 11:16:45 -0800205test_integration_get_random_LDADD = $(TESTS_LDADD)
206test_integration_get_random_SOURCES = test/integration/get-random.c \
207 test/integration/main.c
208
hp1b9ccfa2016-12-03 00:05:07 +0800209test_integration_self_test_LDADD = $(TESTS_LDADD)
210test_integration_self_test_SOURCES = test/integration/self-test.c \
211 test/integration/main.c
212
Philip Triccab77704e2016-12-02 11:26:59 -0800213TESTS_LDADD = $(noinst_LTLIBRARIES) $(lib_LTLIBRARIES)
214
Philip Tricca7ae01542016-05-05 18:45:03 -0700215%.pc : %.pc.in
Philip Tricca632c4312017-06-05 11:58:08 -0700216 $(call make_parent_dir,$@)
Philip Tricca7ae01542016-05-05 18:45:03 -0700217 sed -e "s,[@]VERSION[@],$(PACKAGE_VERSION),g; \
218 s,[@]includedir[@],$(includedir),g;" $^ > $@
219
Philip Triccafe671682017-06-04 19:14:31 -0700220man/man3/%.3 : man/%.3.in $(srcdir)/man/man-postlude.troff
221 $(call make_man,$@,$<,$(srcdir)/man/man-postlude.troff)
222
Philip Tricca632c4312017-06-05 11:58:08 -0700223man/man7/%.7 : man/%.7.in $(srcdir)/man/man-postlude.troff
Philip Triccafe671682017-06-04 19:14:31 -0700224 $(call make_man,$@,$<,$(srcdir)/man/man-postlude.troff)
Philip Tricca632c4312017-06-05 11:58:08 -0700225
Philip Triccab1a64062016-04-05 15:26:47 -0700226LIBRARY_LDFLAGS = -fPIC -Wl,--no-undefined
Philip Tricca125bb322016-03-31 16:11:51 -0700227
Philip Tricca334b6752016-12-04 20:36:59 -0800228# simulator build / run scripts
229CLEANFILES += test/simulator-build.sh test/simulator-run.sh test/simulator.inc
230.PHONY = simulator-build simulator-start simulator-stop clean-local-ibmtpm
231clean-local : clean-local-ibmtpm
232clean-local-ibmtpm :
233 rm -rf test/ibmtpm*
234
235test/simulator.inc : $(srcdir)/script/simulator.inc
236 cp $< $@
237test/simulator-build.sh : $(srcdir)/script/simulator-build.sh
238 cp $< $@
239 chmod 755 $@
240simulator-build : test/simulator-build.sh test/simulator.inc
241 test/simulator-build.sh
242test/simulator-run.sh : $(srcdir)/script/simulator-run.sh
243 cp $< $@
244 chmod 755 $@
245simulator-start : test/simulator-run.sh test/simulator.inc
246 test/simulator-run.sh start
247simulator-stop : test/simulator-run.sh test/simulator.inc
248 test/simulator-run.sh stop
249
Philip Tricca2bd4adb2015-09-25 00:14:16 -0700250# simple variables
Philip Tricca785e88d2016-02-13 12:02:44 -0800251TCTICOMMON_INC = -I$(srcdir)/include -I$(srcdir)/common \
252 -I$(srcdir)/sysapi/include
253TCTICOMMON_C = tcti/commonchecks.c
Will-nuc8d4f9672015-11-25 16:48:20 -0500254
Philip Tricca785e88d2016-02-13 12:02:44 -0800255TCTIDEVICE_INC = $(TCTICOMMON_INC)
256TCTIDEVICE_C = tcti/tcti_device.c
Will-nucf2ea1f12015-11-25 16:29:57 -0500257
Philip Tricca785e88d2016-02-13 12:02:44 -0800258TCTISOCKET_INC = $(TCTICOMMON_INC)
259TCTISOCKET_C = tcti/platformcommand.c
260TCTISOCKET_CXX = tcti/tcti_socket.cpp
Philip Tricca97e869f2015-11-03 20:19:44 -0500261
Gang Wei5f0d4e42016-08-17 12:11:22 +0800262TPMCLIENT_INC = -I$(srcdir)/include -I$(srcdir)/common \
263 -I$(srcdir)/test/tpmclient -I$(srcdir)/sysapi/include \
Philip Tricca7966ef82017-05-10 09:32:36 -0700264 -I$(srcdir)/test/common/sample
Philip Tricca2bd4adb2015-09-25 00:14:16 -0700265TPMCLIENT_CXX = test/tpmclient/tpmclient.cpp
Philip Triccae690e082015-09-07 18:17:35 -0700266
Philip Triccad69337a2016-05-26 16:16:01 -0700267libsapi = sysapi/libsapi.la
Philip Tricca826f5902016-05-26 16:44:31 -0700268libtcti_device = tcti/libtcti-device.la
269libtcti_socket = tcti/libtcti-socket.la
Philip Tricca2bd4adb2015-09-25 00:14:16 -0700270tpmclient = test/tpmclient/tpmclient
Philip Tricca632c4312017-06-05 11:58:08 -0700271
272define make_parent_dir
273 if [ ! -d $(dir $1) ]; then mkdir -p $(dir $1); fi
274endef
Philip Triccafe671682017-06-04 19:14:31 -0700275# function to transform man .in files to man pages
276# $1: target
277# $2: .in file
278# $3: man postlude file
279define make_man
280 $(call make_parent_dir,$1)
281 cat $2 $3 > $1
282 sed -i -e "s,[@]VERSION[@],$(PACKAGE_VERSION),g;" $1
283endef