Commit a8b7059f authored by Sascha Schumann's avatar Sascha Schumann
Browse files

Add VPATH support to Apache:

  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
parent 51d4954b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ PROGRAM_DEPENDENCIES = \
  $(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)
+4 −3
Original line number Diff line number Diff line
@@ -71,7 +71,7 @@ APACHE_COMPILE = $(COMPILE) -c $< && touch $@
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
@@ -131,7 +131,8 @@ install-p: $(targets) $(install_targets)
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

@@ -143,7 +144,7 @@ distclean: distclean-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 \
+21 −5
Original line number Diff line number Diff line
@@ -16,8 +16,16 @@ APACHE_SUBST(APACHE_VERSION)
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)
@@ -133,12 +141,14 @@ APACHE_ENABLE_MODULES
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=""
@@ -147,6 +157,7 @@ APACHE_SUBST(progname)
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)
@@ -173,6 +184,11 @@ APACHE_FAST_OUTPUT(Makefile ap/Makefile lib/Makefile main/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
+1 −1
Original line number Diff line number Diff line

SUBDIRS = $(top_builddir)/$(OS_DIR)
SUBDIRS = $(OS_DIR)

include $(top_srcdir)/build/rules.mk
+5 −6
Original line number Diff line number Diff line
@@ -7,22 +7,21 @@ LIBPRE=lib
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)
Loading