You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
3.1 KiB
111 lines
3.1 KiB
15 years ago
|
#!/usr/bin/env bash
|
||
|
|
||
|
# Create Makefile.in and Makefile in a directory (containing a Makefile.am !)
|
||
|
# Saves time compared to re-running configure completely
|
||
|
|
||
|
if [ $# -ne 1 ]; then
|
||
|
echo "$0 : creates a Makefile from a Makefile.am"
|
||
|
echo
|
||
|
echo "Usage : $0 relativepath/Makefile"
|
||
|
echo "So the argument is the file you want to create."
|
||
|
echo
|
||
|
else
|
||
|
if test -f config.status && test -f configure; then
|
||
|
:
|
||
|
else
|
||
|
if test ! -f Makefile && test -n "$OBJ_SUBDIR"; then
|
||
|
cd $OBJ_SUBDIR
|
||
|
else
|
||
|
if test ! -f Makefile && test -n "$OBJ_REPLACEMENT"; then
|
||
|
objdir=`pwd | sed -e "$OBJ_REPLACEMENT"`
|
||
|
cd $objdir
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
if test ! -f Makefile && test -n "$OBJ_SUBDIR"; then
|
||
|
cd $OBJ_SUBDIR
|
||
|
fi
|
||
|
|
||
|
if test ! -f Makefile; then
|
||
|
echo "$0: in the current directory there is no Makefile"
|
||
|
echo "you will have to run it from the top build dir."
|
||
|
echo "if you do not have a Makefile there - rerun configure"
|
||
|
exit
|
||
|
fi
|
||
|
|
||
|
fi
|
||
|
|
||
|
# Handle arg with missing "/Makefile"
|
||
|
relpath=$1
|
||
|
if test -n "`echo $relpath | grep \/$`"; then
|
||
|
relpath=`echo $relpath | sed 's/\/$//'`
|
||
|
fi
|
||
|
if test -z "`echo $relpath | grep 'Makefile$'`"; then
|
||
|
relpath="$relpath/Makefile"
|
||
|
fi
|
||
|
|
||
|
# Strip leading ./, otherwise config.status chokes
|
||
|
relpath=`echo "$relpath" | sed -e 's,^\./,,'`
|
||
|
|
||
|
# Go up to toplevel dir
|
||
|
while test ! -f config.status; do
|
||
|
relpath="`basename $PWD`/$relpath"
|
||
|
cd ..
|
||
|
done
|
||
|
|
||
|
# Find out top_srcdir.
|
||
|
top_srcdir=`egrep '^top_srcdir *=' Makefile | sed -e "s#top_srcdir *= *##"`
|
||
|
|
||
|
(
|
||
|
if cd $top_srcdir ; then
|
||
|
# Check if unsermake or automake was used to create the toplevel Makefile.in
|
||
|
# (the one in $relpath might not exist yet)
|
||
|
if test -n "`sed -n -e '1p' Makefile.in | grep unsermake`"; then
|
||
|
if test -n "`sed -n -e '1p' Makefile.in | grep automake`"; then # old unsermake
|
||
|
if test -z "$UNSERMAKE"; then
|
||
|
echo "unsermake was used to build this module, but \$UNSERMAKE isn't set!"
|
||
|
exit 1
|
||
|
fi
|
||
|
$UNSERMAKE $relpath
|
||
|
exit 2
|
||
|
else # new unsermake
|
||
|
UNSERMAKE=`type -p unsermake`
|
||
|
if test ! -x "$UNSERMAKE"; then
|
||
|
echo 'Makefile was created with unsermake, but there'
|
||
|
echo 'is no unsermake in $PATH'
|
||
|
exit 1
|
||
|
fi
|
||
|
$UNSERMAKE -c $relpath
|
||
|
fi
|
||
|
else
|
||
|
# Suck in AUTOCONF/AUTOMAKE detection code
|
||
|
UNSERMAKE=no
|
||
|
eval `admin/detect-autoconf.pl`
|
||
|
/bin/sh admin/missing --run $AUTOMAKE $relpath || exit
|
||
|
if test -f admin/am_edit; then perl admin/am_edit $relpath.in ;\
|
||
|
else
|
||
|
if test -f ../admin/am_edit; then perl ../admin/am_edit $relpath.in ; \
|
||
|
fi
|
||
|
fi
|
||
|
fi
|
||
|
fi
|
||
|
)
|
||
|
case $? in
|
||
|
1)
|
||
|
exit 1
|
||
|
;;
|
||
|
2)
|
||
|
createrulesfile="true"
|
||
|
;;
|
||
|
*)
|
||
|
;;
|
||
|
esac
|
||
|
if test -f `dirname $relpath`; then
|
||
|
rm `dirname $relpath`
|
||
|
fi
|
||
|
CONFIG_FILES=$relpath CONFIG_HEADERS= ./config.status
|
||
|
if test "$createrulesfile" = "true"; then
|
||
|
CONFIG_FILES="$relpath.rules $relpath.calls" CONFIG_HEADERS= ./config.status
|
||
|
fi
|
||
|
fi
|