I am trying to learn autoconf and trying to use it to create build scripts for compiling Assembly language programs written in Gnu Assember(GAS).
Below is my configure.ac
AC_INIT([hello], [0.01]])
AC_CONFIG_SRCDIR([hello.s])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_AUX_DIR([build-aux])
AM_INIT_AUTOMAKE([-Wall -Werror])
AC_CONFIG_FILES([Makefile])
AM_PROG_AS
AC_OUTPUT
And below is Makefile.am
bin_PROGRAMS = hello
hello_SOURCES = hello.s
.hello.o:
as -gstabs+ $< -o $@
Below is the hello.s program
.section .text
.globl _start
_start:
pushl $3
pushl $2
call foo
movl $1, %eax
int $0x80
.type foo, @function
foo:
movl 4(%esp), %eax
movl 8(%esp), %ebx
addl %eax, %ebx
ret
when i run autoreconf -i i see this:
configure.ac:6: installing `build-aux/install-sh'
configure.ac:6: installing `build-aux/missing'
Running ./configure script
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... none
checking dependency style of gcc... none
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
when i run make install it fails with below errors:, I want to use "as" instead of gcc to assemble the assemble language.
[foobar]$ make install
gcc -g -O2 -c -o hello.o hello.s
gcc -g -O2 -o hello hello.o
hello.o: In function `_start':
/home/ashok/practice/ia32/myasm/autotools/foobar/hello.s:4: multiple definition of `_start'
/usr/lib/gcc/i686-redhat-linux/4.4.7/../../../crt1.o:(.text+0x0): first defined here
/usr/lib/gcc/i686-redhat-linux/4.4.7/../../../crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status
make: *** [hello] Error 1
I want autoconf to use "as" GNU assembler instead of gcc to compile the Assembly program. How do i override to not use gcc.