summaryrefslogtreecommitdiffstats
path: root/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/orig/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 't/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/orig/Makefile')
-rw-r--r--t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/orig/Makefile64
1 files changed, 64 insertions, 0 deletions
diff --git a/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/orig/Makefile b/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/orig/Makefile
new file mode 100644
index 0000000..cf0f211
--- /dev/null
+++ b/t/recipes/checks/languages/ocaml/custom-executable/binaries-general/build-spec/orig/Makefile
@@ -0,0 +1,64 @@
+# turn off PIE in CC in case we have a PIEful toolchain:
+ifneq ($(findstring -no-pie,$(shell gcc -no-pie 2>&1)),)
+ CC := gcc
+else
+ CC := gcc -fno-pie -no-pie
+endif
+
+NOPIE_CFLAGS = $(filter-out -fPIE,$(CFLAGS))
+NOPIE_LDFLAGS = $(filter-out -fPIE -pie,$(LDFLAGS))
+COMPILE:= $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
+COMPILE_NOPIE:= $(CC) $(NOPIE_CFLAGS) $(CPPFLAGS) $(NOPIE_LDFLAGS)
+# extract from readelf
+GETBUILDID:=./getbuildid
+
+all:
+ # rpath not matching any of the exceptions to the rpath checks
+ # - with profiling enabled.
+ $(COMPILE_NOPIE) -o basic basic.c -pg -Wl,--rpath,/usr/local/lib
+ # rpath shipped in the package, but one of {/usr}?/lib
+ $(COMPILE) -o basiclibrpath basic.c -Wl,--rpath,/usr/lib
+ # non-special rpath shipped in the package
+ $(COMPILE) -o basicshippedrpath basic.c -Wl,--rpath,/usr/share/foo
+ # special rpath shipped in the package, multiple paths
+ $(COMPILE) -o basicshippedrpathmore basic.c -Wl,--rpath,/usr/lib/binaries-general:/usr/lib/binaries-general/bar
+ # static version of basic for debugging checks
+ $(COMPILE_NOPIE) -static -o basic.static basic.c
+ # static executable to trigger ocaml check
+ $(COMPILE_NOPIE) -o ocaml-exec ocaml.c
+ # version with debug
+ $(COMPILE) -o basicdebug -g3 -Wl,--build-id basic.c
+
+install:
+ # according to local debian rules /usr/lib/debug is unstripped
+ install -d $(DESTDIR)/usr/share/foo/
+ install -d $(DESTDIR)/usr/lib/debug/usr/share/foo/
+ install -d $(DESTDIR)/usr/lib/foo/
+ install -d $(DESTDIR)/usr/bin
+
+ install -m 755 -c basic $(DESTDIR)/usr/share/foo/basic
+ objcopy --only-keep-debug basic $(DESTDIR)/usr/lib/debug/usr/share/foo/basic
+ strip -s $(DESTDIR)/usr/lib/debug/usr/share/foo/basic
+ install -m 755 -c basiclibrpath $(DESTDIR)/usr/lib/foo/basiclibrpath
+ install -m 755 -c basicshippedrpath $(DESTDIR)/usr/lib/foo/basicshippedrpath
+ install -m 755 -c ocaml-exec $(DESTDIR)/usr/lib/foo/ocaml-exec
+ install -m 744 -c basicshippedrpathmore $(DESTDIR)/usr/lib/foo/basicshippedrpathmore
+ objcopy --only-keep-debug basic $(DESTDIR)/usr/lib/debug/basic
+ install -d "$(DESTDIR)/usr/lib/debug/.build-id/"`$(GETBUILDID) -s basicdebug`
+ install -m 755 -c basicdebug $(DESTDIR)/usr/share/foo/basicdebug
+ # force fake buildid in order to have tag matching ok (deadbeefdeadbeef)
+ install -d "$(DESTDIR)/usr/lib/debug/.build-id/de"
+ objcopy --compress-debug-sections basicdebug \
+ "$(DESTDIR)/usr/lib/debug/.build-id/de/deadbeefdeadbeef.debug"
+ install -d "$(DESTDIR)/usr/lib/debug/.build-id/"`$(GETBUILDID) -s basicdebug`
+ objcopy --compress-debug-sections --only-keep-debug basicdebug \
+ "$(DESTDIR)/usr/lib/debug/.build-id/"`$(GETBUILDID) -s basicdebug`"/"`$(GETBUILDID) -f basicdebug`.debug
+ install -m 755 -c basic.static $(DESTDIR)/usr/lib/debug/
+ # according to local debian rules unstripped in name avoid dh_strip to do the work
+ install -m 755 basicdebug $(DESTDIR)/usr/bin/unstripped
+ install -m 755 basic.static $(DESTDIR)/usr/bin/static
+
+clean distclean:
+ rm -f basic
+
+check test: