Skip to content

Commit 2d3f6b6

Browse files
author
Sascha Schumann
committed
Add Convert-to-BSD-Makefiles-On-The-Fly system
Note 1: Only needed for BSD/OS. Note 2: Invent better heuristic (timestamp checks for build/*.mk). Note 3: Conversion is currently one-way Note 4: Don't package on BSD/OS. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86284 13f79535-47bb-0310-9956-ffa450edef68
1 parent 70ec4b6 commit 2d3f6b6

5 files changed

Lines changed: 117 additions & 13 deletions

File tree

acinclude.m4

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,8 @@ AC_DEFUN(APACHE_GEN_CONFIG_VARS,[
9090
dnl APACHE_GEN_MAKEFILES
9191
dnl Creates Makefiles
9292
AC_DEFUN(APACHE_GEN_MAKEFILES,[
93-
$SHELL $srcdir/build/fastgen.sh $srcdir $ac_cv_mkdir_p $APACHE_FAST_OUTPUT_FILES
93+
test -z "$BSD_MAKEFILE" && BSD_MAKEFILE=no
94+
$SHELL $srcdir/build/fastgen.sh $srcdir $ac_cv_mkdir_p $BSD_MAKEFILE $APACHE_FAST_OUTPUT_FILES
9495
])
9596

9697
AC_DEFUN(APACHE_LIBTOOL_SILENT,[

build/bsd_makefile

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
#! /bin/sh
2+
# ====================================================================
3+
# The Apache Software License, Version 1.1
4+
#
5+
# Copyright (c) 2000 The Apache Software Foundation. All rights
6+
# reserved.
7+
#
8+
# Redistribution and use in source and binary forms, with or without
9+
# modification, are permitted provided that the following conditions
10+
# are met:
11+
#
12+
# 1. Redistributions of source code must retain the above copyright
13+
# notice, this list of conditions and the following disclaimer.
14+
#
15+
# 2. Redistributions in binary form must reproduce the above copyright
16+
# notice, this list of conditions and the following disclaimer in
17+
# the documentation and/or other materials provided with the
18+
# distribution.
19+
#
20+
# 3. The end-user documentation included with the redistribution,
21+
# if any, must include the following acknowledgment:
22+
# "This product includes software developed by the
23+
# Apache Software Foundation (http://www.apache.org/)."
24+
# Alternately, this acknowledgment may appear in the software itself,
25+
# if and wherever such third-party acknowledgments normally appear.
26+
#
27+
# 4. The names "Apache" and "Apache Software Foundation" must
28+
# not be used to endorse or promote products derived from this
29+
# software without prior written permission. For written
30+
# permission, please contact apache@apache.org.
31+
#
32+
# 5. Products derived from this software may not be called "Apache",
33+
# nor may "Apache" appear in their name, without prior written
34+
# permission of the Apache Software Foundation.
35+
#
36+
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
37+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
38+
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39+
# DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
40+
# ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41+
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
42+
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
43+
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
44+
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
45+
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
46+
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
47+
# SUCH DAMAGE.
48+
# ====================================================================
49+
#
50+
# This software consists of voluntary contributions made by many
51+
# individuals on behalf of the Apache Software Foundation. For more
52+
# information on the Apache Software Foundation, please see
53+
# <http://www.apache.org/>.
54+
#
55+
# The build environment was provided by Sascha Schumann.
56+
#
57+
58+
# cwd must be top_srcdir
59+
test -f build/bsd_makefile || exit 2
60+
61+
test -f bsd_converted && exit 0
62+
63+
tmpfile=`mktemp /tmp/$0.XXXXXX` || exit 1
64+
for i in build/*.mk; do
65+
sed 's/^include \(.*\)/.include "\1"/' $i >$tmpfile \
66+
&& cp $tmpfile $i
67+
done
68+
rm -f $tmpfile
69+
70+
touch bsd_converted
71+
exit 0

build/fastgen.sh

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ shift
6161
mkdir_p=$1
6262
shift
6363

64+
bsd_makefile=$1
65+
shift
66+
6467
top_srcdir=`(cd $srcdir; pwd)`
6568
top_builddir=`pwd`
6669

@@ -70,18 +73,40 @@ else
7073
mkdir_p="$top_srcdir/helpers/mkdir.sh"
7174
fi
7275

73-
for makefile in $@; do
74-
echo "creating $makefile"
75-
dir=`echo $makefile|sed 's%/*[^/][^/]*$%%'`
76-
test -d "$dir/" || $mkdir_p "$dir/"
76+
if test "$bsd_makefile" = "yes"; then
77+
(cd $top_srcdir; ./build/bsd_makefile)
78+
79+
for makefile in $@; do
80+
echo "creating $makefile"
81+
dir=`echo $makefile|sed 's%/*[^/][^/]*$%%'`
82+
$mkdir_p "$dir/"
7783

78-
cat - $top_srcdir/$makefile.in <<EOF >$makefile
84+
cat - $top_srcdir/$makefile.in <<EOF |sed 's/^include \(.*\)/.include "\1"/' >$makefile
7985
top_srcdir = $top_srcdir
8086
top_builddir = $top_builddir
8187
srcdir = $top_srcdir/$dir
8288
builddir = $top_builddir/$dir
8389
VPATH = $top_srcdir/$dir
8490
EOF
91+
92+
test -z "$dir" && dir="."
93+
touch $dir/.deps
94+
done
95+
else
96+
for makefile in $@; do
97+
echo "creating $makefile"
98+
dir=`echo $makefile|sed 's%/*[^/][^/]*$%%'`
99+
$mkdir_p "$dir/"
85100

86-
touch "$top_builddir/$dir/.deps"
87-
done
101+
cat - $top_srcdir/$makefile.in <<EOF >$makefile
102+
top_srcdir = $top_srcdir
103+
top_builddir = $top_builddir
104+
srcdir = $top_srcdir/$dir
105+
builddir = $top_builddir/$dir
106+
VPATH = $top_srcdir/$dir
107+
EOF
108+
109+
test -z "$dir" && dir="."
110+
touch $dir/.deps
111+
done
112+
fi

buildconf

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,9 @@ export BUILD_BASE
55

66
rm -f generated_lists
77

8+
case "`./config.guess`" in
9+
*bsdi*)
10+
./build/bsd_makefile;;
11+
esac
12+
813
${MAKE:-make} -f build/build.mk ${1+"$@"}

configure.in

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -209,11 +209,6 @@ RUN_SUBDIR_CONFIG_NOW(lib/pcre)
209209

210210
APACHE_GEN_CONFIG_VARS
211211

212-
dnl There needs to be a .deps file in the top build directory.
213-
dnl All others are created dynamically by rules.mk.
214-
215-
touch .deps
216-
217212
dnl ## Build modules.c
218213
rm -f $srcdir/modules.c
219214
echo $MODLIST | $AWK -f $srcdir/helpers/build-modules-c.awk > $srcdir/modules.c
@@ -247,6 +242,13 @@ AC_TYPE_RLIM_T
247242
perlbin=`$srcdir/helpers/PrintPath perl`
248243
AC_SUBST(perlbin)
249244

245+
dnl If we are running on BSD/OS, we need to use the BSD .include syntax.
246+
247+
case "$host_alias" in
248+
*bsdi*)
249+
BSD_MAKEFILE=yes;;
250+
esac
251+
250252
AC_OUTPUT($APACHE_OUTPUT_FILES support/apxs,,[
251253
APACHE_GEN_MAKEFILES
252254
])

0 commit comments

Comments
 (0)