1 # Licensed to the Apache Software Foundation (ASF) under one or more
2 # contributor license agreements. See the NOTICE file distributed with
3 # this work for additional information regarding copyright ownership.
4 # The ASF licenses this file to You under the Apache License, Version 2.0
5 # (the "License"); you may not use this file except in compliance with
6 # the License. You may obtain a copy of the License at
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
17 # The build environment was originally provided by Sascha Schumann.
19 @ap_make_include@ @ap_make_delimiter@
$(top_builddir
)/build
/config_vars.mk@ap_make_delimiter@
21 # Combine all of the flags together in the proper order so that
22 # the user-defined flags can always override the configure ones, if needed.
23 # Note that includes are listed after the flags because -I options have
24 # left-to-right precedence and CPPFLAGS may include user-defined overrides.
26 ALL_CFLAGS
= $(EXTRA_CFLAGS
) $(NOTEST_CFLAGS
) $(CFLAGS
)
27 ALL_CPPFLAGS
= $(DEFS
) $(EXTRA_CPPFLAGS
) $(NOTEST_CPPFLAGS
) $(CPPFLAGS
)
28 ALL_CXXFLAGS
= $(EXTRA_CXXFLAGS
) $(NOTEST_CXXFLAGS
) $(CXXFLAGS
)
29 ALL_LDFLAGS
= $(EXTRA_LDFLAGS
) $(NOTEST_LDFLAGS
) $(LDFLAGS
)
30 ALL_LIBS
= $(EXTRA_LIBS
) $(NOTEST_LIBS
) $(LIBS
)
31 ALL_INCLUDES
= $(INCLUDES
) $(EXTRA_INCLUDES
)
35 BASE_CC
= $(CC
) $(ALL_CFLAGS
) $(ALL_CPPFLAGS
) $(ALL_INCLUDES
)
36 BASE_CXX
= $(CXX
) $(ALL_CXXFLAGS
) $(ALL_CPPFLAGS
) $(ALL_INCLUDES
)
38 COMPILE
= $(BASE_CC
) @PICFLAGS@
39 CXX_COMPILE
= $(BASE_CXX
) @PICFLAGS@
41 SH_COMPILE
= $(LIBTOOL
) --mode
=compile
$(BASE_CC
) @SHLTCFLAGS@
-c
$< && touch
$@
42 SH_CXX_COMPILE
= $(LIBTOOL
) --mode
=compile
$(BASE_CXX
) @SHLTCFLAGS@
-c
$< && touch
$@
44 LT_COMPILE
= $(LIBTOOL
) --mode
=compile
$(COMPILE
) @LTCFLAGS@
-c
$< && touch
$@
45 LT_CXX_COMPILE
= $(LIBTOOL
) --mode
=compile
$(CXX_COMPILE
) @LTCFLAGS@
-c
$< && touch
$@
47 # Link-related commands
49 LINK
= $(LIBTOOL
) --mode
=link
$(CC
) $(ALL_CFLAGS
) @PILDFLAGS@
$(LT_LDFLAGS
) $(ALL_LDFLAGS
) -o
$@
50 SH_LINK
= $(SH_LIBTOOL
) --mode
=link
$(CC
) $(ALL_CFLAGS
) $(LT_LDFLAGS
) $(ALL_LDFLAGS
) $(SH_LDFLAGS
) $(CORE_IMPLIB
) $(SH_LIBS
) -o
$@
51 MOD_LINK
= $(LIBTOOL
) --mode
=link
$(CC
) $(ALL_CFLAGS
) -static
$(LT_LDFLAGS
) $(ALL_LDFLAGS
) -o
$@
53 # Cross compile commands
57 INSTALL_DATA
= $(INSTALL
) -m
644
58 INSTALL_PROGRAM
= $(INSTALL
) -m
755 $(INSTALL_PROG_FLAGS
)
61 # Standard build rules
64 depend
: depend-recursive
65 clean: clean-recursive
66 distclean: distclean-recursive
67 extraclean
: extraclean-recursive
68 install: install-recursive
69 shared-build
: shared-build-recursive
71 all-recursive install-recursive depend-recursive
:
72 @otarget
=`echo $@|sed s/-recursive//`; \
73 list
=' $(BUILD_SUBDIRS) $(SUBDIRS)'; \
75 if
test -d
"$$i"; then \
77 echo
"Making $$target in $$i"; \
78 if
test "$$i" = "."; then \
80 target
="local-$$target"; \
82 (cd
$$i && $(MAKE
) $$target) || exit
1; \
85 if
test "$$otarget" = "all" && test -z
'$(TARGETS)'; then \
88 if
test "$$made_local" != "yes"; then \
89 $(MAKE
) "local-$$otarget" || exit
1; \
92 clean-recursive distclean-recursive extraclean-recursive
:
93 @otarget
=`echo $@|sed s/-recursive//`; \
94 list
='$(CLEAN_SUBDIRS) $(SUBDIRS)'; \
96 if
test -d
"$$i"; then \
98 echo
"Making $$target in $$i"; \
99 if
test "$$i" = "."; then \
101 target
="local-$$target"; \
103 (cd
$$i && $(MAKE
) $$target); \
106 if
test "$$otarget" = "all" && test -z
'$(TARGETS)'; then \
109 if
test "$$made_local" != "yes"; then \
110 $(MAKE
) "local-$$otarget"; \
113 shared-build-recursive
:
114 @if
test `pwd` = "$(top_builddir)"; then \
115 $(PRE_SHARED_CMDS
) ; \
117 list
='$(SUBDIRS)'; for i in
$$list; do \
118 target
="shared-build"; \
119 if
test "$$i" = "."; then \
121 target
="local-shared-build"; \
123 if
test "$$i" != "srclib"; then \
124 (cd
$$i && $(MAKE
) $$target) || exit
1; \
127 if
test -f
'modules.mk'; then \
128 if
test -n
'$(SHARED_TARGETS)'; then \
129 echo
"Building shared: $(SHARED_TARGETS)"; \
130 if
test "$$made_local" != "yes"; then \
131 $(MAKE
) "local-shared-build" || exit
1; \
135 if
test `pwd` = "$(top_builddir)"; then \
136 $(POST_SHARED_CMDS
) ; \
139 local-all
: $(TARGETS
)
141 local-shared-build
: $(SHARED_TARGETS
)
143 local-depend
: x-local-depend
144 @if
test -n
"`ls $(srcdir)/*.c 2> /dev/null`"; then \
146 list
='$(srcdir)/*.c'; \
147 for i in
$$list; do \
148 $(MKDEP
) $(ALL_CPPFLAGS
) $(ALL_INCLUDES
) $$i | sed
's/\.o:/.lo:/' >> .deps
; \
152 local-clean
: x-local-clean
153 rm -f
*.o
*.lo
*.slo
*.obj
*.a
*.la
$(CLEAN_TARGETS
) $(TARGETS
)
156 local-distclean
: local-clean x-local-distclean
157 rm -f .deps Makefile
$(DISTCLEAN_TARGETS
)
159 local-extraclean
: local-distclean x-local-extraclean
160 @if
test -n
"$(EXTRACLEAN_TARGETS)"; then \
161 echo
"rm -f $(EXTRACLEAN_TARGETS)"; \
162 rm -f
$(EXTRACLEAN_TARGETS
) ; \
165 program-install
: $(TARGETS
) $(SHARED_TARGETS
)
166 @if
test -n
'$(PROGRAMS)'; then \
167 test -d
$(DESTDIR
)$(sbindir
) ||
$(MKINSTALLDIRS
) $(DESTDIR
)$(sbindir
); \
168 list
='$(PROGRAMS)'; for i in
$$list; do \
169 $(INSTALL_PROGRAM
) $$i $(DESTDIR
)$(sbindir
); \
173 local-install
: program-install
$(INSTALL_TARGETS
)
175 # to be filled in by the actual Makefile if extra commands are needed
176 x-local-depend x-local-clean x-local-distclean x-local-extraclean
:
179 # Implicit rules for creating outputs from input files
185 .SUFFIXES
: .S .c .
$(CXX_SUFFIX
) .lo .o .s .y .l .slo .def .la
209 $(YACC
) $(YFLAGS
) $< && mv y.tab.c
$*.c
210 if
test -f y.tab.h
; then \
211 if cmp
-s y.tab.h
$*.h
; then
rm -f y.tab.h
; else mv y.tab.h
$*.h
; fi
; \
215 $(LEX
) $(LFLAGS
) $< && mv
$(LEX_OUTPUT_ROOT
).c
$@
217 # Makes an import library from a def file
219 $(LIBTOOL
) --mode
=compile
$(MK_IMPLIB
) -o
$@
$<
224 @ap_make_include@ @ap_make_delimiter@
$(builddir
)/.deps@ap_make_delimiter@
226 .PHONY
: all all-recursive install-recursive local-all
$(PHONY_TARGETS
) \
227 shared-build shared-build-recursive local-shared-build \
228 depend depend-recursive local-depend x-local-depend \
229 clean clean-recursive local-clean x-local-clean \
230 distclean distclean-recursive local-distclean x-local-distclean \
231 extraclean extraclean-recursive local-extraclean x-local-extraclean \
232 install local-install docs
$(INSTALL_TARGETS
)