| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | #! /bin/sh | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | # Convert templates into Makefile and config.c, based on the module | 
					
						
							|  |  |  | # definitions found in the file Setup. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Usage: makesetup [-s dir] [-c file] [-m file] [Setup] ... [-n [Setup] ...] | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Options: | 
					
						
							| 
									
										
										
										
											2001-01-24 17:16:22 +00:00
										 |  |  | # -s directory: alternative source directory (default .) | 
					
						
							|  |  |  | # -l directory: library source directory (default derived from $0) | 
					
						
							|  |  |  | # -c file:      alternative config.c template (default $libdir/config.c.in) | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | # -c -:         don't write config.c | 
					
						
							|  |  |  | # -m file:      alternative Makefile template (default ./Makefile.pre) | 
					
						
							|  |  |  | # -m -:         don't write Makefile | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Remaining arguments are one or more Setup files (default ./Setup). | 
					
						
							|  |  |  | # Setup files after a -n option are used for their variables, modules | 
					
						
							|  |  |  | # and libraries but not for their .o files. | 
					
						
							|  |  |  | # | 
					
						
							| 
									
										
										
										
											2000-10-26 17:07:40 +00:00
										 |  |  | # See Setup.dist for a description of the format of the Setup file. | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | # | 
					
						
							|  |  |  | # The following edits are made: | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Copying config.c.in to config.c: | 
					
						
							|  |  |  | # - insert an identifying comment at the start | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | # - for each <module> mentioned in Setup before *noconfig*: | 
					
						
							| 
									
										
										
										
											2000-07-23 00:02:15 +00:00
										 |  |  | #   + insert 'extern void init<module>(void);' before MARKER 1 | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | #   + insert '{"<module>", initmodule},' before MARKER 2 | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Copying Makefile.pre to Makefile: | 
					
						
							|  |  |  | # - insert an identifying comment at the start | 
					
						
							| 
									
										
										
										
											1995-01-02 19:30:30 +00:00
										 |  |  | # - replace _MODOBJS_ by the list of objects from Setup (except for | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | #   Setup files after a -n option) | 
					
						
							| 
									
										
										
										
											1995-01-02 19:30:30 +00:00
										 |  |  | # - replace _MODLIBS_ by the list of libraries from Setup | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | # - for each object file mentioned in Setup, append a rule | 
					
						
							|  |  |  | #   '<file>.o: <file>.c; <build commands>' to the end of the Makefile | 
					
						
							|  |  |  | # - for each module mentioned in Setup, append a rule | 
					
						
							|  |  |  | #   which creates a shared library version to the end of the Makefile | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | # - for each variable definition found in Setup, insert the definition | 
					
						
							|  |  |  | #   before the comment 'Definitions added by makesetup' | 
					
						
							| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | # Loop over command line options | 
					
						
							|  |  |  | usage=' | 
					
						
							| 
									
										
										
										
											2001-01-24 17:16:22 +00:00
										 |  |  | usage: makesetup [-s srcdir] [-l libdir] [-c config.c.in] [-m Makefile.pre] | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  |                  [Setup] ... [-n [Setup] ...]' | 
					
						
							| 
									
										
										
										
											2001-01-24 17:16:22 +00:00
										 |  |  | srcdir='.' | 
					
						
							|  |  |  | libdir='' | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | config='' | 
					
						
							|  |  |  | makepre='' | 
					
						
							|  |  |  | noobjects='' | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | doconfig=yes | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | while : | 
					
						
							|  |  |  | do | 
					
						
							|  |  |  | 	case $1 in | 
					
						
							|  |  |  | 	-s)	shift; srcdir=$1; shift;; | 
					
						
							| 
									
										
										
										
											2001-01-24 17:16:22 +00:00
										 |  |  | 	-l)	shift; libdir=$1; shift;; | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | 	-c)	shift; config=$1; shift;; | 
					
						
							|  |  |  | 	-m)	shift; makepre=$1; shift;; | 
					
						
							|  |  |  | 	--)	shift; break;; | 
					
						
							|  |  |  | 	-n)	noobjects=yes;; | 
					
						
							|  |  |  | 	-*)	echo "$usage" 1>&2; exit 2;; | 
					
						
							|  |  |  | 	*)	break;; | 
					
						
							|  |  |  | 	esac | 
					
						
							|  |  |  | done | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-01-24 17:16:22 +00:00
										 |  |  | # Set default libdir and config if not set by command line | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | # (Not all systems have dirname) | 
					
						
							| 
									
										
										
										
											2001-01-27 21:43:40 +00:00
										 |  |  | case $libdir in | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | '')	case $0 in | 
					
						
							| 
									
										
										
										
											2001-01-24 17:16:22 +00:00
										 |  |  | 	*/*)	libdir=`echo $0 | sed 's,/[^/]*$,,'`;; | 
					
						
							|  |  |  | 	*)	libdir=.;; | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | 	esac;; | 
					
						
							|  |  |  | esac | 
					
						
							|  |  |  | case $config in | 
					
						
							| 
									
										
										
										
											2001-01-24 17:16:22 +00:00
										 |  |  | '')	config=$libdir/config.c.in;; | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | esac | 
					
						
							|  |  |  | case $makepre in | 
					
						
							|  |  |  | '')	makepre=Makefile.pre;; | 
					
						
							|  |  |  | esac | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Newline for sed i and a commands | 
					
						
							| 
									
										
										
										
											1995-06-14 22:52:06 +00:00
										 |  |  | NL='\ | 
					
						
							|  |  |  | ' | 
					
						
							| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-01-10 21:12:18 +00:00
										 |  |  | # Setup to link with extra libraries when makeing shared extensions. | 
					
						
							|  |  |  | # Currently, only Cygwin needs this baggage. | 
					
						
							|  |  |  | case `uname -s` in | 
					
						
							| 
									
										
										
										
											2001-01-24 17:16:22 +00:00
										 |  |  | CYGWIN*) if test $libdir = . | 
					
						
							| 
									
										
										
										
											2001-01-10 21:12:18 +00:00
										 |  |  | 	 then | 
					
						
							| 
									
										
										
										
											2001-01-24 17:16:22 +00:00
										 |  |  | 	 	ExtraLibDir=. | 
					
						
							| 
									
										
										
										
											2001-01-10 21:12:18 +00:00
										 |  |  | 	 else | 
					
						
							|  |  |  | 	 	ExtraLibDir='$(LIBPL)' | 
					
						
							|  |  |  | 	 fi | 
					
						
							|  |  |  | 	 ExtraLibs="-L$ExtraLibDir -lpython\$(VERSION)";; | 
					
						
							|  |  |  | esac | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | # Main loop | 
					
						
							|  |  |  | for i in ${*-Setup} | 
					
						
							|  |  |  | do | 
					
						
							|  |  |  | 	case $i in | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 	-n)	echo '*noobjects*';; | 
					
						
							|  |  |  | 	*)	echo '*doconfig*'; cat "$i";; | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | 	esac | 
					
						
							|  |  |  | done | | 
					
						
							|  |  |  | sed -e 's/[ 	]*#.*//' -e '/^[ 	]*$/d' | | 
					
						
							| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | ( | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 	rulesf="@rules.$$" | 
					
						
							|  |  |  | 	trap 'rm -f $rulesf' 0 1 2 3 | 
					
						
							|  |  |  | 	echo " | 
					
						
							|  |  |  | # Rules appended by makedepend | 
					
						
							|  |  |  | " >$rulesf | 
					
						
							| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | 	DEFS= | 
					
						
							|  |  |  | 	MODS= | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 	SHAREDMODS= | 
					
						
							| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | 	OBJS= | 
					
						
							|  |  |  | 	LIBS= | 
					
						
							| 
									
										
										
										
											1994-08-23 13:49:15 +00:00
										 |  |  | 	LOCALLIBS= | 
					
						
							|  |  |  | 	BASELIBS= | 
					
						
							| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | 	while read line | 
					
						
							|  |  |  | 	do | 
					
						
							| 
									
										
										
										
											1999-04-19 17:16:12 +00:00
										 |  |  | 		# to handle backslashes for sh's that don't automatically | 
					
						
							|  |  |  | 		# continue a read when the last char is a backslash | 
					
						
							|  |  |  | 		while echo $line | grep '\\$' > /dev/null | 
					
						
							|  |  |  | 		do | 
					
						
							|  |  |  | 			read extraline | 
					
						
							|  |  |  | 			line=`echo $line| sed s/.$//`$extraline | 
					
						
							|  |  |  | 		done | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | 		# Output DEFS in reverse order so first definition overrides | 
					
						
							| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | 		case $line in | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | 		*=*)	DEFS="$line$NL$DEFS"; continue;; | 
					
						
							| 
									
										
										
										
											1997-04-02 05:33:00 +00:00
										 |  |  | 		'include '*)	DEFS="$line$NL$DEFS"; continue;; | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 		'*noobjects*') | 
					
						
							| 
									
										
										
										
											1994-08-23 13:49:15 +00:00
										 |  |  | 			case $noobjects in | 
					
						
							|  |  |  | 			yes)	;; | 
					
						
							|  |  |  | 			*)	LOCALLIBS=$LIBS; LIBS=;; | 
					
						
							|  |  |  | 			esac | 
					
						
							|  |  |  | 			noobjects=yes; | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 			continue;; | 
					
						
							|  |  |  | 		'*doconfig*')	doconfig=yes; continue;; | 
					
						
							| 
									
										
										
										
											1996-08-20 19:49:13 +00:00
										 |  |  | 		'*static*')	doconfig=yes; continue;; | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 		'*noconfig*')	doconfig=no; continue;; | 
					
						
							| 
									
										
										
										
											1996-08-20 19:49:13 +00:00
										 |  |  | 		'*shared*')	doconfig=no; continue;; | 
					
						
							| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | 		esac | 
					
						
							| 
									
										
										
										
											1994-08-23 13:49:15 +00:00
										 |  |  | 		srcs= | 
					
						
							| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | 		cpps= | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 		libs= | 
					
						
							|  |  |  | 		mods= | 
					
						
							| 
									
										
										
										
											1995-06-14 22:52:06 +00:00
										 |  |  | 		skip= | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 		for arg in $line | 
					
						
							| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | 		do | 
					
						
							| 
									
										
										
										
											1995-06-14 22:52:06 +00:00
										 |  |  | 			case $skip in | 
					
						
							|  |  |  | 			libs)	libs="$libs $arg"; skip=; continue;; | 
					
						
							|  |  |  | 			cpps)	cpps="$cpps $arg"; skip=; continue;; | 
					
						
							|  |  |  | 			srcs)	srcs="$srcs $arg"; skip=; continue;; | 
					
						
							|  |  |  | 			esac | 
					
						
							| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | 			case $arg in | 
					
						
							| 
									
										
										
										
											2001-01-10 21:46:05 +00:00
										 |  |  | 			-framework)	libs="$libs $arg"; skip=libs; | 
					
						
							|  |  |  | 				        # OSX/OSXS/Darwin framework link cmd | 
					
						
							|  |  |  | 					;; | 
					
						
							|  |  |  | 			-[IDUCfF]*)	cpps="$cpps $arg";; | 
					
						
							| 
									
										
										
										
											2002-03-29 18:00:19 +00:00
										 |  |  | 			-Xcompiler)	skip=cpps;; | 
					
						
							| 
									
										
										
										
											1997-12-02 20:38:11 +00:00
										 |  |  | 			-Xlinker)	libs="$libs $arg"; skip=libs;; | 
					
						
							| 
									
										
										
										
											1999-05-21 19:18:49 +00:00
										 |  |  | 			-rpath)		libs="$libs $arg"; skip=libs;; | 
					
						
							| 
									
										
										
										
											2000-08-11 13:58:37 +00:00
										 |  |  | 			--rpath)	libs="$libs $arg"; skip=libs;; | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 			-[A-Zl]*)	libs="$libs $arg";; | 
					
						
							|  |  |  | 			*.a)		libs="$libs $arg";; | 
					
						
							| 
									
										
										
										
											1996-08-19 22:00:05 +00:00
										 |  |  | 			*.so)		libs="$libs $arg";; | 
					
						
							|  |  |  | 			*.sl)		libs="$libs $arg";; | 
					
						
							| 
									
										
										
										
											1998-05-14 02:37:45 +00:00
										 |  |  | 			/*.o)		libs="$libs $arg";; | 
					
						
							| 
									
										
										
										
											2001-01-10 21:12:18 +00:00
										 |  |  | 			*.def)		libs="$libs $arg";; | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 			*.o)		srcs="$srcs `basename $arg .o`.c";; | 
					
						
							| 
									
										
										
										
											1994-08-23 13:49:15 +00:00
										 |  |  | 			*.[cC])		srcs="$srcs $arg";; | 
					
						
							| 
									
										
										
										
											2001-01-10 21:46:05 +00:00
										 |  |  | 			*.m)		srcs="$srcs $arg";; # Objective-C src | 
					
						
							| 
									
										
										
										
											1994-08-23 13:49:15 +00:00
										 |  |  | 			*.cc)		srcs="$srcs $arg";; | 
					
						
							|  |  |  | 			*.c++)		srcs="$srcs $arg";; | 
					
						
							| 
									
										
										
										
											1997-02-14 16:44:04 +00:00
										 |  |  | 			*.cxx)		srcs="$srcs $arg";; | 
					
						
							|  |  |  | 			*.cpp)		srcs="$srcs $arg";; | 
					
						
							| 
									
										
										
										
											1995-10-11 08:45:15 +00:00
										 |  |  | 			\$*)		libs="$libs $arg" | 
					
						
							|  |  |  | 					cpps="$cpps $arg";; | 
					
						
							| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | 			*.*)		echo 1>&2 "bad word $arg in $line" | 
					
						
							|  |  |  | 					exit 1;; | 
					
						
							| 
									
										
										
										
											1995-06-14 22:52:06 +00:00
										 |  |  | 			-u)		skip=libs; libs="$libs -u";; | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 			[a-zA-Z_]*)	mods="$mods $arg";; | 
					
						
							| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | 			*)		echo 1>&2 "bad word $arg in $line" | 
					
						
							|  |  |  | 					exit 1;; | 
					
						
							|  |  |  | 			esac | 
					
						
							|  |  |  | 		done | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 		case $doconfig in | 
					
						
							|  |  |  | 		yes) | 
					
						
							|  |  |  | 			LIBS="$LIBS $libs" | 
					
						
							|  |  |  | 			MODS="$MODS $mods" | 
					
						
							|  |  |  | 			;; | 
					
						
							|  |  |  | 		esac | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | 		case $noobjects in | 
					
						
							|  |  |  | 		yes)	continue;; | 
					
						
							|  |  |  | 		esac | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 		objs='' | 
					
						
							|  |  |  | 		for src in $srcs | 
					
						
							| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | 		do | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 			case $src in | 
					
						
							|  |  |  | 			*.c)   obj=`basename $src .c`.o; cc='$(CC)';; | 
					
						
							| 
									
										
										
										
											2000-12-06 23:46:29 +00:00
										 |  |  | 			*.cc)  obj=`basename $src .cc`.o; cc='$(CXX)';; | 
					
						
							|  |  |  | 			*.c++) obj=`basename $src .c++`.o; cc='$(CXX)';; | 
					
						
							|  |  |  | 			*.C)   obj=`basename $src .C`.o; cc='$(CXX)';; | 
					
						
							|  |  |  | 			*.cxx) obj=`basename $src .cxx`.o; cc='$(CXX)';; | 
					
						
							|  |  |  | 			*.cpp) obj=`basename $src .cpp`.o; cc='$(CXX)';; | 
					
						
							| 
									
										
										
										
											2001-03-02 07:09:54 +00:00
										 |  |  | 			*.m)   obj=`basename $src .m`.o; cc='$(CC)';; # Obj-C | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 			*)     continue;; | 
					
						
							|  |  |  | 			esac | 
					
						
							| 
									
										
										
										
											2001-01-24 17:16:22 +00:00
										 |  |  | 			obj="$srcdir/$obj" | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 			objs="$objs $obj" | 
					
						
							|  |  |  | 			case $src in | 
					
						
							|  |  |  | 			glmodule.c) ;; | 
					
						
							| 
									
										
										
										
											1998-09-09 14:04:51 +00:00
										 |  |  | 			/*) ;; | 
					
						
							| 
									
										
										
										
											2000-07-06 17:58:06 +00:00
										 |  |  | 			\$*) ;; | 
					
						
							| 
									
										
										
										
											2001-01-24 17:16:22 +00:00
										 |  |  | 			*) src='$(srcdir)/'"$srcdir/$src";; | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 			esac | 
					
						
							|  |  |  | 			case $doconfig in | 
					
						
							| 
									
										
										
										
											2001-06-02 06:16:02 +00:00
										 |  |  | 			no)	cc="$cc \$(CCSHARED) \$(CFLAGS) \$(CPPFLAGS)";; | 
					
						
							| 
									
										
										
										
											2001-01-26 16:22:26 +00:00
										 |  |  | 			*) | 
					
						
							|  |  |  | 				cc="$cc \$(PY_CFLAGS)";; | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 			esac | 
					
						
							| 
									
										
										
										
											2001-01-26 16:22:26 +00:00
										 |  |  | 			rule="$obj: $src; $cc $cpps -c $src -o $obj" | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 			echo "$rule" >>$rulesf | 
					
						
							| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | 		done | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 		case $doconfig in | 
					
						
							|  |  |  | 		yes)	OBJS="$OBJS $objs";; | 
					
						
							|  |  |  | 		esac | 
					
						
							|  |  |  | 		for mod in $mods | 
					
						
							| 
									
										
										
										
											1994-08-23 13:49:15 +00:00
										 |  |  | 		do | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 			case $objs in | 
					
						
							|  |  |  | 			*$mod.o*)	base=$mod;; | 
					
						
							|  |  |  | 			*)		base=${mod}module;; | 
					
						
							|  |  |  | 			esac | 
					
						
							| 
									
										
										
										
											2001-01-26 16:22:26 +00:00
										 |  |  | 			file="$srcdir/$base\$(SO)" | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 			case $doconfig in | 
					
						
							|  |  |  | 			no)	SHAREDMODS="$SHAREDMODS $file";; | 
					
						
							|  |  |  | 			esac | 
					
						
							|  |  |  | 			rule="$file: $objs" | 
					
						
							| 
									
										
										
										
											2001-01-10 21:12:18 +00:00
										 |  |  | 			rule="$rule; \$(LDSHARED) $objs $libs $ExtraLibs -o $file" | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 			echo "$rule" >>$rulesf | 
					
						
							| 
									
										
										
										
											1994-08-23 13:49:15 +00:00
										 |  |  | 		done | 
					
						
							| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | 	done | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 	case $SHAREDMODS in | 
					
						
							|  |  |  | 	'')	;; | 
					
						
							|  |  |  | 	*)	DEFS="SHAREDMODS=$SHAREDMODS$NL$DEFS";; | 
					
						
							|  |  |  | 	esac | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-08-23 13:49:15 +00:00
										 |  |  | 	case $noobjects in | 
					
						
							|  |  |  | 	yes)	BASELIBS=$LIBS;; | 
					
						
							|  |  |  | 	*)	LOCALLIBS=$LIBS;; | 
					
						
							|  |  |  | 	esac | 
					
						
							|  |  |  | 	LIBS='$(LOCALMODLIBS) $(BASEMODLIBS)' | 
					
						
							|  |  |  | 	DEFS="BASEMODLIBS=$BASELIBS$NL$DEFS" | 
					
						
							|  |  |  | 	DEFS="LOCALMODLIBS=$LOCALLIBS$NL$DEFS" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | 	EXTDECLS= | 
					
						
							|  |  |  | 	INITBITS= | 
					
						
							|  |  |  | 	for mod in $MODS | 
					
						
							|  |  |  | 	do | 
					
						
							| 
									
										
										
										
											2000-07-23 00:02:15 +00:00
										 |  |  | 		EXTDECLS="${EXTDECLS}extern void init$mod(void);$NL" | 
					
						
							| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | 		INITBITS="${INITBITS}	{\"$mod\", init$mod},$NL" | 
					
						
							|  |  |  | 	done | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | 	case $config in | 
					
						
							|  |  |  | 	-)  ;; | 
					
						
							|  |  |  | 	*)  sed -e " | 
					
						
							|  |  |  | 		1i$NL/* Generated automatically from $config by makesetup. */ | 
					
						
							|  |  |  | 		/MARKER 1/i$NL$EXTDECLS | 
					
						
							| 
									
										
										
										
											1998-12-04 18:50:17 +00:00
										 |  |  |   | 
					
						
							| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | 		/MARKER 2/i$NL$INITBITS | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | 		" $config >config.c | 
					
						
							|  |  |  | 	    ;; | 
					
						
							|  |  |  | 	esac | 
					
						
							| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | 	case $makepre in | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 	-)	;; | 
					
						
							|  |  |  | 	*)	sedf="@sed.in.$$" | 
					
						
							|  |  |  | 		trap 'rm -f $sedf' 0 1 2 3 | 
					
						
							|  |  |  | 		echo "1i\\" >$sedf | 
					
						
							|  |  |  | 		str="# Generated automatically from $makepre by makesetup." | 
					
						
							|  |  |  | 		echo "$str" >>$sedf | 
					
						
							| 
									
										
										
										
											1995-01-02 19:30:30 +00:00
										 |  |  | 		echo "s%_MODOBJS_%$OBJS%" >>$sedf | 
					
						
							|  |  |  | 		echo "s%_MODLIBS_%$LIBS%" >>$sedf | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 		echo "/Definitions added by makesetup/a$NL$NL$DEFS" >>$sedf | 
					
						
							|  |  |  | 		sed -f $sedf $makepre >Makefile | 
					
						
							|  |  |  | 		cat $rulesf >>Makefile | 
					
						
							|  |  |  | 		rm -f $sedf | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | 	    ;; | 
					
						
							|  |  |  | 	esac | 
					
						
							| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-09-12 10:42:20 +00:00
										 |  |  | 	rm -f $rulesf | 
					
						
							| 
									
										
										
										
											1994-01-02 00:26:09 +00:00
										 |  |  | ) |