瀏覽代碼

* Add 'dynamic' and 'static' targets and default to dynamic

BIN_TYPE_(STATIC|DYNAMIC) is now set as well.

Also see:
http://www.pixelbeat.org/programming/linux_binary_compatibility.html
http://web.archive.org/web/20080612143346/http://people.redhat.com/drepper/no_static_linking.html
Bryan Drewery 16 年之前
父節點
當前提交
4f25292017
共有 1 個文件被更改,包括 41 次插入19 次删除
  1. 41 19
      Makefile.in

+ 41 - 19
Makefile.in

@@ -31,9 +31,10 @@ RESPONSESFILE = doc/responses.txt
 
 
 # defaults
 # defaults
 CXX = @CCACHE@ @DISTCC@ @CXX@ @STATIC@
 CXX = @CCACHE@ @DISTCC@ @CXX@ @STATIC@
-LD = @CXX@ @STATIC@
+LD_DYNAMIC = @CXX@
+LD_STATIC = @CXX@ @STATIC@
 CCDEBUG = @CCACHE@ @DISTCC@ @CXX@
 CCDEBUG = @CCACHE@ @DISTCC@ @CXX@
-LDDEBUG = @CXX@
+LD_DEBUG = @CXX@
 STRIP = @STRIP@
 STRIP = @STRIP@
 DIFF = @DIFF@
 DIFF = @DIFF@
 
 
@@ -56,19 +57,24 @@ _CFLGS = -fno-strict-aliasing -W -Wformat \
 
 
 MAKEFLAGS = -s @MAKEJOBS@
 MAKEFLAGS = -s @MAKEJOBS@
 
 
-MAKE_BIN = $(MAKE) 'MAKE=$(MAKE)' 'CXX=$(CXX)' 'LD=$(LD)' \
+MAKE_STATIC = $(MAKE) 'MAKE=$(MAKE)' 'CXX=$(CXX)' 'LD=$(LD_STATIC)' \
 'CCDEPMODE=$(CCDEPMODE)' 'BRANCH=$(BRANCH)' 'COMMIT=$(COMMIT_SHORT)' 'BUILDTS=$(BUILDTS)' 'VERSION=$(VERSION)' \
 'CCDEPMODE=$(CCDEPMODE)' 'BRANCH=$(BRANCH)' 'COMMIT=$(COMMIT_SHORT)' 'BUILDTS=$(BUILDTS)' 'VERSION=$(VERSION)' \
-'STRIP=$(STRIP)' 'CFLGS=$(CFLGS)' \
+'STRIP=$(STRIP)' 'CFLGS=$(CFLGS) -DBIN_TYPE_STATIC' \
 'LIBS=$(LIBS)' 'EGGEXEC=$(BINEXEC)' 'EGGBUILD=(wraith)'
 'LIBS=$(LIBS)' 'EGGEXEC=$(BINEXEC)' 'EGGBUILD=(wraith)'
 
 
-MAKE_DEBUG = $(MAKE) 'MAKE=$(MAKE)' 'CXX=$(CCDEBUG)' 'LD=$(LDDEBUG) -g' \
+MAKE_DYNAMIC = $(MAKE) 'MAKE=$(MAKE)' 'CXX=$(CXX)' 'LD=$(LD_DYNAMIC)' \
 'CCDEPMODE=$(CCDEPMODE)' 'BRANCH=$(BRANCH)' 'COMMIT=$(COMMIT_SHORT)' 'BUILDTS=$(BUILDTS)' 'VERSION=$(VERSION)' \
 'CCDEPMODE=$(CCDEPMODE)' 'BRANCH=$(BRANCH)' 'COMMIT=$(COMMIT_SHORT)' 'BUILDTS=$(BUILDTS)' 'VERSION=$(VERSION)' \
-'STRIP=touch' 'CFLGS=$(CFLGS) $(DEBCXXFLAGS)' \
-'LIBS=$(LIBS)' 'EGGEXEC=$(BINEXEC)' 'EGGBUILD=(debug)' 
+'STRIP=$(STRIP)' 'CFLGS=$(CFLGS) -DBIN_TYPE_DYNAMIC' \
+'LIBS=$(LIBS)' 'EGGEXEC=$(BINEXEC)' 'EGGBUILD=(wraith)'
+
+MAKE_DEBUG = $(MAKE) 'MAKE=$(MAKE)' 'CXX=$(CCDEBUG)' 'LD=$(LD_DEBUG) -g' \
+'CCDEPMODE=$(CCDEPMODE)' 'BRANCH=$(BRANCH)' 'COMMIT=$(COMMIT_SHORT)' 'BUILDTS=$(BUILDTS)' 'VERSION=$(VERSION)' \
+'STRIP=touch' 'CFLGS=$(CFLGS) $(DEBCXXFLAGS) -DBIN_TYPE_DYNAMIC' \
+'LIBS=$(LIBS)' 'EGGEXEC=$(BINEXEC)' 'EGGBUILD=(debug)'
 
 
 MAKE_UTILS = $(MAKE) 'MAKE=$(MAKE)' 'CXX=$(CCDEBUG)' 'STRIP=touch' \
 MAKE_UTILS = $(MAKE) 'MAKE=$(MAKE)' 'CXX=$(CCDEBUG)' 'STRIP=touch' \
 'CCDEPMODE=$(CCDEPMODE)' \
 'CCDEPMODE=$(CCDEPMODE)' \
-'CFLGS=$(CFLGS) $(DEBCXXFLAGS)' 'LIBS=$(LIBS)' 'LD=$(LDDEBUG) -g'
+'CFLGS=$(CFLGS) $(DEBCXXFLAGS)' 'LIBS=$(LIBS)' 'LD=$(LD_DEBUG) -g'
 
 
 MAKE_UTILS_NR = $(MAKE) 'CXX=$(CXX)' 'STRIP=touch' \
 MAKE_UTILS_NR = $(MAKE) 'CXX=$(CXX)' 'STRIP=touch' \
 'CCDEPMODE=$(CCDEPMODE)' \
 'CCDEPMODE=$(CCDEPMODE)' \
@@ -76,9 +82,9 @@ MAKE_UTILS_NR = $(MAKE) 'CXX=$(CXX)' 'STRIP=touch' \
 
 
 MAKE_CONFIG = $(MAKE) 'MAKE=$(MAKE)'
 MAKE_CONFIG = $(MAKE) 'MAKE=$(MAKE)'
 
 
-.PHONY: checkclean.wraith checkclean.debug lib wraith dwraith lib.debug debug check general crypto utils sorthelp makehelp makeset makeres stringfix set res help sort indent tar distrib distclean clean cleanutils test default
+.PHONY: checkclean.static checkclean.dynamic checkclean.debug lib wraith dwraith lib.debug debug check general crypto utils sorthelp makehelp makeset makeres stringfix set res help sort indent tar distrib distclean clean cleanutils test default dynamic static
 
 
-default: wraith
+default: dynamic
 
 
 test:
 test:
 
 
@@ -202,17 +208,24 @@ general: help res set
 
 
 check:
 check:
 
 
-.NOTPARALLEL: checkclean.wraith checkclean.debug
+.NOTPARALLEL: checkclean.static checkclean.dynamic checkclean.debug
+
+checkclean.static:
+	@(if test -f stamp.dynamic -o -f stamp.debug; then \
+	echo "[*] Cleaning up alternate build"; \
+	$(MAKE) MAKEFLAGS=-s clean; \
+	fi)
+	@touch stamp.static
 
 
-checkclean.wraith:
-	@(if test -f stamp.debug; then \
+checkclean.dynamic:
+	@(if test -f stamp.static -o -f stamp.debug; then \
 	echo "[*] Cleaning up alternate build"; \
 	echo "[*] Cleaning up alternate build"; \
 	$(MAKE) MAKEFLAGS=-s clean; \
 	$(MAKE) MAKEFLAGS=-s clean; \
 	fi)
 	fi)
-	@touch stamp.wraith
+	@touch stamp.dynamic
 
 
 checkclean.debug:
 checkclean.debug:
-	@(if test -f stamp.wraith; then \
+	@(if test -f stamp.static -o -f stamp.dynamic; then \
 	echo "[*] Cleaning up alternate build"; \
 	echo "[*] Cleaning up alternate build"; \
 	$(MAKE) MAKEFLAGS=-s clean; \
 	$(MAKE) MAKEFLAGS=-s clean; \
 	fi)
 	fi)
@@ -221,13 +234,22 @@ checkclean.debug:
 lib:
 lib:
 	+@cd lib && $(MAKE)
 	+@cd lib && $(MAKE)
 
 
-wraith:	checkclean.wraith lib general
+dynamic: checkclean.dynamic lib general
+	@echo ""
+	@echo "Making dynamic binary"
+	@echo ""
+	@echo ""
+	+@cd src/mod && $(MAKE_DYNAMIC) static
+	+@cd src && $(MAKE_DYNAMIC) $(BINEXEC)
+	@echo ""
+
+static: checkclean.static lib general
 	@echo ""
 	@echo ""
-	@echo "Making binary"
+	@echo "Making static binary"
 	@echo ""
 	@echo ""
 	@echo ""
 	@echo ""
-	+@cd src/mod && $(MAKE_BIN) static
-	+@cd src && $(MAKE_BIN) $(BINEXEC)
+	+@cd src/mod && $(MAKE_STATIC) static
+	+@cd src && $(MAKE_STATIC) $(BINEXEC)
 	@echo ""
 	@echo ""
 
 
 dwraith: debug
 dwraith: debug