automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problems getting dependencies compiled before executable....


From: cs
Subject: Re: Problems getting dependencies compiled before executable....
Date: Wed, 11 Jun 2003 22:11:47 -0700 (MST)

Thanks for the reply.  I would do it as you said also.

My goal was to find out why _DEPENDENCIES is not doing

what I think it should.  Even though this example is

contrived, the same problem happens in examples that

are not.


If a dependency of a target is not built, then Makefile

should build the dependency first.  That is not what

is happening here.  Why can't Makefile go to right

directory to build the dependency???

Chris
 -------- Original Message --------
   Subject: Re: Problems getting dependencies compiled before executable....
   From: Santosh <address@hidden>
   Date: Wed, June 11, 2003 10:12 pm
   To: address@hidden

   Why not have the executable outside and the library
   in a subdirectory. That is how I put my libraries.

   src/main.c
   src/helperfunctions/helperfunctions.a

   with regards,
   Santosh.

   On Tue, 10 Jun 2003
   address@hidden wrote:

   > Assar
   >
   > Thanks for the email. I am using Red Hat 8 which means
   > automake 1.6 and autoconf 2.53.  I spent some time
   > creating a very *simple* example like you requested.
   > I'd be very grateful if you looked at it....
   >
   > In order to show you my problem with _DEPENDENCIES I
   > intentionally put the executable in src/exec and
   > the library stuff in src.  Since the executable in
   > src/exec cannot be built without the library in src
   > being built *first*, I was hoping build process would
   > realize this and adjust accordingly.  It didn't and
   > I got error message I want to fix.
   >
   > Here are the contents of 2 Makefile.am's that need to be fixed.....
   >
   > src/Makefile.am:
   > -----------------------------------------
   >
   > noinst_LIBRARIES             = libhelperfunctions.a
   > libhelperfunctions_a_SOURCES = printmessage1.c
   >                                printmessage1.h
   >                                printmessage2.c
   >                                printmessage2.h
   >                                printmessage3.c
   >                                printmessage3.h
   > SUBDIRS                      = exec
   >
   >
   > src/exec/Makefile.am
   > -----------------------------------------
   >
   > bin_PROGRAMS      = main
   > main_SOURCES      = main.c
   > main_LDADD        = -lhelperfunctions -lpthread -lm
   > main_DEPENDENCIES = ../libhelperfunctions.a
   > main_LDFLAGS      = -L ../
   > INCLUDES          = -I ../
   >
   > Here is what happens when I type make at top of source tree
   > (BTW: $(top_srcdir) = /home/seberino/MAIN/Wb/efe2)....
   >
   > Making all in src
   > make[1]: Entering directory `/home/seberino/MAIN/Wb/efe2/src'
   > Making all in exec
   > make[2]: Entering directory `/home/seberino/MAIN/Wb/efe2/src/exec'
   > make[2]: *** No rule to make target `../libhelperfunctions.a',
   > needed by `main'.  Stop.
   > make[2]: Leaving directory `/home/seberino/MAIN/Wb/efe2/src/exec'
   > make[1]: *** [all-recursive] Error 1
   > make[1]: Leaving directory `/home/seberino/MAIN/Wb/efe2/src'
   > make: *** [all-recursive] Error 1
   >
   >
   > Here is a listing of entire source tree before doing anything...
   >
   >
   > (laptop /home/seberino/MAIN/Wb/efe2) % ls -lR
   > .:
   > total 24
   > drwxrwxr-x    3 seberino seberino     4096 Jun 10 11:23 ./
   > drwxrwxr-x   15 seberino seberino     4096 Jun 10 10:51 ../
   > -rwxrwxr-x    1 seberino seberino      149 Jun 10 10:51 bootstrap
   > -rw-rw-r--    1 seberino seberino      177 Jun 10 10:58 configure.ac
   > -rw-rw-r--    1 seberino seberino       14 Jun 10 10:51 Makefile.am
   > drwxrwxr-x    4 seberino seberino     4096 Jun 10 11:24 src/
   >
   > ./src:
   > total 44
   > drwxrwxr-x    4 seberino seberino     4096 Jun 10 11:24 ./
   > drwxrwxr-x    3 seberino seberino     4096 Jun 10 11:23 ../
   > drwxrwxr-x    2 seberino seberino     4096 Jun 10 11:24 exec/
   > -rw-rw-r--    1 seberino seberino      380 Jun 10 10:56 Makefile.am
   > -rw-rw-r--    1 seberino seberino      189 Jun 10 10:51
   > printmessage1.c -rw-rw-r--    1 seberino seberino      249 Jun 10
   > 10:51 printmessage1.h -rw-rw-r--    1 seberino seberino      189 Jun
   > 10 10:51 printmessage2.c -rw-rw-r--    1 seberino seberino      249
   > Jun 10 10:51 printmessage2.h -rw-rw-r--    1 seberino seberino
   > 189 Jun 10 10:51 printmessage3.c -rw-rw-r--    1 seberino seberino
   >    249 Jun 10 10:51 printmessage3.h
   >
   > ./src/exec:
   > total 16
   > drwxrwxr-x    2 seberino seberino     4096 Jun 10 11:24 ./
   > drwxrwxr-x    4 seberino seberino     4096 Jun 10 11:24 ../
   > -rw-rw-r--    1 seberino seberino      625 Jun 10 10:51 main.c
   > -rw-rw-r--    1 seberino seberino      202 Jun 10 11:07 Makefile.am
   >
   >
   > Thanks!
   >
   > Chris
   >
   >
   >
   >
   >  -------- Original Message --------
   >    Subject: Re: Problems getting dependencies compiled before
   >    executable.... From: Assar Westerlund <address@hidden>
   >    Date: Fri, June 6, 2003 10:38 pm
   >    To: <address@hidden>
   >
   >    <address@hidden> writes:
   >    > I would have preferred that build system would see
   >    >
   >    >    myprogram_DEPENDENCIES = libmylibrary.a
   >    >
   >    > and automatically known to build library FIRST.
   >
   >    Why don't you use myprogram_LDADD = libmylibrary.a ?
   >
   >    I'm not able to reproduce your problem.  Can you tell us what
   >    version of automake you're running and show us a minimal example
   >    that shows the problem?
   >
   >
   >
   >
   >

   --
        Santosh Gangwani
        Software Engineer,
        Technology and Consultancy Centre (TCC),
        IIIT (International Institute of Information Technology)
           Opposite CMC, Gachibowli
           Hyderabad - 500019
           Ph: 91-40-3001967, 91-40-3001969
           Fax: 91-40-3001413







reply via email to

[Prev in Thread] Current Thread [Next in Thread]