Browse code

cmocka: use relative paths

Simplifies the build scripts, and fixes my CI, where paths on the test
slave can be different from paths on the build slave.

Signed-off-by: Steffan Karger <steffan@karger.me>
Acked-by: David Sommerseth <davids@openvpn.net>
Message-Id: <20181028145449.12676-1-steffan@karger.me>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg17849.html
Signed-off-by: David Sommerseth <davids@openvpn.net>

Steffan Karger authored on 2018/10/28 23:54:49
Showing 3 changed files
... ...
@@ -55,7 +55,7 @@ doc/openvpn.8.html
55 55
 /doc/doxygen/openvpn.doxyfile
56 56
 distro/systemd/*.service
57 57
 sample/sample-keys/sample-ca/
58
-vendor/.build
58
+vendor/cmocka_build
59 59
 vendor/dist
60 60
 build/msvc/msvc-generate/version.m4
61 61
 
... ...
@@ -1353,15 +1353,8 @@ AC_SUBST([sampledir])
1353 1353
 AC_SUBST([systemdunitdir])
1354 1354
 AC_SUBST([tmpfilesdir])
1355 1355
 
1356
-VENDOR_SRC_ROOT="\$(abs_top_srcdir)/vendor/"
1357
-VENDOR_DIST_ROOT="\$(abs_top_builddir)/vendor/dist"
1358
-VENDOR_BUILD_ROOT="\$(abs_top_builddir)/vendor/.build"
1359
-AC_SUBST([VENDOR_SRC_ROOT])
1360
-AC_SUBST([VENDOR_BUILD_ROOT])
1361
-AC_SUBST([VENDOR_DIST_ROOT])
1362
-
1363
-TEST_LDFLAGS="${OPTIONAL_CRYPTO_LIBS} ${OPTIONAL_PKCS11_LIBS} ${OPTIONAL_LZO_LIBS} -lcmocka -L\$(abs_top_builddir)/vendor/dist/lib -Wl,-rpath,\$(abs_top_builddir)/vendor/dist/lib"
1364
-TEST_CFLAGS="${OPTIONAL_CRYPTO_CFLAGS} ${OPTIONAL_PKCS11_CFLAGS} ${OPTIONAL_LZO_CFLAGS} -I\$(top_srcdir)/include -I\$(abs_top_builddir)/vendor/dist/include"
1356
+TEST_LDFLAGS="${OPTIONAL_CRYPTO_LIBS} ${OPTIONAL_PKCS11_HELPER_LIBS} -lcmocka -L\$(top_builddir)/vendor/dist/lib -Wl,-rpath,\$(top_builddir)/vendor/dist/lib"
1357
+TEST_CFLAGS="${OPTIONAL_CRYPTO_CFLAGS} ${OPTIONAL_PKCS11_HELPER_CFLAGS} -I\$(top_srcdir)/include -I\$(top_builddir)/vendor/dist/include"
1365 1358
 
1366 1359
 AC_SUBST([TEST_LDFLAGS])
1367 1360
 AC_SUBST([TEST_CFLAGS])
... ...
@@ -1,18 +1,18 @@
1
-# needs an absolute path bc. of the cmake invocation
2
-cmockasrc     = "@VENDOR_SRC_ROOT@/cmocka"
3
-cmockabuild   = "@VENDOR_BUILD_ROOT@/cmocka"
4
-cmockainstall = "@VENDOR_DIST_ROOT@"
1
+cmockasrc   = $(srcdir)/cmocka
2
+# Not just '$(builddir)/cmocka', because cmocka requires an out-of-source build
3
+cmockabuild = $(builddir)/cmocka_build
4
+cmockadist  = $(builddir)/dist
5 5
 
6 6
 MAINTAINERCLEANFILES = \
7 7
 	$(srcdir)/Makefile.in \
8 8
 	"$(cmockabuild)" \
9
-	"$(cmockainstall)" \
10
-	"@VENDOR_BUILD_ROOT@"
9
+	"$(cmockadist)"
11 10
 
12 11
 libcmocka:
13 12
 if CMOCKA_INITIALIZED
14
-	mkdir -p $(cmockabuild) $(cmockainstall)
15
-	(cd $(cmockabuild) && cmake -DCMAKE_INSTALL_PREFIX=$(cmockainstall) $(cmockasrc) && make && make install)
13
+	mkdir -p $(cmockabuild) $(cmockadist)
14
+	## Compensate for the cd in the paths
15
+	(cd $(cmockabuild) && cmake -DCMAKE_INSTALL_PREFIX=../$(cmockadist) ../$(cmockasrc) && make && make install)
16 16
 endif
17 17
 
18 18
 check: libcmocka