[rabbitmq-discuss] [bug] umbrella common.mk

Steve Powell steve at rabbitmq.com
Mon Apr 2 14:44:18 BST 2012


Matwey,

Thanks for raising this. I have managed to reproduce your problem (on
MacOS) -- almost.

My builds fail with lots of lines like this:

do-package.mk:507: warning: overriding commands for target `mochiweb-wrapper/dist/.done'
do-package.mk:507: warning: ignoring old commands for target `mochiweb-wrapper/dist/.done'

followed by:

rabbitmq-stomp/package.mk:31: *** target pattern contains no `%'.  Stop.
make[1]: *** [clean] Error 2
rm -f include/rabbit_framing.hrl src/rabbit_framing_amqp_*.erl codegen.pyc
rm -f docs/*.[0-9].gz docs/*.man.xml docs/*.erl     src/rabbit_ctl_usage.erl     src/rabbit_plugins_usage.erl
rm -f rabbit.plt
rm -f deps.mk

but then I have only one colon in my containing directory
(I used rabbitmq:build).

The problem is that rabbitmq's make uses full file paths as targets; and
colons are significant in dependency lines (target:sources). Hence the
rather cryptic error message from make. It also explains the overriding
noise I get: the colons interfere with target lines (they become wrong
ones) and the make dependency tree is tangled/confused. I'm not sure why
you don't get them, too (but maybe it depends exactly what your dir
containing colons is called).

To make the make referentially transparent wrt directory names is
probably more work than we will undertake; but the workaround is very
easy.

I'm sorry the advice is the doctor's one: if it hurts doing that -- then
don't do it.

If you feel strongly about this, then I'll raise a bug; but it is
unlikely to be fixed IMO.

Yours,
Steve Powell  (a droopy bunny)
----------some more definitions from the SPD----------
chinchilla (n.) Cooling device for the lower jaw.
socialcast (n.) Someone to whom everyone is speaking but nobody likes.
literacy (n.) A textually transmitted disease usually contracted in childhood.

On 2 Apr 2012, at 12:07, Matwey V. Kornilov wrote:

> 
> Hi Steve, Emile,
> 
> * Platform details/Installation details:
> 
> My OS: openSUSE 12.1, GNU Make 3.82, Erlang/OTP R15B,
> x86 cpu, reiserfs 3.6 filesystem.
> I am trying to compile RabbitMQ 2.8.1 from source package.
> 
> * Directory details/Command sequence/What happens:
> 
> matwey@?:~/temp/my:test:dir> pwd
> /home/matwey/temp/my:test:dir
> matwey@?:~/temp/my:test:dir> wget http://www.rabbitmq.com/releases/rabbitmq-server/v2.8.1/rabbitmq-server-2.8.1.tar.gz
> <<I've skipped wget output>>
> 2012-04-02 14:53:16 (475 KB/s) - `rabbitmq-server-2.8.1.tar.gz' saved [2644402/2644402]
> 
> matwey@?:~/temp/my:test:dir> tar -zxf rabbitmq-server-2.8.1.tar.gz 
> matwey@?:~/temp/my:test:dir> cd rabbitmq-server-2.8.1/
> matwey@?:~/temp/my:test:dir/rabbitmq-server-2.8.1> make
> python codegen.py body codegen/amqp-rabbitmq-0.9.1.json src/rabbit_framing_amqp_0_9_1.erl
> python codegen.py body codegen/amqp-rabbitmq-0.8.json src/rabbit_framing_amqp_0_8.erl
> <<I've skipped erlang compiling>>
> erlc -I include -o ebin -Wall -v +debug_info -Duse_specs  -pa ebin src/rabbit_channel.erl
> [ -d "plugins-src/rabbitmq-server" ] || ln -s "/home/matwey/temp/my:test:dir/rabbitmq-server-2.8.1" "plugins-src/rabbitmq-server"
> mkdir -p plugins
> PLUGINS_SRC_DIR="" make -C "plugins-src" plugins-dist PLUGINS_DIST_DIR="/home/matwey/temp/my:test:dir/rabbitmq-server-2.8.1/plugins" VERSION=0.0.0
> make[1]: Entering directory `/home/matwey/temp/my:test:dir/rabbitmq-server-2.8.1/plugins-src'
> make -f all-packages.mk all-releasable VERSION=0.0.0
> make[2]: Entering directory `/home/matwey/temp/my:test:dir/rabbitmq-server-2.8.1/plugins-src'
> common.mk:87: *** target pattern contains no `%'.  Stop.
> make[2]: Leaving directory `/home/matwey/temp/my:test:dir/rabbitmq-server-2.8.1/plugins-src'
> make[1]: *** [release] Error 2
> make[1]: Leaving directory `/home/matwey/temp/my:test:dir/rabbitmq-server-2.8.1/plugins-src'
> make: *** [plugins] Error 2
> 
> * What I expected:
> 
> matwey@?:~/temp/dir_wo_columns> pwd
> /home/matwey/temp/dir_wo_columns
> matwey@?:~/temp/dir_wo_columns> wget http://www.rabbitmq.com/releases/rabbitmq-server/v2.8.1/rabbitmq-server-2.8.1.tar.gz
> <<I've skipped wget output>>
> 2012-04-02 14:58:30 (425 KB/s) - `rabbitmq-server-2.8.1.tar.gz' saved [2644402/2644402]
> 
> matwey@?:~/temp/dir_wo_columns> tar -zxf rabbitmq-server-2.8.1.tar.gz 
> matwey@?:~/temp/dir_wo_columns> cd rabbitmq-server-2.8.1/
> matwey@?:~/temp/dir_wo_columns/rabbitmq-server-2.8.1> make
> python codegen.py body codegen/amqp-rabbitmq-0.9.1.json src/rabbit_framing_amqp_0_9_1.erl
> python codegen.py body codegen/amqp-rabbitmq-0.8.json src/rabbit_framing_amqp_0_8.erl
> <<I've skipped erlang compiling>>
> erlc -I include -o ebin -Wall -v +debug_info -Duse_specs  -pa ebin src/rabbit_channel.erl
> [ -d "plugins-src/rabbitmq-server" ] || ln -s "/home/matwey/temp/dir_wo_columns/rabbitmq-server-2.8.1" "plugins-src/rabbitmq-server"
> mkdir -p plugins
> PLUGINS_SRC_DIR="" make -C "plugins-src" plugins-dist PLUGINS_DIST_DIR="/home/matwey/temp/dir_wo_columns/rabbitmq-server-2.8.1/plugins" VERSION=0.0.0
> make[1]: Entering directory `/home/matwey/temp/dir_wo_columns/rabbitmq-server-2.8.1/plugins-src'
> make -f all-packages.mk all-releasable VERSION=0.0.0
> make[2]: Entering directory `/home/matwey/temp/dir_wo_columns/rabbitmq-server-2.8.1/plugins-src'
> [elided] generate deps
> [elided] fix test deps
> <<I've skipped plugins building>>
> cp rabbitmq-auth-mechanism-ssl/dist/*.ez /home/matwey/temp/dir_wo_columns/rabbitmq-server-2.8.1/plugins
> make[2]: Leaving directory `/home/matwey/temp/dir_wo_columns/rabbitmq-server-2.8.1/plugins-src'
> make[1]: Leaving directory `/home/matwey/temp/dir_wo_columns/rabbitmq-server-2.8.1/plugins-src'
> echo "Put your EZs here and use rabbitmq-plugins to enable them." > plugins/README
> rm -f plugins/rabbit_common*.ez
> 
> 
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com
> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss



More information about the rabbitmq-discuss mailing list