Hi,

the nasm assembly compiler is apparently mandatory for cinderella compilation.
It seems that normally this can be advantageously replaced by the C
compiler (probably a default choice of the autotools?) but that
behaviour has been apparently overwritten by Cinelerra developers to
force using the nasm compiler for .s files only.

See the perl script admin/nasm and configure.in line 30:
------------------------------
# hack for using nasm for .S files
CCAS="\$(top_srcdir)/admin/nasm"
AC_SUBST(CCAS)
AC_SUBST(CCASFLAGS)
------------------------------

I am not questioning this, I have no idea of the reason and if it is
still valid, but I guess there was one. Simply it makes that nasm is
mandatory for compiling cinderella as there are assembly files in
mpeg2enc/ and libmpeg3/ (not seen any option for these to be
optional?). But the configure script would still pass with success,
yet the compilation would fail.

------------------------------
[...]
/bin/sh ../libtool --tag=CC   --mode=compile ../admin/nasm  -g -O2 -c
-o predcomp_mmxe.lo predcomp_mmxe.s
libtool: compile:  ../admin/nasm -g -O2 -c predcomp_mmxe.s  -fPIC
-DPIC -o .libs/predcomp_mmxe.o
\1 better written as $1 at ../admin/nasm line 12.
nasm -felf predcomp_mmxe.s -o .libs/predcomp_mmxe.o
Can't exec "nasm": No such file or directory at ../admin/nasm line 24.
/bin/sh ../libtool --tag=CC   --mode=compile ../admin/nasm  -g -O2 -c
-o predcomp_mmx.lo predcomp_mmx.s
libtool: compile:  ../admin/nasm -g -O2 -c predcomp_mmx.s  -fPIC -DPIC
-o .libs/predcomp_mmx.o
\1 better written as $1 at ../admin/nasm line 12.
nasm -felf predcomp_mmx.s -o .libs/predcomp_mmx.o
Can't exec "nasm": No such file or directory at ../admin/nasm line 24.
/bin/sh ../libtool --tag=CC --tag=CC   --mode=link gcc
-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -g
-O2   -o libmpeg2enc.la  conform.lo mpeg2enc.lo putseq.lo putpic.lo
puthdr.lo putmpg.lo putvlc.lo putbits.lo predict.lo readpic.lo
writepic.lo transfrm.lo fdctref.lo idct.lo quantize.lo ratectl.lo
stats.lo motion.lo cpu_accel.lo fdct_mmx.lo fdctdata.lo idct_mmx.lo
idctdata.lo quant_mmx.lo quantize_x86.lo predict_mmx.lo
predcomp_mmxe.lo predcomp_mmx.lo  -lm -ldl -lpthread
libtool: link: ar cru .libs/libmpeg2enc.a .libs/conform.o
.libs/mpeg2enc.o .libs/putseq.o .libs/putpic.o .libs/puthdr.o
.libs/putmpg.o .libs/putvlc.o .libs/putbits.o .libs/predict.o
.libs/readpic.o .libs/writepic.o .libs/transfrm.o .libs/fdctref.o
.libs/idct.o .libs/quantize.o .libs/ratectl.o .libs/stats.o
.libs/motion.o .libs/cpu_accel.o .libs/fdct_mmx.o .libs/fdctdata.o
.libs/idct_mmx.o .libs/idctdata.o .libs/quant_mmx.o
.libs/quantize_x86.o .libs/predict_mmx.o .libs/predcomp_mmxe.o
.libs/predcomp_mmx.o
ar: .libs/fdct_mmx.o: No such file or directory
make[2]: *** [libmpeg2enc.la] Erreur 1
[...]
------------------------------

The attached patch simply adds a test of the pre-existence of "nasm"
during configure so that you get a clear message telling you what you
need to install to go further.
------------------------------
checking for nasm... no
configure: error: Cinerella requires the nasm assembler
------------------------------

Hope that's good. :-)
Thanks.

Jehan

Attachment: nasm.diff
Description: Binary data

Reply via email to