specflg-dummy.sh 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. #! /bin/sh
  2. # Copyright (C) 2011-2017 Free Software Foundation, Inc.
  3. #
  4. # This program is free software; you can redistribute it and/or modify
  5. # it under the terms of the GNU General Public License as published by
  6. # the Free Software Foundation; either version 2, or (at your option)
  7. # any later version.
  8. #
  9. # This program is distributed in the hope that it will be useful,
  10. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. # GNU General Public License for more details.
  13. #
  14. # You should have received a copy of the GNU General Public License
  15. # along with this program. If not, see <http://www.gnu.org/licenses/>.
  16. # Check that even "dummy" per-target flags triggers the use of renamed
  17. # objects. I.e., a definition like 'foo_CFLAGS = $(AM_CFLAGS)' should
  18. # always cause Automake to trigger the semantics for per-target CFLAGS,
  19. # even if AM_CFLAGS is undefined. Similarly for other *FLAGS variables
  20. # (CXXFLAGS, YFLAGS, LDFLAGS, ...)
  21. . test-init.sh
  22. # Disable shell globbing if possible.
  23. (set +f) >/dev/null 2>&1 && set +f
  24. oIFS=$IFS
  25. nl='
  26. '
  27. matches=
  28. add_match ()
  29. {
  30. matches="$matches$nl$1"
  31. }
  32. do_check ()
  33. {
  34. IFS=$nl
  35. for string in $matches; do
  36. IFS=$oIFS
  37. $FGREP "$string" Makefile.in
  38. done
  39. IFS=$oIFS
  40. }
  41. # Fake libtool presence, so that we won't have to require it.
  42. cat > acinclude.m4 <<END
  43. AC_DEFUN([AC_PROG_LIBTOOL], [AC_SUBST([LIBTOOL], [dummy])])
  44. END
  45. : > ltmain.sh
  46. cat >> configure.ac << 'END'
  47. AC_PROG_CC
  48. AC_PROG_CXX
  49. AC_PROG_YACC
  50. AC_PROG_LEX
  51. AC_PROG_F77
  52. AC_PROG_FC
  53. AM_PROG_GCJ
  54. AM_PROG_AR
  55. AC_PROG_RANLIB
  56. AC_PROG_LIBTOOL
  57. AM_PROG_UPC
  58. AC_PROG_OBJC
  59. END
  60. cat > Makefile.am <<'END'
  61. bin_PROGRAMS =
  62. lib_LIBRARIES =
  63. lib_LTLIBRARIES =
  64. END
  65. $ACLOCAL
  66. cat >> Makefile.am <<'END'
  67. bin_PROGRAMS += prog1
  68. prog1_SOURCES = source1.c
  69. prog1_CFLAGS = $(AM_CFLAGS)
  70. END
  71. add_match 'prog1-source1.$(OBJEXT)'
  72. cat >> Makefile.am <<'END'
  73. bin_PROGRAMS += prog2
  74. prog2_SOURCES = source2.c
  75. prog2_CPPFLAGS = $(AM_CPPFLAGS)
  76. END
  77. add_match 'prog2-source2.$(OBJEXT)'
  78. cat >> Makefile.am <<'END'
  79. bin_PROGRAMS += prog3
  80. prog3_SOURCES = source3.cxx
  81. prog3_CXXFLAGS = $(AM_CXXFLAGS)
  82. END
  83. add_match 'prog3-source3.$(OBJEXT)'
  84. cat >> Makefile.am <<'END'
  85. bin_PROGRAMS += prog4
  86. prog4_SOURCES = source4.c++
  87. prog4_CPPFLAGS = $(AM_CPPFLAGS)
  88. END
  89. add_match 'prog4-source4.$(OBJEXT)'
  90. cat >> Makefile.am <<'END'
  91. bin_PROGRAMS += prog5
  92. prog5_SOURCES = source5.f
  93. prog5_FFLAGS = $(AM_FFLAGS)
  94. END
  95. add_match 'prog5-source5.$(OBJEXT)'
  96. cat >> Makefile.am <<'END'
  97. bin_PROGRAMS += prog6
  98. prog6_SOURCES = source6.f90
  99. prog6_FCFLAGS = $(AM_FCFLAGS)
  100. END
  101. add_match 'prog6-source6.$(OBJEXT)'
  102. cat >> Makefile.am <<'END'
  103. bin_PROGRAMS += prog7
  104. prog7_SOURCES = source7.r
  105. prog7_RFLAGS = $(AM_RFLAGS)
  106. END
  107. add_match 'prog7-source7.$(OBJEXT)'
  108. cat >> Makefile.am <<'END'
  109. bin_PROGRAMS += prog8
  110. prog8_SOURCES = source8.java
  111. prog8_GCJFLAGS = $(AM_GCJFLAGS)
  112. END
  113. add_match 'prog8-source8.$(OBJEXT)'
  114. cat >> Makefile.am <<'END'
  115. bin_PROGRAMS += prog9
  116. prog9_SOURCES = source9.upc
  117. prog9_UPCFLAGS = $(AM_UPCFLAGS)
  118. END
  119. add_match 'prog9-source9.$(OBJEXT)'
  120. cat >> Makefile.am <<'END'
  121. bin_PROGRAMS += prog10
  122. prog10_SOURCES = source10.m
  123. prog10_OBJCFLAGS = $(AM_OBJCFLAGS)
  124. END
  125. add_match 'prog10-source10.$(OBJEXT)'
  126. cat >> Makefile.am <<'END'
  127. bin_PROGRAMS += linkprog
  128. linkprog_SOURCES = linkprog.c
  129. linkprog_LDFLAGS = $(AM_LDFLAGS)
  130. END
  131. add_match 'linkprog_LINK ='
  132. cat >> Makefile.am <<'END'
  133. lib_LIBRARIES += libstatic.a
  134. libstatic_a_SOURCES = static123.c
  135. libstatic_a_CFLAGS = $(AM_CFLAGS)
  136. END
  137. add_match 'libstatic_a-static123.$(OBJEXT)'
  138. cat >> Makefile.am <<'END'
  139. lib_LTLIBRARIES += libshared1.la
  140. libshared1_la_SOURCES = shared1.c
  141. libshared1_la_LIBTOOLFLAGS = $(AM_LIBTOOLFLAGS)
  142. END
  143. add_match 'libshared1_la-shared1.lo'
  144. cat >> Makefile.am <<'END'
  145. lib_LTLIBRARIES += libshared2.la
  146. libshared2_la_SOURCES = shared2.cc
  147. libshared2_la_CXXFLAGS = $(AM_CXXFLAGS)
  148. END
  149. add_match 'libshared2_la-shared2.lo'
  150. cat >> Makefile.am <<'END'
  151. bin_PROGRAMS += parse1
  152. parse1_SOURCES = parse.y
  153. parse1_YFLAGS = $(AM_YFLAGS)
  154. END
  155. add_match 'parse1-parse.c'
  156. cat >> Makefile.am <<'END'
  157. bin_PROGRAMS += parse2
  158. parse2_SOURCES = parse.ypp
  159. parse2_YFLAGS = $(AM_YFLAGS)
  160. END
  161. add_match 'parse2-parse.cpp'
  162. cat >> Makefile.am <<'END'
  163. bin_PROGRAMS += lexer1
  164. lexer1_SOURCES = lex.l
  165. lexer1_LFLAGS = $(AM_YFLAGS)
  166. END
  167. add_match 'lexer1-lex.c'
  168. cat >> Makefile.am <<'END'
  169. bin_PROGRAMS += lexer2
  170. lexer2_SOURCES = lexer.ll
  171. lexer2_LFLAGS = $(AM_YFLAGS)
  172. END
  173. add_match 'lexer2-lexer.cc'
  174. # For debugging.
  175. cat Makefile.am
  176. $AUTOMAKE -a
  177. do_check
  178. sed '
  179. s|^\(.*\)_SOURCES *= *|sub_\1_SOURCES = srcsub/|
  180. s|^\(.*\)PROGRAMS *+= *|\1PROGRAMS += sub/|
  181. s|^\(.*\)LIBRARIES *+= *|\1LIBRARIES += sub/|
  182. s|^\(.*\)FLAGS *=|sub_\1FLAGS =|
  183. ' Makefile.am > t
  184. cat - t > Makefile.am <<'END'
  185. AUTOMAKE_OPTIONS = subdir-objects
  186. END
  187. rm -f t
  188. # For debugging.
  189. cat Makefile.am
  190. $AUTOMAKE
  191. do_check
  192. :