From d6265fda9e5d127f5b76d726892c56c1ff00cff5 Mon Sep 17 00:00:00 2001 From: Michel Pollet Date: Tue, 30 Oct 2012 15:09:37 +0000 Subject: [PATCH] Makefile: Introduce a release build make RELEASE=1 will use rpath-link to link the executable, preventing simavr build path to be referenced. This requires that simavr gets installed for it to work Signed-off-by: Michel Pollet --- Makefile | 19 ++++++++++++++----- Makefile.common | 8 +++++++- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 0b35fdf..cf4ceaa 100644 --- a/Makefile +++ b/Makefile @@ -1,21 +1,30 @@ +# Makefile + +# Normal build will link against the shared library for simavr +# in the current build tree, so you don't have to 'install' to +# run simavr or the examples. +# +# For package building, you will need to pass RELEASE=1 to make +RELEASE ?= 0 + .PHONY: doc all: build-simavr build-tests build-examples build-simavr: - $(MAKE) -C simavr + $(MAKE) -C simavr RELEASE=$(RELEASE) build-tests: build-simavr - $(MAKE) -C tests + $(MAKE) -C tests RELEASE=$(RELEASE) build-examples: build-simavr - $(MAKE) -C examples + $(MAKE) -C examples RELEASE=$(RELEASE) install: - $(MAKE) -C simavr install + $(MAKE) -C simavr install RELEASE=$(RELEASE) doc: - $(MAKE) -C doc + $(MAKE) -C doc RELEASE=$(RELEASE) clean: $(MAKE) -C simavr clean diff --git a/Makefile.common b/Makefile.common index 178c3c9..3658ae5 100644 --- a/Makefile.common +++ b/Makefile.common @@ -27,7 +27,7 @@ # along with simavr. If not, see . # simavr directory -SIMAVR ?= ${shell for p in . .. ../.. ../../..;do test -d $$p/simavr/sim && echo $$p/simavr; done} +SIMAVR := ${shell for p in . .. ../.. ../../..;do test -d $$p/simavr/sim && echo $$p/simavr; done} # You can override the build settings with local changes in this file # for example: @@ -79,9 +79,15 @@ LDFLAGS += -L${LIBDIR} -lsimavr LDFLAGS += -lelf ifeq (${shell uname}, Linux) +ifeq ($(RELEASE),1) +# allow the shared library to be found in the build directory +# only for linking, the install time location is used at runtime +LFLAGS += -Wl,-rpath-link,${LIBDIR} +else # allow the shared library to be found in the build directory LFLAGS += -Wl,-rpath,${LIBDIR} endif +endif # The code is compiled "optimized" to the max. # -- 2.39.5