From f0b7952caaf2500faa3cb6b0ddae8ff41f3cad96 Mon Sep 17 00:00:00 2001 From: ojab Date: Mon, 31 Jan 2011 15:07:55 +0300 Subject: [PATCH 1/5] 1. Change hardcoded g++ to $(CXX) 2. Change CFLAGS to CXXFLAGS 3. Add binaries to clean target 4. Generate wxWidgets includes/ldflags/etc from wx-config --- makefile.unix | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/makefile.unix b/makefile.unix index 9573a560f6..b36aa2c6a8 100644 --- a/makefile.unix +++ b/makefile.unix @@ -2,18 +2,11 @@ # Distributed under the MIT/X11 software license, see the accompanying # file license.txt or http://www.opensource.org/licenses/mit-license.php. +CXX=g++ -INCLUDEPATHS= \ - -I"/usr/local/include/wx-2.9" \ - -I"/usr/local/lib/wx/include/gtk2-unicode-debug-static-2.9" +WXINCLUDEPATHS:=$(shell wx-config --cppflags) -# for wxWidgets 2.9.1, add -l Xxf86vm -WXLIBS= \ - -Wl,-Bstatic \ - -l wx_gtk2ud-2.9 \ - -Wl,-Bdynamic \ - -l gtk-x11-2.0 \ - -l SM +WXLIBS:=$(shell wx-config --libs) # for boost 1.37, add -mt to the boost libraries LIBS= \ @@ -30,9 +23,9 @@ LIBS= \ -l z \ -l dl -DEFS=-D__WXGTK__ -DNOPCH -DFOURWAYSSE2 -DUSE_SSL +DEFS:=$(shell wx-config --cxxflags) -DNOPCH -DFOURWAYSSE2 -DUSE_SSL DEBUGFLAGS=-g -D__WXDEBUG__ -CFLAGS=-O2 -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS) +CXXFLAGS=-O2 -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS) $(WXINCLUDEPATHS) HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \ script.h db.h net.h irc.h main.h rpc.h uibase.h ui.h noui.h init.h @@ -53,23 +46,23 @@ all: bitcoin obj/%.o: %.cpp $(HEADERS) - g++ -c $(CFLAGS) -DGUI -o $@ $< + $(CXX) -c $(CXXFLAGS) -DGUI -o $@ $< cryptopp/obj/%.o: cryptopp/%.cpp - g++ -c $(CFLAGS) -O3 -o $@ $< + $(CXX) -c $(CXXFLAGS) -O3 -o $@ $< obj/sha256.o: sha256.cpp - g++ -c $(CFLAGS) -msse2 -O3 -march=amdfam10 -o $@ $< + $(CXX) -c $(CXXFLAGS) -msse2 -O3 -march=amdfam10 -o $@ $< bitcoin: $(OBJS) obj/ui.o obj/uibase.o obj/sha256.o - g++ $(CFLAGS) -o $@ $^ $(WXLIBS) $(LIBS) + $(CXX) $(CXXFLAGS) -o $@ $^ $(WXLIBS) $(LIBS) obj/nogui/%.o: %.cpp $(HEADERS) - g++ -c $(CFLAGS) -o $@ $< + $(CXX) -c $(CXXFLAGS) -o $@ $< bitcoind: $(OBJS:obj/%=obj/nogui/%) obj/sha256.o - g++ $(CFLAGS) -o $@ $^ $(LIBS) + $(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS) clean: @@ -77,3 +70,5 @@ clean: -rm -f obj/nogui/*.o -rm -f cryptopp/obj/*.o -rm -f headers.h.gch + -rm -f bitcoin + -rm -f bitcoind From 8314b7f5e68007db1ffe12a0fe5d3204d4e79d2d Mon Sep 17 00:00:00 2001 From: Matt Giuca Date: Sat, 26 Feb 2011 08:58:15 +1100 Subject: [PATCH 2/5] makefile.unix: Removed redundant use of wx-config in DEFS (it was being included twice). Also changed wx-config --cppflags to --cxxflags. I am not sure what the difference is supposed to be, but --cppflags does not include -pthread. --- makefile.unix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/makefile.unix b/makefile.unix index b36aa2c6a8..383de9aded 100644 --- a/makefile.unix +++ b/makefile.unix @@ -4,7 +4,7 @@ CXX=g++ -WXINCLUDEPATHS:=$(shell wx-config --cppflags) +WXINCLUDEPATHS:=$(shell wx-config --cxxflags) WXLIBS:=$(shell wx-config --libs) @@ -23,7 +23,7 @@ LIBS= \ -l z \ -l dl -DEFS:=$(shell wx-config --cxxflags) -DNOPCH -DFOURWAYSSE2 -DUSE_SSL +DEFS=-DNOPCH -DFOURWAYSSE2 -DUSE_SSL DEBUGFLAGS=-g -D__WXDEBUG__ CXXFLAGS=-O2 -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS) $(WXINCLUDEPATHS) HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \ From 3415b15a56e2ffec16c831d5994b969daa65dc2b Mon Sep 17 00:00:00 2001 From: Matt Giuca Date: Sat, 26 Feb 2011 09:10:10 +1100 Subject: [PATCH 3/5] makefile.unix: WXINCLUDEPATHS now only used for building GUI object files. Moved it out of CXXFLAGS and into the command-line for the GUI objects. It will no longer be invoked for non-GUI and crypto object files. --- makefile.unix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/makefile.unix b/makefile.unix index 383de9aded..229263912d 100644 --- a/makefile.unix +++ b/makefile.unix @@ -25,7 +25,7 @@ LIBS= \ DEFS=-DNOPCH -DFOURWAYSSE2 -DUSE_SSL DEBUGFLAGS=-g -D__WXDEBUG__ -CXXFLAGS=-O2 -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS) $(WXINCLUDEPATHS) +CXXFLAGS=-O2 -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS) HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \ script.h db.h net.h irc.h main.h rpc.h uibase.h ui.h noui.h init.h @@ -46,7 +46,7 @@ all: bitcoin obj/%.o: %.cpp $(HEADERS) - $(CXX) -c $(CXXFLAGS) -DGUI -o $@ $< + $(CXX) -c $(CXXFLAGS) $(WXINCLUDEPATHS) -DGUI -o $@ $< cryptopp/obj/%.o: cryptopp/%.cpp $(CXX) -c $(CXXFLAGS) -O3 -o $@ $< From 84778a5b465bce7d30532eab30f5befe92bfbd13 Mon Sep 17 00:00:00 2001 From: Matt Giuca Date: Sat, 26 Feb 2011 09:12:42 +1100 Subject: [PATCH 4/5] makefile.unix: Fixed errors building bitcoind without wxWidgets installed. WXINCLUDEPATHS and WXLIBS now assigned with '=' instead of ':='. This means they are only evaluated on-demand, and they will never be requested by 'make bitcoind', so it won't try to call wx-config. --- makefile.unix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/makefile.unix b/makefile.unix index 229263912d..d306f746d3 100644 --- a/makefile.unix +++ b/makefile.unix @@ -4,9 +4,9 @@ CXX=g++ -WXINCLUDEPATHS:=$(shell wx-config --cxxflags) +WXINCLUDEPATHS=$(shell wx-config --cxxflags) -WXLIBS:=$(shell wx-config --libs) +WXLIBS=$(shell wx-config --libs) # for boost 1.37, add -mt to the boost libraries LIBS= \ From 84711b18bc956e5900493c3722d5375758e9f584 Mon Sep 17 00:00:00 2001 From: Matt Giuca Date: Sat, 26 Feb 2011 09:17:49 +1100 Subject: [PATCH 5/5] build-unix.txt: Updated (now OK to use wxWidgets > 2.9.0). --- build-unix.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build-unix.txt b/build-unix.txt index 25c4db2557..27a4570665 100644 --- a/build-unix.txt +++ b/build-unix.txt @@ -29,8 +29,8 @@ or Boost 1.37: sudo apt-get install libboost1.37-dev If using Boost 1.37, append -mt to the boost libraries in the makefile. -We're using wxWidgets 2.9.0, which uses UTF-8. Don't try 2.8, it won't work. -The build hasn't been updated to work with wxWidgets 2.9.1 yet. +Requires wxWidgets 2.9.0 or greater, which uses UTF-8. Don't try 2.8, it +won't work. You need to download wxWidgets from http://www.wxwidgets.org/downloads/ and build it yourself. See the build instructions and configure parameters