File: depcomp10.test

package info (click to toggle)
automake1.11 1%3A1.11.6-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 9,940 kB
  • ctags: 412
  • sloc: sh: 35,057; perl: 10,676; makefile: 938; ansic: 496
file content (90 lines) | stat: -rwxr-xr-x 2,301 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#! /bin/sh
# Copyright (C) 2011 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

# hp depmode should work with GNU make in VPATH mode (bug similar to
# depcomp9.test).
# For automake bug#8473.

# Here's the bug: hp depmode will prefix VPATH to the object file name,
# thus the second gmake will invoke depcomp with object='../../src/foo.o',
# causing errors such as (broken on multiple lines for clarity):
#   cpp: "", line 0: error 4066: Cannot create
#        "../../gllib/.deps/nonblocking.TPo" file for
#        "-M../../gllib/.deps/nonblocking.TPo" option.
#        (No such file or directory[errno=2])

required=GNUmake
. ./defs || Exit 1

mkdir src src/sub build

cat >> configure.in << 'END'
AC_PROG_CC
AM_PROG_CC_C_O
AC_CONFIG_FILES([src/Makefile])
AC_OUTPUT
END

cat > Makefile.am << 'END'
SUBDIRS = src
END

cat > src/Makefile.am << 'END'
AUTOMAKE_OPTIONS = subdir-objects
bin_PROGRAMS = foo
foo_SOURCES = foo.c foo.h sub/subfoo.c
END

cat > src/foo.h <<EOF
extern int subfoo (void);
EOF

cat >src/foo.c <<EOF
#include "foo.h"
int main (void)
{
  return subfoo ();
}
EOF

cat >src/sub/subfoo.c <<EOF
#include "foo.h"
int subfoo (void)
{
  return 0;
}
EOF

$ACLOCAL
$AUTOCONF
$AUTOMAKE -a

cd build
../configure am_cv_CC_dependencies_compiler_type=hp
# Do not error out with the first make, as the forced 'hp' depmode might
# not actually work, but we have overridden the _AM_DEPENDENCIES tests.
$MAKE || Exit 77

# We must clean and rebuild, as the actual error only happens the second
# time the objects are built because 'depcomp' has silently messed up the
# .Po files the first time.
$MAKE clean

$MAKE >out 2>&1 || { cat out; Exit 1; }
cat out
grep 'src/[._]deps' out && Exit 1

: