[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[BUG] nasm files are not processed in automake generated Makefiles
From: |
Edouard Gomez |
Subject: |
[BUG] nasm files are not processed in automake generated Makefiles |
Date: |
Wed, 21 Aug 2002 01:51:37 +0200 |
User-agent: |
Mutt/1.4i |
Hello,
I'm trying to build an autoconf/automake tree for the XviD
project. The XviD lib uses lot of optimized asm files that must be
assemble with nasm.
As libtool does not support nasm natively, i had to use a tip from the
the libsdl library automake files. But like libsdl (you can read a
mail from Arkadiusz Miskiewicz <address@hidden>, 20 Oct 2001) the
nasm files are not processed.
My Makefile.am looks like this :
******** Makefile.am start ********
NASM = @NASM@
NASMFLAGS = @NASMFLAGS@
SRC_INTEL = \
$(top_srcdir)/src/utils/x86_asm/cpuid.asm \
... list of nasm files to assemble
lib_LTLIBRARIES = libxvid.la
SUFFIXES = .asm
libxvid_la_SOURCES = $(SRC_INTEL)
FIXPIC = sh $(top_srcdir)/fixPIC.sh
.asm.lo:
$(LIBTOOL) --mode=compile $(NASM) $(NASMFLAGS) $<
******** Makefile.am end ********
The resulting Makefile looks like this
******** Makefile start ********
[...]
am__objects_1 = cpuid.lo cbp_mmx.lo cbp_sse2.lo fdct_mmx.lo idct_mmx.lo \
interpolate8x8_mmx.lo rgb_to_yv12_mmx.lo yuv_to_yv12_mmx.lo \
yuyv_to_yv12_mmx.lo yv12_to_rgb24_mmx.lo yv12_to_rgb32_mmx.lo \
yv12_to_yuyv_mmx.lo sad_mmx.lo quantize4_mmx.lo quantize_mmx.lo \
mem_transfer_mmx.lo interpolate8x8_xmm.lo sad_xmm.lo \
sad_sse2.lo interpolate8x8_3dn.lo sad_3dn.lo
am_libxvid_la_OBJECTS = $(am__objects_1)
libxvid_la_OBJECTS = $(am_libxvid_la_OBJECTS)
[...]
cpuid.lo: $(top_srcdir)/src/utils/x86_asm/cpuid.asm
# all the nasm files have a .lo target entry
[...]
.asm.lo:
$(LIBTOOL) --mode=compile $(NASM) $(NASMFLAGS) $<
[...]
******** Makefile end ********
So as i far as i understand the generated Makefile, to build the
libxvid lib, make should first create all *.lo files. So it should
find individual nasm file targets and process them thanks to the
.asm.lo target. But there's something wrong here because i obtain
that:
address@hidden:src] # make clean all
test -z "libxvid.la" || rm -f libxvid.la
rm -f "libxvid.la/so_locations"
rm -rf .libs _libs
rm -f *.o core *.core
rm -f *.lo
rpath /usr/local/lib cpuid.lo cbp_mmx.lo cbp_sse2.lo fdct_mmx.lo idct_mmx.lo
interpolate8x8_mmx.lo rgb_to_yv12_mmx.lo yuv_to_yv12_mmx.lo yuyv_to_yv12_mmx.lo
yv12_to_rgb24_mmx.lo yv12_to_rgb32_mmx.lo yv12_to_yuyv_mmx.lo sad_mmx.lo
quantize4_mmx.lo quantize_mmx.lo mem_transfer_mmx.lo interpolate8x8_xmm.lo
sad_xmm.lo sad_sse2.lo interpolate8x8_3dn.lo sad_3dn.lo
make: rpath: Command not found
make: [libxvid.la] Error 127 (ignored)
******** End of output ********
I've also run a single target to see if it was make which was failing :
address@hidden:src] # make -d cpuid.lo
[...]
Reading makefile `Makefile'...
Updating makefiles....
Considering target file `Makefile'.
Finished prerequisites of target file `Makefile'.
No need to remake target `Makefile'.
Updating goal targets....
Considering target file `cpuid.lo'.
File `cpuid.lo' does not exist.
Looking for an implicit rule for `cpuid.lo'.
[...]
Trying implicit prerequisite `cpuid.asm'.
Looking for a rule with intermediate file `cpuid.asm'.
[...]
Finished prerequisites of target file `../src/utils/x86_asm/cpuid.asm'.
No need to remake target `../src/utils/x86_asm/cpuid.asm'.
Finished prerequisites of target file `cpuid.lo'.
Must remake target `cpuid.lo'.
Successfully remade target file `cpuid.lo'.
make: Nothing to be done for `cpuid.lo'.
******** End of output ********
If someone is interested, i could send him the files and all cvs url
needed to checkout the source repository.
Btw, I would prefer someone with a solution :-)
PLEASE CC ME BECAUSE I'M NOT SUBSCRIBED TO THE LIST.
PS :
aclocal (GNU automake) 1.6.3
ltmain.sh (GNU libtool) 1.4.2a (1.922.2.100 2002/06/26 07:25:14)
autoconf (GNU Autoconf) 2.53
automake (GNU automake) 1.6.3
--
Edouard Gomez
- [BUG] nasm files are not processed in automake generated Makefiles,
Edouard Gomez <=