automake
[Top][All Lists]
Advanced

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

Re: make dist and BUILT_SOURCES


From: Robert Collins
Subject: Re: make dist and BUILT_SOURCES
Date: Thu, 5 Apr 2001 08:23:36 +1000

----- Original Message -----
From: "Akim Demaille" <address@hidden>
To: "Robert Collins" <address@hidden>
Subject: Re: make dist and BUILT_SOURCES


> >>>>> "Robert" == Robert Collins <address@hidden>
writes:
>
> Robert> Yet another question from the newbie.  I have a number of
> Robert> built source (.h and .c) files that are built from other
> Robert> sources/configure settings.
>
> Such as?

I've included an excerpt. The entire Makefile.am is rather long as it
has a lot of ##'d old stuff as I convert it over bit by bit.

===
EXTRA_squid_SOURCES = delay_pools.c dns.c dnsserver.c dns_internal.c
htcp.c \
leakfinder.c snmp_core.c snmp_agent.c unlinkd.c
squid_SOURCES = \
access_log.c acl.c asn.c auth_modules.c authenticate.c cache_cf.c
cf_parser.h \
...
string_arrays.c tools.c $(UNLINKDSOURCE) url.c urn.c useragent.c wais.c
\
wccp.c whois.c
squid_LDADD = @XTRA_OBJS@ @REPL_OBJS@ @STORE_OBJS@ @AUTH_OBJS@ \
        @CRYPTLIB@ @REGEXLIB@ @SQUID_PTHREAD_LIB@ \
        @SNMPLIB@ @LIB_MALLOC@ ../lib/libmiscutil.a @XTRA_LIBS@


## all of these appear in squid_SOURCES
BUILT_SOURCES = cf_gen_defines.h cf_parser.h globals.c string_arrays.c \
         repl_modules.c auth_modules.c store_modules.c

cf_gen_defines.h: $(srcdir)/cf_gen_defines $(srcdir)/cf.data.pre
        awk -f $(srcdir)/cf_gen_defines <$(srcdir)/cf.data.pre
>$(srcdir)/cf_gen_defines.h

auth_modules.c: auth_modules.sh
        @$(SHELL) $(srcdir)/auth_modules.sh $(AUTH_MODULES)
>auth_modules.c

repl_modules.c: repl_modules.sh
        $(SHELL) $(srcdir)/repl_modules.sh $(REPL_POLICIES) >
repl_modules.c

store_modules.c: store_modules.sh
        $(SHELL) $(srcdir)/store_modules.sh $(STORE_MODULES)
>store_modules.c
...
===

make dist fails to find any of the BUILT_SOURCES unless they are built
into $(srcdir) like cf_gen_defines.h is.

>
> Robert> "make dist" is failing to find these files. (Some of them
> Robert> shouldn't be included in the distribution, and some can be).
>
> Robert> is there some way to exclude specific built sources from the
> Robert> disrtribution?
>
> Automake will always ship parsers and scanners, but I don't believe it
> ships all the BUILT_SOURCES.

included here is the output of make dist
====
address@hidden /usr/src/ambuild
$ make dist
chmod -R a+w ./squid-2.5-DEVEL >/dev/null 2>&1; rm -rf ./squid-2.5-DEVEL
mkdir ./squid-2.5-DEVEL
/bin/sh ../squid-amake/mkinstalldirs ./squid-2.5-DEVEL/./include
./squid-2.5-DEVEL/contrib
 ./squid-2.5-DEVEL/include ./squid-2.5-DEVEL/scripts
./squid-2.5-DEVEL/src/auth ./squid-2.
5-DEVEL/src/auth/basic ./squid-2.5-DEVEL/src/auth/basic/helpers
./squid-2.5-DEVEL/src/auth
/basic/helpers/LDAP ./squid-2.5-DEVEL/src/auth/basic/helpers/MSNT
./squid-2.5-DEVEL/src/au
th/basic/helpers/NCSA ./squid-2.5-DEVEL/src/auth/basic/helpers/PAM
./squid-2.5-DEVEL/src/a
uth/basic/helpers/SMB ./squid-2.5-DEVEL/src/auth/basic/helpers/YP
./squid-2.5-DEVEL/src/au
th/basic/helpers/getpwnam
./squid-2.5-DEVEL/src/auth/basic/helpers/multi-domain-NTLM ./squ
id-2.5-DEVEL/src/auth/digest ./squid-2.5-DEVEL/src/auth/digest/helpers
./squid-2.5-DEVEL/s
rc/auth/digest/helpers/password ./squid-2.5-DEVEL/src/auth/ntlm
./squid-2.5-DEVEL/src/auth
/ntlm/helpers ./squid-2.5-DEVEL/src/auth/ntlm/helpers/NTLMSSP
./squid-2.5-DEVEL/src/auth/n
tlm/helpers/fakeauth ./squid-2.5-DEVEL/src/auth/ntlm/helpers/no_check
mkdir ./squid-2.5-DEVEL/./include
mkdir ./squid-2.5-DEVEL/contrib
mkdir ./squid-2.5-DEVEL/scripts
mkdir ./squid-2.5-DEVEL/src
mkdir ./squid-2.5-DEVEL/src/auth
mkdir ./squid-2.5-DEVEL/src/auth/basic
mkdir ./squid-2.5-DEVEL/src/auth/basic/helpers
mkdir ./squid-2.5-DEVEL/src/auth/basic/helpers/LDAP
mkdir ./squid-2.5-DEVEL/src/auth/basic/helpers/MSNT
mkdir ./squid-2.5-DEVEL/src/auth/basic/helpers/NCSA
mkdir ./squid-2.5-DEVEL/src/auth/basic/helpers/PAM
mkdir ./squid-2.5-DEVEL/src/auth/basic/helpers/SMB
mkdir ./squid-2.5-DEVEL/src/auth/basic/helpers/YP
mkdir ./squid-2.5-DEVEL/src/auth/basic/helpers/getpwnam
mkdir ./squid-2.5-DEVEL/src/auth/basic/helpers/multi-domain-NTLM
mkdir ./squid-2.5-DEVEL/src/auth/digest
mkdir ./squid-2.5-DEVEL/src/auth/digest/helpers
mkdir ./squid-2.5-DEVEL/src/auth/digest/helpers/password
mkdir ./squid-2.5-DEVEL/src/auth/ntlm
mkdir ./squid-2.5-DEVEL/src/auth/ntlm/helpers
mkdir ./squid-2.5-DEVEL/src/auth/ntlm/helpers/NTLMSSP
mkdir ./squid-2.5-DEVEL/src/auth/ntlm/helpers/fakeauth
mkdir ./squid-2.5-DEVEL/src/auth/ntlm/helpers/no_check
for subdir in lib snmplib scripts src icons errors; do \
  if test "$subdir" = .; then :; else \
    test -d ./squid-2.5-DEVEL/$subdir \
    || mkdir ./squid-2.5-DEVEL/$subdir \
    || exit 1; \
    (cd $subdir && \
      make  \
        top_distdir="." \
        distdir=.././squid-2.5-DEVEL/$subdir \
        distdir) \
      || exit 1; \
  fi; \
done
make[1]: Entering directory `/usr/src/ambuild/lib'
make[1]: Leaving directory `/usr/src/ambuild/lib'
make[1]: Entering directory `/usr/src/ambuild/snmplib'
make[1]: Leaving directory `/usr/src/ambuild/snmplib'
make[1]: Entering directory `/usr/src/ambuild/scripts'
make[1]: Leaving directory `/usr/src/ambuild/scripts'
make[1]: Entering directory `/usr/src/ambuild/src'
cp: ../../squid-amake/src/auth_modules.c: No such file or directory
make[1]: *** [distdir] Error 1
make[1]: Leaving directory `/usr/src/ambuild/src'
make: *** [distdir] Error 1
===
>
> Robert> Some examples: store_modules.c is a stub that initialises each
> Robert> of the fs modules. It's created via shell script based on the
> Robert> configure parameters. It should never exist in the src dir,
> Robert> only in the build dir.  cf_gen_defines.h is generated from the
> Robert> configuration file sources, and is used by the parser. It can
> Robert> exist in the srcdir or build dir (through historically it was
> Robert> built in the build dir).
>
> Robert> So for cf_gen_defines.h and similar fiels I can make them be
> Robert> built into the src dir, and then make dist finds them. That
> Robert> still leaves me with files that should only be built in the
> Robert> build dir and not distributed.
>
> Rob, seeing Makefile.am might help us.
>

If you want the full file (lots of cruft) I'm happy to mail it.

Rob




reply via email to

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