Staging
v0.5.1
https://github.com/python/cpython
Raw File
Tip revision: 7a325c385bb547b481abfee8301e9d9f2e58990a authored by cvs2svn on 06 May 1994, 14:16:55 UTC
This commit was manufactured by cvs2svn to create tag 'release102'.
Tip revision: 7a325c3
makesetup
#! /bin/sh

# This script converts Makefile.in.in and config.c.in into Makefile.in
# and config.c, based on the module definitions found in the file
# Setup.

NL="\\
"

sed -e 's/#.*//' -e '/^[ 	]*$/d' ${1-Setup} |
(
	DEFS=
	MODS=
	OBJS=
	LIBS=
	RULES=

	while read line
	do
		case $line in
		*=*)	DEFS="$DEFS$line$NL"; continue;;
		esac
		objs=
		cpps=
		set $line
		for arg
		do
			case $arg in
			-[IDUC]*)	cpps="$cpps $arg";;
			-[Ll]*)		LIBS="$LIBS $arg";;
			*.a)		LIBS="$LIBS $arg";;
			*.o)		objs="$objs $arg";;
			*.*)		echo 1>&2 "bad word $arg in $line"
					exit 1;;
			[a-zA-Z_]*)	MODS="$MODS $arg";;
			*)		echo 1>&2 "bad word $arg in $line"
					exit 1;;
			esac
		done
		for obj in $objs
		do
		  src=`basename $obj .o`.c
		  RULES="$RULES$obj: $src; \$(CC) \$(CFLAGS) $cpps -c $src$NL"
		done
		OBJS="$OBJS $objs"
	done

	EXTDECLS=
	INITBITS=
	for mod in $MODS
	do
		EXTDECLS="${EXTDECLS}extern void init$mod();$NL"
		INITBITS="${INITBITS}	{\"$mod\", init$mod},$NL"
	done
	sed -e "
		/MARKER 1/i$NL$EXTDECLS

		/MARKER 2/i$NL$INITBITS

		" config.c.in >config.c

	sed -e "
		s%@MODOBJS@%$OBJS%
		s%@MODLIBS@%$LIBS%
		/Rules added by ..makesetup/a$NL$NL$RULES
		
		/Definitions added by ..makesetup/a$NL$NL$DEFS
		
		" Makefile.in.in >Makefile.in

)
back to top