summaryrefslogtreecommitdiff
path: root/solenv/inc/tg_ext.mk
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2012-02-29 18:34:42 +0100
committerStephan Bergmann <sbergman@redhat.com>2012-02-29 18:46:38 +0100
commit7c4f2ec8a795534164ee1923093b7d5be0126c55 (patch)
tree08971f4c7375629393b6d9cdeb713006778334bf /solenv/inc/tg_ext.mk
parent8c9823d311fdf8092cc75873e4565325d204a658 (diff)
Simplify install name handling for external libraries on Mac OS X
...by allowing our special @___... tokens anywhere within an install name, so that external modules can configure --prefix=/@___... etc. This removes the need for the special extshl and EXTRPATH=LOADER. Also, a new OUT2BIN_NONE can be used for external modules where the generated libraries need the default EXTRPATH=OOO, but generated executables are only used during the build and such need RPATH=NONE.
Diffstat (limited to 'solenv/inc/tg_ext.mk')
-rw-r--r--solenv/inc/tg_ext.mk25
1 files changed, 20 insertions, 5 deletions
diff --git a/solenv/inc/tg_ext.mk b/solenv/inc/tg_ext.mk
index 0adec0c96683..b74c79fc954d 100644
--- a/solenv/inc/tg_ext.mk
+++ b/solenv/inc/tg_ext.mk
@@ -47,8 +47,8 @@ PATH!:=.$(PATH_SEPERATOR)$(SOLARBINDIR)$(PATH_SEPERATOR)$(PATH)
.EXPORT : PATH
#override
-PACKAGE_DIR=$(MISC)/build
-ABS_PACKAGE_DIR:=$(MAKEDIR)/$(MISC)/build
+PACKAGE_DIR*=$(MISC)/build
+ABS_PACKAGE_DIR:=$(MAKEDIR)/$(PACKAGE_DIR)
#MUST match with PACKAGE_DIR
BACK_PATH=../../../
@@ -252,7 +252,7 @@ $(PACKAGE_DIR)/$(PREDELIVER_FLAG_FILE) : $(PACKAGE_DIR)/$(INSTALL_FLAG_FILE)
.IF "$(OUT2LIB)"!=""
$(COMMAND_ECHO)$(COPY) $(foreach,i,$(OUT2LIB) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/$i) $(LB)
.IF "$(OS)"=="MACOSX"
- $(COMMAND_ECHO)$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl extshl \
+ $(COMMAND_ECHO)$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl shl \
$(EXTRPATH) \
$(shell ls $(foreach,j,$(OUT2LIB) $(LB)/$(j:f)) | \
(grep -v '\.a$$' || test $$? = 1))
@@ -271,16 +271,31 @@ $(PACKAGE_DIR)/$(PREDELIVER_FLAG_FILE) : $(PACKAGE_DIR)/$(INSTALL_FLAG_FILE)
.ENDIF # "$(OUTDIR2INC)"!=""
.IF "$(OUT2BIN)"!=""
$(COMMAND_ECHO)$(COPY) $(foreach,i,$(OUT2BIN) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/$i) $(BIN)
-.IF "$(GUI)$(COM)$(COMEX)"=="WNTMSC12"
+.IF "$(OS)"=="MACOSX"
+ $(COMMAND_ECHO)$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl app \
+ $(EXTRPATH) $(shell ls $(foreach,j,$(OUT2BIN) $(BIN)/$(j:f)))
+.ELIF "$(GUI)$(COM)$(COMEX)"=="WNTMSC12"
@noop $(foreach,j,$(foreach,k,$(OUT2BIN) \
$(shell -ls -1 $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/$k | $(GREP) .dll)) \
$(shell @$(IFEXIST) $(j).manifest $(THEN) mt.exe \
-manifest $(j).manifest -outputresource:$(BIN)/$(j:f)$(EMQ);2 $(FI)))
.ENDIF # "$(GUI)$(COM)$(COMEX)"=="WNTMSC12"
.ENDIF # "$(OUT2BIN)"!=""
+.IF "$(OUT2BIN_NONE)"!=""
+ $(COMMAND_ECHO)$(COPY) $(foreach,i,$(OUT2BIN_NONE) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/$i) $(BIN)
+.IF "$(OS)"=="MACOSX"
+ $(COMMAND_ECHO)$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl app \
+ NONE $(shell ls $(foreach,j,$(OUT2BIN_NONE) $(BIN)/$(j:f)))
+.ELIF "$(GUI)$(COM)$(COMEX)"=="WNTMSC12"
+ @noop $(foreach,j,$(foreach,k,$(OUT2BIN_NONE) \
+ $(shell -ls -1 $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/$k | $(GREP) .dll)) \
+ $(shell @$(IFEXIST) $(j).manifest $(THEN) mt.exe \
+ -manifest $(j).manifest -outputresource:$(BIN)/$(j:f)$(EMQ);2 $(FI)))
+.END
+.ENDIF # "$(OUT2BIN_NONE)"!=""
.IF "$(OUT2CLASS)"!=""
$(COMMAND_ECHO)$(COPY) $(foreach,i,$(OUT2CLASS) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)/$i) $(CLASSDIR)
-.ENDIF # "$(OUT2BIN)"!=""
+.ENDIF # "$(OUT2CLASS)"!=""
$(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)/$(PREDELIVER_FLAG_FILE)
$(MISC)/$(TARFILE_ROOTDIR).done : $(MISC)/$(TARFILE_MD5)-$(TARFILE_NAME).unpack $(PATCH_FILES)