Skip to content

Commit d32a337

Browse files
committed
Changes for flat makefile. Building of modules happens from toplevel
directory. Modify meaning of -s option to specify the Modules directory. Add -l option to specify library source directory when building extension modules. Perhaps these names should be switched to avoid breaking old code. Add -c compiler option to when emitting rules to build object files.
1 parent 6cf0702 commit d32a337

1 file changed

Lines changed: 16 additions & 12 deletions

File tree

‎Modules/makesetup‎

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
# Usage: makesetup [-s dir] [-c file] [-m file] [Setup] ... [-n [Setup] ...]
77
#
88
# Options:
9-
# -s directory: alternative source directory (default derived from $0)
10-
# -c file: alternative config.c template (default $srcdir/config.c.in)
9+
# -s directory: alternative source directory (default .)
10+
# -l directory: library source directory (default derived from $0)
11+
# -c file: alternative config.c template (default $libdir/config.c.in)
1112
# -c -: don't write config.c
1213
# -m file: alternative Makefile template (default ./Makefile.pre)
1314
# -m -: don't write Makefile
@@ -40,9 +41,10 @@
4041

4142
# Loop over command line options
4243
usage='
43-
usage: makesetup [-s srcdir] [-c config.c.in] [-m Makefile.pre]
44+
usage: makesetup [-s srcdir] [-l libdir] [-c config.c.in] [-m Makefile.pre]
4445
[Setup] ... [-n [Setup] ...]'
45-
srcdir=''
46+
srcdir='.'
47+
libdir=''
4648
config=''
4749
makepre=''
4850
noobjects=''
@@ -51,6 +53,7 @@ while :
5153
do
5254
case $1 in
5355
-s) shift; srcdir=$1; shift;;
56+
-l) shift; libdir=$1; shift;;
5457
-c) shift; config=$1; shift;;
5558
-m) shift; makepre=$1; shift;;
5659
--) shift; break;;
@@ -60,16 +63,16 @@ do
6063
esac
6164
done
6265

63-
# Set default srcdir and config if not set by command line
66+
# Set default libdir and config if not set by command line
6467
# (Not all systems have dirname)
6568
case $srcdir in
6669
'') case $0 in
67-
*/*) srcdir=`echo $0 | sed 's,/[^/]*$,,'`;;
68-
*) srcdir=.;;
70+
*/*) libdir=`echo $0 | sed 's,/[^/]*$,,'`;;
71+
*) libdir=.;;
6972
esac;;
7073
esac
7174
case $config in
72-
'') config=$srcdir/config.c.in;;
75+
'') config=$libdir/config.c.in;;
7376
esac
7477
case $makepre in
7578
'') makepre=Makefile.pre;;
@@ -82,9 +85,9 @@ NL='\
8285
# Setup to link with extra libraries when makeing shared extensions.
8386
# Currently, only Cygwin needs this baggage.
8487
case `uname -s` in
85-
CYGWIN*) if test $srcdir = .
88+
CYGWIN*) if test $libdir = .
8689
then
87-
ExtraLibDir=..
90+
ExtraLibDir=.
8891
else
8992
ExtraLibDir='$(LIBPL)'
9093
fi
@@ -204,17 +207,18 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
204207
*.m) obj=`basename $src .m`.o; cc='$(CXX)';; # Obj-C
205208
*) continue;;
206209
esac
210+
obj="$srcdir/$obj"
207211
objs="$objs $obj"
208212
case $src in
209213
glmodule.c) ;;
210214
/*) ;;
211215
\$*) ;;
212-
*) src='$(srcdir)/'$src;;
216+
*) src='$(srcdir)/'"$srcdir/$src";;
213217
esac
214218
case $doconfig in
215219
no) cc="$cc \$(CCSHARED)";;
216220
esac
217-
rule="$obj: $src; $cc $cpps \$(CFLAGS) -c $src"
221+
rule="$obj: $src; $cc $cpps \$(CFLAGS) -c $src -o $obj"
218222
echo "$rule" >>$rulesf
219223
done
220224
case $doconfig in

0 commit comments

Comments
 (0)