automatically find DLLs
git-svn-id: svn://svn.icculus.org/netradiant/trunk@57 61c419a2-8eb2-4b30-bcec-8cead039b335
This commit is contained in:
parent
5ad1e19406
commit
27c64c0cf4
36
Makefile
36
Makefile
|
|
@ -99,6 +99,7 @@ LDD ?= ldd
|
||||||
FIND ?= find
|
FIND ?= find
|
||||||
RANLIB ?= ranlib
|
RANLIB ?= ranlib
|
||||||
AR ?= ar
|
AR ?= ar
|
||||||
|
OBJDUMP ?= objdump
|
||||||
MKDIR ?= mkdir -p
|
MKDIR ?= mkdir -p
|
||||||
CP ?= cp
|
CP ?= cp
|
||||||
CP_R ?= $(CP) -r
|
CP_R ?= $(CP) -r
|
||||||
|
|
@ -147,6 +148,7 @@ all: \
|
||||||
install/qdata3.$(EXE) \
|
install/qdata3.$(EXE) \
|
||||||
install/radiant.$(EXE) \
|
install/radiant.$(EXE) \
|
||||||
install-data \
|
install-data \
|
||||||
|
install-dll \
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
|
|
@ -767,7 +769,7 @@ makeversion:
|
||||||
.PHONY: install-data
|
.PHONY: install-data
|
||||||
install-data: makeversion
|
install-data: makeversion
|
||||||
$(MKDIR) install/games
|
$(MKDIR) install/games
|
||||||
$(FIND) install/ -name .svn -exec $(RM_R) {} \; -prune; \
|
$(FIND) install/ -name .svn -exec $(RM_R) {} \; -prune
|
||||||
set -ex; \
|
set -ex; \
|
||||||
for GAME in games/*; do \
|
for GAME in games/*; do \
|
||||||
if [ -d "$$GAME/tools" ]; then \
|
if [ -d "$$GAME/tools" ]; then \
|
||||||
|
|
@ -783,6 +785,36 @@ install-data: makeversion
|
||||||
$(CP) include/RADIANT_MAJOR install/
|
$(CP) include/RADIANT_MAJOR install/
|
||||||
$(CP) include/RADIANT_MINOR install/
|
$(CP) include/RADIANT_MINOR install/
|
||||||
$(CP_R) setup/data/tools/* install/
|
$(CP_R) setup/data/tools/* install/
|
||||||
$(FIND) install/ -name .svn -exec $(RM_R) {} \; -prune; \
|
$(FIND) install/ -name .svn -exec $(RM_R) {} \; -prune
|
||||||
|
|
||||||
|
.PHONY: install-dll
|
||||||
|
ifeq ($(OS),Win32)
|
||||||
|
install-dll:
|
||||||
|
set -e; \
|
||||||
|
dllfetch() \
|
||||||
|
{ \
|
||||||
|
dll=$$1; \
|
||||||
|
[ -f "install/$$dll" ] && return; \
|
||||||
|
dllsource=`which $$dll`; \
|
||||||
|
echo "Fetching $$dll..."; \
|
||||||
|
$(CP) $$dllsource install/$$dll; \
|
||||||
|
dlldeps install/$$dll; \
|
||||||
|
}; \
|
||||||
|
dlldeps() \
|
||||||
|
{ \
|
||||||
|
echo "Looking for dependencies of $$1..."; \
|
||||||
|
$(OBJDUMP) -p $$1 | grep "DLL Name" | grep -- '-' | while read -r DUMMY1 DUMMY2 dll; do \
|
||||||
|
dllfetch $$dll; \
|
||||||
|
done; \
|
||||||
|
}; \
|
||||||
|
dllfetch zlib1.dll; \
|
||||||
|
dllfetch intl.dll; \
|
||||||
|
for obj in install/*.$(EXE) install/*/*.$(DLL); do \
|
||||||
|
dlldeps $$obj; \
|
||||||
|
done
|
||||||
|
else
|
||||||
|
install-dll:
|
||||||
|
echo No DLL inclusion required for this target.
|
||||||
|
endif
|
||||||
|
|
||||||
-include $(shell find . -name \*.d)
|
-include $(shell find . -name \*.d)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user