diff options
| author | StevenWdV <stevenwdv@gmail.com> | 2022-02-04 01:18:12 +0100 |
|---|---|---|
| committer | StevenWdV <stevenwdv@gmail.com> | 2022-02-04 01:18:12 +0100 |
| commit | b60ecf2fe5ddfe506e02093286b3931873187e91 (patch) | |
| tree | b3804b1b95e70e96dec98cb0c2b571e0b895ebdd /exports/common.mk | |
| parent | bb85487e40b47d701e64085e7574cb477a431f1e (diff) | |
More Makefile cleanup, support building in folder with spaces
Diffstat (limited to 'exports/common.mk')
| -rw-r--r-- | exports/common.mk | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/exports/common.mk b/exports/common.mk new file mode 100644 index 0000000..f2757c2 --- /dev/null +++ b/exports/common.mk @@ -0,0 +1,44 @@ +# Prevent executing `go env ...` multiple times for the same property +# export is needed for this and also to pass the values on to the Go compiler +ifndef GOOS +export GOOS != go env GOHOSTOS +endif +ifndef GOARCH +export GOARCH != go env GOHOSTARCH +endif + +ifeq (windows,$(GOOS)) +LIB_PREFIX ?= +LIB_SUFFIX ?= .dll +else ifeq (darwin,$(GOOS)) +LIB_PREFIX ?= lib +LIB_SUFFIX ?= .dylib +else +LIB_PREFIX ?= lib +LIB_SUFFIX ?= .so +endif + +# Library name without prefixes/suffixes +LIB_NAME ?= eduvpn_common +# Library file name +LIB_FILE ?= $(LIB_PREFIX)$(LIB_NAME)$(LIB_SUFFIX) + +# Get exports/ directory when included from a wrapper +EXPORTS_PATH = $(dir $(lastword $(MAKEFILE_LIST))) +# Remove trailing slash +EXPORTS_PATH := $(EXPORTS_PATH:/=) + +EXPORTS_LIB_PATH ?= $(EXPORTS_PATH)/lib +EXPORTS_LIB_SUBFOLDER_PATH ?= $(EXPORTS_LIB_PATH)/$(GOOS)/$(GOARCH) + +# Add library to dynamic linker path for running tests +ifeq (Windows_NT,$(OS)) +export PATH := $(abspath $(EXPORTS_LIB_SUBFOLDER_PATH)):$(PATH) +else +export LD_LIBRARY_PATH := $(abspath $(EXPORTS_LIB_SUBFOLDER_PATH)):$(LD_LIBRARY_PATH) +endif + +.try_build_lib: +ifneq ($(wildcard $(EXPORTS_PATH)/Makefile),) + $(MAKE) -C $(EXPORTS_PATH) +endif |
