Skip to content
Snippets Groups Projects
Commit 6e69eec1 authored by Deucе's avatar Deucе :ok_hand_tone4:
Browse files

For macOS, set install_name to @rpath/libNAME.dylib and use it

For the SBBS binaries, set @executable_path and
@executable_path/../${LIBODIR} so they can all be in one dir, or
they can be in the build output dirs and still work.

For utilities, set to @executable_path and
@executable_path/../../${LIBODIR} for the same reason.

With this, we shouldn't need to fiddle with DYLD_LIBRARY_PATH
parent 691f6966
No related branches found
No related tags found
1 merge request!488Overhaul LZH code
Pipeline #7484 passed
......@@ -264,6 +264,12 @@ ifeq ($(os),darwin)
endif
endif
ifeq ($(os),darwin)
RPATH := -rpath
else
RPATH := --rpath
endif
ifeq ($(machine_uname),x86_64)
machine_uname := x64
endif
......
......@@ -156,13 +156,16 @@ ifeq ($(os),sunos)
SHLIBOPTS :=
else
ifeq ($(os),darwin)
SHLIBOPTS = -shared -install_name `realpath $(SBBSDIR)`/$@
SHLIBOPTS = -shared -install_name @rpath/`VAR=$@; echo $${VAR\#\#*/}`
else
SHLIBOPTS := -shared
endif
MKSHLIB := $(CC)
MKSHPPLIB := $(CXX)
endif
ifeq ($(os),darwin)
LIB_RPATH := -Wl,$(RPATH),@executable_path,$(RPATH),@executable_path/../$(LIBDIR)
endif
CFLAGS += $(JS_CFLAGS) $(CRYPT_CFLAGS) $(UIFC-MT_CFLAGS) $(XPDEV-MT_CFLAGS) $(SMBLIB_CFLAGS) $(CIOLIB-MT_CFLAGS) $(ENCODE_CFLAGS) $(HASH_CFLAGS)
CFLAGS += -I../comio
......@@ -190,27 +193,27 @@ endif
# FTP Server Link Rule
$(FTPSRVR): $(MTOBJODIR)/ftpsrvr.o
@echo Linking $@
$(QUIET)$(MKSHLIB) $(LDFLAGS) $(MTOBJODIR)/ftpsrvr.o $(SHLIBOPTS) -o $@ -lsbbs
$(QUIET)$(MKSHLIB) $(LDFLAGS) $(MTOBJODIR)/ftpsrvr.o $(SHLIBOPTS) $(LIB_RPATH) -o $@ -lsbbs
# Mail Server Link Rule
$(MAILSRVR): $(MAIL_OBJS)
@echo Linking $@
$(QUIET)$(MKSHLIB) $(LDFLAGS) $(MAIL_OBJS) $(SHLIBOPTS) -o $@ -lsbbs
$(QUIET)$(MKSHLIB) $(LDFLAGS) $(MAIL_OBJS) $(SHLIBOPTS) $(LIB_RPATH) -o $@ -lsbbs
# Web Server Link Rule
$(WEBSRVR): $(WEB_OBJS)
@echo Linking $@
$(QUIET)$(MKSHLIB) $(LDFLAGS) $(WEB_OBJS) $(SHLIBOPTS) -o $@ $(ENCODE_LIBS) -lsbbs $(XPDEV-MT_LIBS)
$(QUIET)$(MKSHLIB) $(LDFLAGS) $(WEB_OBJS) $(SHLIBOPTS) $(LIB_RPATH) -o $@ $(ENCODE_LIBS) -lsbbs $(XPDEV-MT_LIBS)
# Services Link Rule
$(SERVICES): $(SERVICE_OBJS)
@echo Linking $@
$(QUIET)$(MKSHLIB) $(LDFLAGS) $(SERVICE_OBJS) $(SHLIBOPTS) -o $@ -lsbbs
$(QUIET)$(MKSHLIB) $(LDFLAGS) $(SERVICE_OBJS) $(SHLIBOPTS) $(LIB_RPATH) -o $@ -lsbbs
# Synchronet Console Build Rule
$(SBBSCON): $(CON_OBJS) $(SBBS) $(FTPSRVR) $(WEBSRVR) $(MAILSRVR) $(SERVICES)
@echo Linking $@
$(QUIET)$(CXX) $(LDFLAGS) $(MT_LDFLAGS) -o $@ $(CON_OBJS) $(CON_LIBS) $(SMBLIB_LIBS) $(XPDEV-MT_LIBS)
$(QUIET)$(CXX) $(LDFLAGS) $(MT_LDFLAGS) $(LIB_RPATH) -o $@ $(CON_OBJS) $(CON_LIBS) $(SMBLIB_LIBS) $(XPDEV-MT_LIBS)
# Baja Utility
$(BAJA): $(BAJA_OBJS) | $(EXEODIR)
......@@ -280,7 +283,7 @@ endif
# JSEXEC
$(JSEXEC): $(JSEXEC_OBJS) $(SBBS) $(CIOLIB-MT) | $(EXEODIR)
@echo Linking $@
$(QUIET)$(CXX) $(LDFLAGS) $(MT_LDFLAGS) -o $@ $(JSEXEC_OBJS) -lsbbs $(JS_LIBS) $(SMBLIB_LIBS) $(UIFC-MT_LIBS) $(CIOLIB-MT_LIBS) $(XPDEV-MT_LIBS)
$(QUIET)$(CXX) $(LDFLAGS) $(MT_LDFLAGS) $(LIB_RPATH) -o $@ $(JSEXEC_OBJS) -lsbbs $(JS_LIBS) $(SMBLIB_LIBS) $(UIFC-MT_LIBS) $(CIOLIB-MT_LIBS) $(XPDEV-MT_LIBS)
ifeq ($(os), netbsd)
paxctl +m $(JSEXEC)
endif
......@@ -308,7 +311,7 @@ $(QWKNODES): $(QWKNODES_OBJS) | $(EXEODIR)
# SLOG
$(SLOG): $(SLOG_OBJS) $(SBBS) | $(EXEODIR)
@echo Linking $@
$(QUIET)$(CC) $(CONSOLE_LDFLAGS) -o $@ $(SLOG_OBJS) $(XPDEV_LIBS) -lsbbs
$(QUIET)$(CC) $(CONSOLE_LDFLAGS) $(LIB_RPATH) -o $@ $(SLOG_OBJS) $(XPDEV_LIBS) -lsbbs
# DELFILES
$(DELFILES): $(DELFILES_OBJS) $(ENCODE_LIB) | $(EXEODIR)
......
......@@ -30,17 +30,16 @@ EXTRA_LIBS += `pkg-config gtk+-3.0 --libs`
# Because pkg-config for libglade uses --rpath, we need to also, LD_RUN_PATH
# won't work. :-(
ifeq ($(os),darwin)
RPATH := -rpath
else
RPATH := --rpath
endif
ifdef SBBSDIR
LDFLAGS += -Wl,$(RPATH),$(SBBSDIR)/exec
endif
PARENT_DIR = $(shell dirname `pwd`)
LDFLAGS += -Wl,$(RPATH),$(PARENT_DIR)/$(LIBODIR)
ifeq ($(os),sunos)
LDFLAGS += -Wl,$(RPATH),/opt/sfw/gcc-3/lib
LDFLAGS += -Wl,$(RPATH),@executable_path,$(RPATH),@executable_path/../../$(LIBODIR)
else
ifdef SBBSDIR
LDFLAGS += -Wl,$(RPATH),$(SBBSDIR)/exec
endif
PARENT_DIR = $(shell dirname `pwd`)
LDFLAGS += -Wl,$(RPATH),$(PARENT_DIR)/$(LIBODIR)
ifeq ($(os),sunos)
LDFLAGS += -Wl,$(RPATH),/opt/sfw/gcc-3/lib
endif
endif
$(GTKMONITOR): $(OBJS)
......
......@@ -30,17 +30,16 @@ EXTRA_LIBS += `pkg-config gtk+-3.0 --libs`
# Because pkg-config for libglade uses --rpath, we need to also, LD_RUN_PATH
# won't work. :-(
ifeq ($(os),darwin)
RPATH := -rpath
LDFLAGS += -Wl,$(RPATH),@executable_path,$(RPATH),@executable_path/../../$(LIBODIR)
else
RPATH := --rpath
endif
ifdef SBBSDIR
LDFLAGS += -Wl,$(RPATH),$(SBBSDIR)/exec
endif
PARENT_DIR = $(shell dirname `pwd`)
LDFLAGS += -Wl,$(RPATH),$(PARENT_DIR)/$(LIBODIR)
ifeq ($(os),sunos)
LDFLAGS += -Wl,$(RPATH),/opt/sfw/gcc-3/lib
ifdef SBBSDIR
LDFLAGS += -Wl,$(RPATH),$(SBBSDIR)/exec
endif
PARENT_DIR = $(shell dirname `pwd`)
LDFLAGS += -Wl,$(RPATH),$(PARENT_DIR)/$(LIBODIR)
ifeq ($(os),sunos)
LDFLAGS += -Wl,$(RPATH),/opt/sfw/gcc-3/lib
endif
endif
$(GTKUSEREDIT): $(OBJS)
......
......@@ -30,17 +30,16 @@ EXTRA_LIBS += `pkg-config gtk+-3.0 --libs`
# Because pkg-config for libglade uses --rpath, we need to also, LD_RUN_PATH
# won't work. :-(
ifeq ($(os),darwin)
RPATH := -rpath
LDFLAGS += -Wl,$(RPATH),@executable_path,$(RPATH),@executable_path/../../$(LIBODIR)
else
RPATH := --rpath
endif
ifdef SBBSDIR
LDFLAGS += -Wl,$(RPATH),$(SBBSDIR)/exec
endif
PARENT_DIR = $(shell dirname `pwd`)
LDFLAGS += -Wl,$(RPATH),$(PARENT_DIR)/$(LIBODIR)
ifeq ($(os),sunos)
LDFLAGS += -Wl,$(RPATH),/opt/sfw/gcc-3/lib
ifdef SBBSDIR
LDFLAGS += -Wl,$(RPATH),$(SBBSDIR)/exec
endif
PARENT_DIR = $(shell dirname `pwd`)
LDFLAGS += -Wl,$(RPATH),$(PARENT_DIR)/$(LIBODIR)
ifeq ($(os),sunos)
LDFLAGS += -Wl,$(RPATH),/opt/sfw/gcc-3/lib
endif
endif
$(GTKUSERLIST): $(OBJS)
......
......@@ -23,6 +23,9 @@ include ../Common.gmake
CFLAGS += $(SBBS_CFLAGS) $(SMBLIB_CFLAGS) $(XPDEV-MT_CFLAGS) `$(WX_CONFIG) $(WX_CONFFLAGS) --cflags`
CXXFLAGS += $(CFLAGS)
LDFLAGS += `$(WX_CONFIG) $(WX_CONFFLAGS) --libs` $(SMBLIB_LDFLAGS) $(XPDEV-MT_LDFLAGS) $(MT_LDFLAGS) $(SBBS_LDFLAGS)
ifeq ($(os),darwin)
LDFLAGS += -Wl,$(RPATH),@executable_path,$(RPATH),@executable_path/../../$(LIBODIR)
endif
$(USERLIST): $(SBBS) $(OBJS)
@echo Linking $@
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment