os/$(OS_DIR) is now equivalent to the old $(OS_DIR)
Necessary include paths are added only in VPATH mode.
Dependencies are stored in the build directory now.
They contain paths which depend on the current build,
and therefore they are not general.
Fixed two dependencies in main/Makefile.in.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85113
13f79535-47bb-0310-9956-
ffa450edef68
$(BUILTIN_LIBS) \
$(MPM_LIB) \
main/libmain.la \
- $(OS_DIR)/libos.la \
+ os/$(OS_DIR)/libos.la \
ap/libap.la \
lib/apr/$(LIBPRE)apr.a \
$(REGEX_LIB)
APACHE_SH_COMPILE = $(SHLIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(EXTRA_INCLUDES) $(CPPFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) -c $< && touch $@
SHLINK = $(SHLIBTOOL) --mode=link $(CCLD) $(CFLAGS) $(EXTRA_CFLAGS) $(LDFLAGS) -o $@
-DEFS = -DHAVE_CONFIG_H -I. -I$(srcdir) -I$(top_builddir)
+DEFS = -DHAVE_CONFIG_H -I. -I$(srcdir)
.SUFFIXES:
.SUFFIXES: .S .c .lo .o .s .y .l .slo
distclean-p depend-p clean-p:
depend: depend-recursive
- test "`echo *.c`" = '*.c' || perl $(top_srcdir)/build/mkdep.perl $(CPP) $(INCLUDES) $(EXTRA_INCLUDES) *.c > .deps
+ gcc -MM $(INCLUDES) $(EXTRA_INCLUDES) $(DEFS) $(CPPFLAGS) $(srcdir)/*.c > $(builddir)/.deps
+# test "`echo *.c`" = '*.c' || perl $(top_srcdir)/build/mkdep.perl $(CPP) $(INCLUDES) $(EXTRA_INCLUDES) *.c > .deps
clean: clean-recursive clean-x
rm -f config.cache config.log config.status config_vars.mk libtool \
stamp-h Makefile shlibtool .deps $(DISTCLEANFILES)
-include $(srcdir)/.deps
+include $(builddir)/.deps
.PHONY: all-recursive clean-recursive install-recursive \
$(install_targets) install all clean depend depend-recursive shared \
test "$exec_prefix" = "NONE" && exec_prefix='${prefix}'
test "$prefix" = "NONE" && prefix='/usr/local'
-dnl Needed for APACHE_MODULE() to work
-cwd=`pwd`
+dnl Absolute source/build directory
+abs_srcdir=`(cd $srcdir && pwd)`
+abs_builddir=`pwd`
+
+dnl If the source dir is not equal to the build dir,
+dnl then we are running in VPATH mode.
+
+if test "$abs_builddir" != "$abs_srcdir"; then
+ USE_VPATH=1
+fi
dnl ## Run configure for packages Apache uses
AC_CONFIG_SUBDIRS(lib/apr)
APACHE_ENABLE_SHARED
INCLUDES="-I\$(top_srcdir)/include -I\$(top_srcdir)/lib/apr/include"
-APACHE_SUBST(INCLUDES)
+if test -n "$USE_VPATH"; then
+ INCLUDES="$INCLUDES -I\$(top_builddir)/include -I\$(top_builddir)/lib/apr/include"
+fi
dnl reading config stubs
esyscmd(./helpers/config-stubs .)
-INCLUDES="$INCLUDES -I\$(top_srcdir)/\$(OS_DIR)"
+INCLUDES="$INCLUDES -I\$(top_srcdir)/os/\$(OS_DIR)"
EXTRA_LIBS="$EXTRA_LIBS $LIBS"
EXTRA_LDFLAGS="$LDFLAGS"
LIBS=""
APACHE_SUBST(EXTRA_CFLAGS)
APACHE_SUBST(EXTRA_LDFLAGS)
APACHE_SUBST(EXTRA_LIBS)
+APACHE_SUBST(INCLUDES)
APACHE_SUBST(REGEX_DIR)
APACHE_SUBST(REGEX_LIB)
APACHE_SUBST(MPM_LIB)
modules/Makefile os/Makefile support/Makefile)
APACHE_FAST_GENERATE
-
+
+dnl There needs to be a .deps file in the top build directory.
+dnl All others are created dynamically by rules.mk.
+
+touch .deps
+
dnl ## Build modules.c
rm -f $srcdir/modules.c
echo $MODLIST | $AWK -f $srcdir/helpers/build-modules-c.awk > $srcdir/modules.c
-SUBDIRS = $(top_builddir)/$(OS_DIR)
+SUBDIRS = $(OS_DIR)
include $(top_srcdir)/build/rules.mk
case "$PLATFORM" in
*beos*)
OS="beos"
- OS_DIR=os/$OS
+ OS_DIR=$OS
;;
*pc-os2_emx*)
LIBPRE=""
OS="os2"
- OS_DIR=os/$OS
+ OS_DIR=$OS
;;
bs2000*)
OS="unix"
- OS_DIR=os/bs2000 # only the OS_DIR is platform specific.
+ OS_DIR=bs2000 # only the OS_DIR is platform specific.
;;
*)
OS="unix"
- OS_DIR=os/$OS;;
+ OS_DIR=$OS;;
esac
-
AC_MSG_RESULT($OS)
-APACHE_FAST_OUTPUT($OS_DIR/Makefile)
+APACHE_FAST_OUTPUT(os/$OS_DIR/Makefile)
test_char.h: gen_test_char
./gen_test_char > test_char.h
-util_uri.c: uri_delims.h
-util.c: test_char.h
+$(srcdir)/util_uri.c: uri_delims.h
+$(srcdir)/util.c: test_char.h