Hi again, just a note about my patch: if I were to be perfectionist, I'd say that this overwrite of the CCAS environment variable is not very nice. This is advertized to users (see ./configure --help) as though they are able to choose the assembly compiler of their choice (be it nasm, gcc, or whatever else). But we are actually forcing nasm for .s files, and gcc for .S files (see admin/nasm). The bad part of this is that a user may want to use another assembler (which may be perfectly fine) and explicitely set it in the CCAS variable, and one would not understand why this choice would be overwritten.
So maybe there is a reason to this, as I said before. And I have no idea what it is (features only available on nasm and gcc?). This is why I chose the shorter path to propose the basic patch which only checks, hence force, the existence of nasm. A better patch might be to get rid of this code, if it makes sense?.. Anyway I think my patch will do for now (hopefully) if none ever complained about this and if nobody wants to enter in history research of why this had been done like this. :-) Tell me what you think. :-) Jehan On Thu, Sep 13, 2012 at 4:38 PM, Jehan Pagès <[email protected]> wrote: > 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 _______________________________________________ Cinelerra mailing list [email protected] https://init.linpro.no/mailman/skolelinux.no/listinfo/cinelerra
