Makefile install target sometimes working, sometimes not - build

I'm currently working on a project that should also provide a source package to be packaged into linux systems. Since I'm using monodevelop, I used
mdtool generate-makefiles AudioCuesheetEditor.sln --simple-makefiles
to generate makefiles,etc. But there is a little problem. On some system everything works fine when running the last step
make install
but sometimes not. The output then says
[root#VMFedora17 Downloads]# make install
make[1]: Entering directory `/home/sven/Downloads'
make[1]: Leaving directory `/home/sven/Downloads'
make[1]: Entering directory `/home/sven/Downloads'
make pre-install-local-hook prefix=/usr/local
make[2]: Entering directory `/home/sven/Downloads'
make[2]: Leaving directory `/home/sven/Downloads'
make install-satellite-assemblies prefix=/usr/local
make[2]: Entering directory `/home/sven/Downloads'
mkdir -p '/usr/local/lib'
cp bin/Release /usr/local/lib/AudioCuesheetEditor
cp: omitting directory `bin/Release'
make[2]: *** [/usr/local/lib/AudioCuesheetEditor] Error 1
make[2]: Leaving directory `/home/sven/Downloads'
make[1]: *** [install-local] Error 2
make[1]: Leaving directory `/home/sven/Downloads'
make: *** [install-recursive] Error 1
This was run on a Fedora 17 Linux with KDE installed. On another Fedora 17 KDE everything went perfect.
Could somebody help me, where the error is?
Makefile can be found here: http://sourceforge.net/p/audiocuesheet/code/140/tree/trunk/Quellcode/AudioCuesheetEditor.make
Thanks for your help!

From your output and the link you provided, I found the error in the following snippet:
install-local: $(ASSEMBLY) $(ASSEMBLY_MDB)
make pre-install-local-hook prefix=$(prefix)
make install-satellite-assemblies prefix=$(prefix)
mkdir -p '$(DESTDIR)$(libdir)/$(PACKAGE)'
$(call cp,$(ASSEMBLY),$(DESTDIR)$(libdir)/$(PACKAGE))
I guess $(ASSEMBLY) was a directory, but I am not sure. And the command cp without the parameter -r will not copy the directory recursively. You can try to modify
$(call cp,$(ASSEMBLY),$(DESTDIR)$(libdir)/$(PACKAGE))
to
$(call cp,-r,$(ASSEMBLY),$(DESTDIR)$(libdir)/$(PACKAGE))
or
cp -r $(ASSEMBLY) $(DESTDIR)$(libdir)/$(PACKAGE)
Additionally, if you want to find out why the original works on one machine but not on the another, you can add a command:
echo $(ASSEMBLY)
before the above command to see if the output of them are different on different machines.

Related

Recompiling does not reflect changes

I am attempting to make a simple change to the bitcoin core codebase locally but my changes are not reflected after recompilation. Below are the steps to reproduce the issue:
Clone the bitcoin source code:
git clone https://github.com/bitcoin/bitcoin.git
cd bitcoin
Edit: src/rpc/rawtransaction.cpp and change something (anything). Here I just put "HELLO WORLD" in the signrawtransactionwithkey method as shown below and left everything else the same:
static RPCHelpMan signrawtransactionwithkey()
{
return RPCHelpMan{"signrawtransactionwithkey",
"\n HELLO WORLD Sign inputs for raw transaction (serialized, hex-encoded).\n"
... <code continues> ...
Recompile:
./autogen.sh
./configure
make -j 16
make command output:
Making all in src
make[1]: Entering directory '/home/bitcoinfacts/bitcoin/src'
make[2]: Entering directory '/home/bitcoinfacts/bitcoin/src'
make[3]: Entering directory '/home/bitcoinfacts/bitcoin'
make[3]: Leaving directory '/home/bitcoinfacts/bitcoin'
CXXLD qt/bitcoin-qt
CXXLD test/fuzz/fuzz
CXXLD qt/test/test_bitcoin-qt
make[2]: Leaving directory '/home/bitcoinfacts/bitcoin/src'
make[1]: Leaving directory '/home/bitcoinfacts/bitcoin/src'
Making all in doc/man
make[1]: Entering directory '/home/bitcoinfacts/bitcoin/doc/man'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/bitcoinfacts/bitcoin/doc/man'
make[1]: Entering directory '/home/bitcoinfacts/bitcoin'
make[1]: Nothing to be done for 'all-am'.
make[1]: Leaving directory '/home/bitcoinfacts/bitcoin'
Run the signrawtransactionwithkey command:
./src/bitcoin-cli signrawtransactionwithkey
The output does not include HELLO WORLD:
error code: -1
error message:
signrawtransactionwithkey "hexstring" ["privatekey",...] ( [{"txid":"hex","vout":n,"scriptPubKey":"hex","redeemScript":"hex","witnessScript":"hex","amount":amount},...] "sighashtype" )
Sign inputs for raw transaction (serialized, hex-encoded).
... <output continues> ...
Why? What I am I doing wrong?
The reason was that I had to kill and restart bitcoind because that's where the change actually was (not bitcoin-cli, as I previously thought. Duh!)

NetBeans Make Command when using MinGW

I'm trying to use NetBean to program C++, I have followed each of the
commands found here:
https://netbeans.org/community/releases/68/cpp-setup-instructions.html#compilers_windows
However, I am having trouble with the make command option in netbeans. I have set the base directory o M:\c++\bin, where I have MinGW installed, and I have the make command set to M:\MinSYS\bin\make.exe, but when trying to build a simple program, netbeans produces the following error:
"/M/c++/MinSYS/bin/make.exe" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make.exe[1]: Entering directory `/m/Documents/NetBeansProjects/CppApplication_1'
"/M/c++/MinSYS/bin/make.exe" -f nbproject/Makefile-Debug.mk dist/Debug/MinGW-Windows/cppapplication_1.exe
make.exe[2]: Entering directory `/m/Documents/NetBeansProjects/CppApplication_1'
mkdir -p build/Debug/MinGW-Windows
make.exe[2]: mkdir: Command not found
make.exe[2]: *** [build/Debug/MinGW-Windows/main.o] Error 127
make.exe[2]: Leaving directory `/m/Documents/NetBeansProjects/CppApplication_1'
make.exe[1]: *** [.build-conf] Error 2
make.exe[1]: Leaving directory `/m/Documents/NetBeansProjects/CppApplication_1'
make.exe": *** [.build-impl] Error 2
I have tried changing the make command to anything with make in it, but neither get anywhere, any help would be massively appreciated.
When using MinGW it is said that mingw make is not supported, so install MSYS make utility from MinGW and update in build tools make command as shown in below picture, hope it helps.
Installation of MSYS make
Update make command
I ran into the same problem. Saw the answer on another post and it fixed the issue. Make sure to restart NetBeans after doing the following:
Right click on My Computer and select properties. Click Advanced System Settings.System Properties dialog box will open. click Environmental Variables. Edit PATH variable and add C:\MinGW\msys\1.0\bin

Apache thrift can not make

When I'm trying to configure and make thrift 0.9.1 it gives some errors. Can anyone tell me the reason for that and what should I do to overcome this issue. Errors are shown in below.
user#linux-yyzo:~/WorkDir/thrift-0.9.1> make
make all-recursive
make[1]: Entering directory `/home/user/WorkDir/thrift-0.9.1'
Making all in compiler/cpp
make[2]: Entering directory `/home/user/WorkDir/thrift-0.9.1/compiler/cpp'
make all-am
make[3]: Entering directory `/home/user/WorkDir/thrift-0.9.1/compiler/cpp'
\
\
/bin/sh ../../ylwrap `test -f 'src/thrifty.yy' || echo './'`src/thrifty.yy y.tab.c thrifty.cc y.tab.h thrifty.h y.output thrifty.output -- yacc -d
../../ylwrap: line 113: yacc: command not found
make[3]: *** [thrifty.cc] Error 1
make[3]: Leaving directory `/home/user/WorkDir/thrift-0.9.1/compiler/cpp'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/user/WorkDir/thrift-0.9.1/compiler/cpp'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/user/WorkDir/thrift-0.9.1'
make: *** [all] Error 2
user#linux-yyzo:~/WorkDir/thrift-0.9.1>
There are two resources on the Thrift web site worth reading when one runs into troubles like this.
The Requirements give a good overview about the dependencies; the Building From Source page explains build steps and configure switches briefly. Additionally, the requirements page holds some links to more specific information for builds on Ubuntu, CentOS, Windows and OS X.

Cannot build LLVM and Clang

I have tried to compile clang and llvm using the clang getting started manual. However, at step 5, when I do make, I get the following error. Any idea what is going on here, and how to fix it? Note that I am using Ubuntu 10.04 on a 64 bit x86 system.
cp: cannot stat `/home/MetallicPriest/Desktop/build/tools/clang/runtime/compiler-rt/clang_linux/full-x86_64/libcompiler_rt.a': No such file or directory
make[4]: *** [/home/MetallicPriest/Desktop/build/Debug+Asserts/lib/clang/3.1/lib/linux/libclang_rt.full-x86_64.a] Error 1
rm /home/MetallicPriest/Desktop/build/Debug+Asserts/lib/clang/3.1/lib/linux/.dir
make[4]: Leaving directory `/home/MetallicPriest/Desktop/build/tools/clang/runtime/compiler-rt'
make[3]: *** [compiler-rt/.makeall] Error 2
make[3]: Leaving directory `/home/MetallicPriest/Desktop/build/tools/clang/runtime'
make[2]: *** [all] Error 1
make[2]: Leaving directory `/home/MetallicPriest/Desktop/build/tools/clang'
make[1]: *** [clang/.makeall] Error 2
make[1]: Leaving directory `/home/MetallicPriest/Desktop/build/tools'
make: *** [all] Error 1
## Heading ##
The instruction given on this site work!
I had the same problem. As Eli suggested, I got the 3.0 release. It doesn't come with a 'getting started' but you can follow the INSTALL file from clang's root top.
You should be able to copy/paste the following (as root of course for the /usr/local/ part)
export NUMCPU=4 # or however many cores you want to paralell build with
export ORIGDIR=$PWD
wget http://llvm.org/releases/3.0/llvm-3.0.tar.gz
tar -zxf llvm-3.0.tar.gz
cd llvm-3.0.src/tools
wget http://llvm.org/releases/3.0/clang-3.0.tar.gz
tar -zxf clang-3.0.tar.gz
mv clang-3.0.src clang
cd $ORIGDIR
mkdir build
cd build
../llvm-3.0.src/configure --prefix=/usr/local
make -j$NUMCPU
cd tools/clang
make install
--
update, I should also note that following the 'getting started guide' with latest subversion (2012 09 10) actually does work , and i copy/pasted the lines exactly from the 'getting started' page http://clang.llvm.org/get_started.html (including 'optional' stuff) on a Fedora machine on ppc64.

gcc 4.5 installation problem under ubuntu

I tried to install gcc 4.5 on ubuntu 10.04 but failed.
Here is a compile error that I don't know how to solve. Is there anyone successfully install the latest gcc on ubuntu?
Following is my steps and the error message, I'd like to know where is the problem....
Step1: download these files:
gcc-core-4.5.0.tar.gz
gcc-g++-4.5.0.tar.gz
gmp-4.3.2.tar.bz2
mpc-0.8.1.tar.gz
mpfr-2.4.2.tar.gz
Step2: Unzip above files
Step3: move gmp, mpc, mpfr to the gcc-4.5.0/ directory.
mv gmp-4.3.2 gcc-4.5.0/gmp
mv mpc-0.8.1 gcc-4.5.0/mpc
mv mpfr-2.4.2 gcc-4.5.0/mpfr
Step4: go to gcc-4.5.0 directory and do configuration:
sudo ./configure
Step5: compile and install
sudo make
sudo make install
The first 4 steps is OK, I can configure it successfully. However, when I try to compile it, following error message comes out, I cannot figure out what the problem is. Should I change the name from "gcc 4.5" to "gcc"?? It's a little strange that we need to do this by ourself. Is there anything I missed during the installation?
xxx#xxx-laptop:/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0$ sudo make
[sudo] password for xxx:
[ -f stage_final ] || echo stage3 > stage_final
/bin/bash: line 2: test: /media/Data/Tool/linux/gcc: binary operator expected
/bin/bash: /media/Data/Tool/linux/gcc: No such file or directory
make[1]: Entering directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0'
make[2]: Entering directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0'
make[3]: Entering directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0'
rm -f stage_current
make[3]: Leaving directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0'
make[2]: Leaving directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0'
make[2]: Entering directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0'
Configuring stage 1 in host-x86_64-unknown-linux-gnu/intl
/bin/bash: /media/Data/Tool/linux/gcc: No such file or directory
make[2]: *** [configure-stage1-intl] Error 127
make[2]: Leaving directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0'
make: *** [all] Error 2
It might not be a good idea to have a space in your path - it's kind of rare and can easily mess up shell scripts that aren't specially designed to deal with it (which is a bad combination!)
Another potential problem is that you're running configure inside the gcc source directory - this isn't recommended (and didn't work at all for me on at least one version of gcc 4). Instead make an empty build directory, parallel to the source directory, so you have something like:
gcc 4.5 <- but might want to avoid the space
gcc-4.5.0
...
build
Then cd into build and run
../gcc-4.5.0/configure
You may also need to start from a freshly unzipped source directory, as the previous failed build may have broken it.