17db96d56Sopenharmony_ci#! /bin/sh
27db96d56Sopenharmony_ciset -e
37db96d56Sopenharmony_ci
47db96d56Sopenharmony_ci# Convert templates into Makefile and config.c, based on the module
57db96d56Sopenharmony_ci# definitions found in the file Setup.
67db96d56Sopenharmony_ci#
77db96d56Sopenharmony_ci# Usage: makesetup [-s dir] [-c file] [-m file] [Setup] ... [-n [Setup] ...]
87db96d56Sopenharmony_ci#
97db96d56Sopenharmony_ci# Options:
107db96d56Sopenharmony_ci# -s directory: alternative source directory (default .)
117db96d56Sopenharmony_ci# -l directory: library source directory (default derived from $0)
127db96d56Sopenharmony_ci# -c file:      alternative config.c template (default $libdir/config.c.in)
137db96d56Sopenharmony_ci# -c -:         don't write config.c
147db96d56Sopenharmony_ci# -m file:      alternative Makefile template (default ./Makefile.pre)
157db96d56Sopenharmony_ci# -m -:         don't write Makefile
167db96d56Sopenharmony_ci#
177db96d56Sopenharmony_ci# Remaining arguments are one or more Setup files (default ./Setup).
187db96d56Sopenharmony_ci# Setup files after a -n option are used for their variables, modules
197db96d56Sopenharmony_ci# and libraries but not for their .o files.
207db96d56Sopenharmony_ci#
217db96d56Sopenharmony_ci# See Setup for a description of the format of the Setup file.
227db96d56Sopenharmony_ci#
237db96d56Sopenharmony_ci# The following edits are made:
247db96d56Sopenharmony_ci#
257db96d56Sopenharmony_ci# Copying config.c.in to config.c:
267db96d56Sopenharmony_ci# - insert an identifying comment at the start
277db96d56Sopenharmony_ci# - for each <module> mentioned in Setup before *noconfig*:
287db96d56Sopenharmony_ci#   + insert 'extern PyObject* PyInit_<module>(void);' before MARKER 1
297db96d56Sopenharmony_ci#   + insert '{"<module>", PyInit_<module>},' before MARKER 2
307db96d56Sopenharmony_ci#
317db96d56Sopenharmony_ci# Copying Makefile.pre to Makefile:
327db96d56Sopenharmony_ci# - insert an identifying comment at the start
337db96d56Sopenharmony_ci# - replace _MODBUILT_NAMES_ by the list of *static* and *shared* modules
347db96d56Sopenharmony_ci#   from Setup
357db96d56Sopenharmony_ci# - replace _MODBSHARED_NAMES_ by the list of *shared* modules from Setup
367db96d56Sopenharmony_ci# - replace _MODDISABLED_NAMES_ by the list of *disabled* modules from Setup
377db96d56Sopenharmony_ci# - replace _MODOBJS_ by the list of objects from Setup (except for
387db96d56Sopenharmony_ci#   Setup files after a -n option)
397db96d56Sopenharmony_ci# - replace _MODLIBS_ by the list of libraries from Setup
407db96d56Sopenharmony_ci# - for each object file mentioned in Setup, append a rule
417db96d56Sopenharmony_ci#   '<file>.o: <file>.c; <build commands>' to the end of the Makefile
427db96d56Sopenharmony_ci# - for each module mentioned in Setup, append a rule
437db96d56Sopenharmony_ci#   which creates a shared library version to the end of the Makefile
447db96d56Sopenharmony_ci# - for each variable definition found in Setup, insert the definition
457db96d56Sopenharmony_ci#   before the comment 'Definitions added by makesetup'
467db96d56Sopenharmony_ci
477db96d56Sopenharmony_ci# Loop over command line options
487db96d56Sopenharmony_ciusage='
497db96d56Sopenharmony_ciusage: makesetup [-s srcdir] [-l libdir] [-c config.c.in] [-m Makefile.pre]
507db96d56Sopenharmony_ci                 [Setup] ... [-n [Setup] ...]'
517db96d56Sopenharmony_cisrcdir='.'
527db96d56Sopenharmony_cilibdir=''
537db96d56Sopenharmony_ciconfig=''
547db96d56Sopenharmony_cimakepre=''
557db96d56Sopenharmony_cinoobjects=''
567db96d56Sopenharmony_cidoconfig=yes
577db96d56Sopenharmony_ciwhile :
587db96d56Sopenharmony_cido
597db96d56Sopenharmony_ci	case $1 in
607db96d56Sopenharmony_ci	-s)	shift; srcdir=$1; shift;;
617db96d56Sopenharmony_ci	-l)	shift; libdir=$1; shift;;
627db96d56Sopenharmony_ci	-c)	shift; config=$1; shift;;
637db96d56Sopenharmony_ci	-m)	shift; makepre=$1; shift;;
647db96d56Sopenharmony_ci	--)	shift; break;;
657db96d56Sopenharmony_ci	-n)	noobjects=yes;;
667db96d56Sopenharmony_ci	-*)	echo "$usage" 1>&2; exit 2;;
677db96d56Sopenharmony_ci	*)	break;;
687db96d56Sopenharmony_ci	esac
697db96d56Sopenharmony_cidone
707db96d56Sopenharmony_ci
717db96d56Sopenharmony_ci# Set default libdir and config if not set by command line
727db96d56Sopenharmony_ci# (Not all systems have dirname)
737db96d56Sopenharmony_cicase $libdir in
747db96d56Sopenharmony_ci'')	case $0 in
757db96d56Sopenharmony_ci	*/*)	libdir=`echo $0 | sed 's,/[^/]*$,,'`;;
767db96d56Sopenharmony_ci	*)	libdir=.;;
777db96d56Sopenharmony_ci	esac;;
787db96d56Sopenharmony_ciesac
797db96d56Sopenharmony_cicase $config in
807db96d56Sopenharmony_ci'')	config=$libdir/config.c.in;;
817db96d56Sopenharmony_ciesac
827db96d56Sopenharmony_cicase $makepre in
837db96d56Sopenharmony_ci'')	makepre=Makefile.pre;;
847db96d56Sopenharmony_ciesac
857db96d56Sopenharmony_ci
867db96d56Sopenharmony_ci# Newline for sed i and a commands
877db96d56Sopenharmony_ciNL='\
887db96d56Sopenharmony_ci'
897db96d56Sopenharmony_ci
907db96d56Sopenharmony_ci# Setup to link with extra libraries when making shared extensions.
917db96d56Sopenharmony_ci# Currently, only Cygwin needs this baggage.
927db96d56Sopenharmony_cicase `uname -s` in
937db96d56Sopenharmony_ciCYGWIN*) if test $libdir = .
947db96d56Sopenharmony_ci	 then
957db96d56Sopenharmony_ci	 	ExtraLibDir=.
967db96d56Sopenharmony_ci	 else
977db96d56Sopenharmony_ci	 	ExtraLibDir='$(LIBPL)'
987db96d56Sopenharmony_ci	 fi
997db96d56Sopenharmony_ci	 ExtraLibs="-L$ExtraLibDir -lpython\$(LDVERSION)";;
1007db96d56Sopenharmony_ciesac
1017db96d56Sopenharmony_ci
1027db96d56Sopenharmony_ci# Main loop
1037db96d56Sopenharmony_cifor i in ${*-Setup}
1047db96d56Sopenharmony_cido
1057db96d56Sopenharmony_ci	case $i in
1067db96d56Sopenharmony_ci	-n)	echo '*noobjects*';;
1077db96d56Sopenharmony_ci	*)	echo '*doconfig*'; cat "$i";;
1087db96d56Sopenharmony_ci	esac
1097db96d56Sopenharmony_cidone |
1107db96d56Sopenharmony_cised -e 's/[ 	]*#.*//' -e '/^[ 	]*$/d' |
1117db96d56Sopenharmony_ci(
1127db96d56Sopenharmony_ci	rulesf="@rules.$$"
1137db96d56Sopenharmony_ci	trap 'rm -f $rulesf' 0 1 2 3
1147db96d56Sopenharmony_ci	echo "
1157db96d56Sopenharmony_ci# Rules appended by makesetup
1167db96d56Sopenharmony_ci" >$rulesf
1177db96d56Sopenharmony_ci	DEFS=
1187db96d56Sopenharmony_ci	BUILT=
1197db96d56Sopenharmony_ci	BUILT_SHARED=
1207db96d56Sopenharmony_ci	DISABLED=
1217db96d56Sopenharmony_ci	CONFIGURED=
1227db96d56Sopenharmony_ci	MODS=
1237db96d56Sopenharmony_ci	SHAREDMODS=
1247db96d56Sopenharmony_ci	OBJS=
1257db96d56Sopenharmony_ci	LIBS=
1267db96d56Sopenharmony_ci	LOCALLIBS=
1277db96d56Sopenharmony_ci	BASELIBS=
1287db96d56Sopenharmony_ci	while read line
1297db96d56Sopenharmony_ci	do
1307db96d56Sopenharmony_ci		# to handle backslashes for sh's that don't automatically
1317db96d56Sopenharmony_ci		# continue a read when the last char is a backslash
1327db96d56Sopenharmony_ci		while echo $line | grep '\\$' > /dev/null
1337db96d56Sopenharmony_ci		do
1347db96d56Sopenharmony_ci			read extraline
1357db96d56Sopenharmony_ci			line=`echo $line| sed s/.$//`$extraline
1367db96d56Sopenharmony_ci		done
1377db96d56Sopenharmony_ci
1387db96d56Sopenharmony_ci		# Output DEFS in reverse order so first definition overrides
1397db96d56Sopenharmony_ci		case $line in
1407db96d56Sopenharmony_ci		*=*)	DEFS="$line$NL$DEFS"; continue;;
1417db96d56Sopenharmony_ci		'include '*)	DEFS="$line$NL$DEFS"; continue;;
1427db96d56Sopenharmony_ci		'*noobjects*')
1437db96d56Sopenharmony_ci			case $noobjects in
1447db96d56Sopenharmony_ci			yes)	;;
1457db96d56Sopenharmony_ci			*)	LOCALLIBS=$LIBS; LIBS=;;
1467db96d56Sopenharmony_ci			esac
1477db96d56Sopenharmony_ci			noobjects=yes;
1487db96d56Sopenharmony_ci			continue;;
1497db96d56Sopenharmony_ci		'*doconfig*')	doconfig=yes; continue;;
1507db96d56Sopenharmony_ci		'*static*')	doconfig=yes; continue;;
1517db96d56Sopenharmony_ci		'*noconfig*')	doconfig=no; continue;;
1527db96d56Sopenharmony_ci		'*shared*')	doconfig=no; continue;;
1537db96d56Sopenharmony_ci		'*disabled*')	doconfig=disabled; continue;;
1547db96d56Sopenharmony_ci		esac
1557db96d56Sopenharmony_ci		srcs=
1567db96d56Sopenharmony_ci		cpps=
1577db96d56Sopenharmony_ci		libs=
1587db96d56Sopenharmony_ci		mods=
1597db96d56Sopenharmony_ci		mods_upper=
1607db96d56Sopenharmony_ci		skip=
1617db96d56Sopenharmony_ci		for arg in $line
1627db96d56Sopenharmony_ci		do
1637db96d56Sopenharmony_ci			case $skip in
1647db96d56Sopenharmony_ci			libs)	libs="$libs $arg"; skip=; continue;;
1657db96d56Sopenharmony_ci			cpps)	cpps="$cpps $arg"; skip=; continue;;
1667db96d56Sopenharmony_ci			srcs)	srcs="$srcs $arg"; skip=; continue;;
1677db96d56Sopenharmony_ci			esac
1687db96d56Sopenharmony_ci			case $arg in
1697db96d56Sopenharmony_ci			-framework)	libs="$libs $arg"; skip=libs;
1707db96d56Sopenharmony_ci				        # OSX/OSXS/Darwin framework link cmd
1717db96d56Sopenharmony_ci					;;
1727db96d56Sopenharmony_ci			-[IDUCfF]*)	cpps="$cpps $arg";;
1737db96d56Sopenharmony_ci			-Xcompiler)	skip=cpps;;
1747db96d56Sopenharmony_ci			-Xlinker)	libs="$libs $arg"; skip=libs;;
1757db96d56Sopenharmony_ci			-rpath)		libs="$libs $arg"; skip=libs;;
1767db96d56Sopenharmony_ci			--rpath)	libs="$libs $arg"; skip=libs;;
1777db96d56Sopenharmony_ci			-[A-Zl]*)	libs="$libs $arg";;
1787db96d56Sopenharmony_ci			*.a)		libs="$libs $arg";;
1797db96d56Sopenharmony_ci			*.so)		libs="$libs $arg";;
1807db96d56Sopenharmony_ci			*.sl)		libs="$libs $arg";;
1817db96d56Sopenharmony_ci			/*.o)		libs="$libs $arg";;
1827db96d56Sopenharmony_ci			*.def)		libs="$libs $arg";;
1837db96d56Sopenharmony_ci			*.o)		srcs="$srcs `basename $arg .o`.c";;
1847db96d56Sopenharmony_ci			*.[cC])		srcs="$srcs $arg";;
1857db96d56Sopenharmony_ci			*.m)		srcs="$srcs $arg";; # Objective-C src
1867db96d56Sopenharmony_ci			*.cc)		srcs="$srcs $arg";;
1877db96d56Sopenharmony_ci			*.c++)		srcs="$srcs $arg";;
1887db96d56Sopenharmony_ci			*.cxx)		srcs="$srcs $arg";;
1897db96d56Sopenharmony_ci			*.cpp)		srcs="$srcs $arg";;
1907db96d56Sopenharmony_ci			\$\(*_CFLAGS\))		cpps="$cpps $arg";;
1917db96d56Sopenharmony_ci			\$\(*_INCLUDES\))	cpps="$cpps $arg";;
1927db96d56Sopenharmony_ci			\$\(*_LIBS\))		libs="$libs $arg";;
1937db96d56Sopenharmony_ci			\$\(*_LDFLAGS\))	libs="$libs $arg";;
1947db96d56Sopenharmony_ci			\$\(*_RPATH\))		libs="$libs $arg";;
1957db96d56Sopenharmony_ci			\$*)		libs="$libs $arg"
1967db96d56Sopenharmony_ci					cpps="$cpps $arg";;
1977db96d56Sopenharmony_ci			*.*)		echo 1>&2 "bad word $arg in $line"
1987db96d56Sopenharmony_ci					exit 1;;
1997db96d56Sopenharmony_ci			-u)		skip=libs; libs="$libs -u";;
2007db96d56Sopenharmony_ci			[a-zA-Z_]*)
2017db96d56Sopenharmony_ci					mods="$mods $arg"
2027db96d56Sopenharmony_ci					mods_upper=$(echo $mods | tr '[a-z]' '[A-Z]');;
2037db96d56Sopenharmony_ci			*)		echo 1>&2 "bad word $arg in $line"
2047db96d56Sopenharmony_ci					exit 1;;
2057db96d56Sopenharmony_ci			esac
2067db96d56Sopenharmony_ci		done
2077db96d56Sopenharmony_ci		if test -z "$cpps" -a -z "$libs"; then
2087db96d56Sopenharmony_ci			cpps="\$(MODULE_${mods_upper}_CFLAGS)"
2097db96d56Sopenharmony_ci			libs="\$(MODULE_${mods_upper}_LDFLAGS)"
2107db96d56Sopenharmony_ci		fi
2117db96d56Sopenharmony_ci		for mod in $mods
2127db96d56Sopenharmony_ci		do
2137db96d56Sopenharmony_ci			case $CONFIGURED in
2147db96d56Sopenharmony_ci			*,${mod},*)
2157db96d56Sopenharmony_ci				# Detected multiple rules for a module, first rule wins. This
2167db96d56Sopenharmony_ci				# allows users to disable modules in Setup.local.
2177db96d56Sopenharmony_ci				echo 1>&2 "maksetup: '$mod' was handled by previous rule."
2187db96d56Sopenharmony_ci				continue 2;;
2197db96d56Sopenharmony_ci			esac
2207db96d56Sopenharmony_ci			CONFIGURED="$CONFIGURED,${mod},"
2217db96d56Sopenharmony_ci		done
2227db96d56Sopenharmony_ci		case $doconfig in
2237db96d56Sopenharmony_ci		yes)
2247db96d56Sopenharmony_ci			LIBS="$LIBS $libs"
2257db96d56Sopenharmony_ci			MODS="$MODS $mods"
2267db96d56Sopenharmony_ci			BUILT="$BUILT $mods"
2277db96d56Sopenharmony_ci			;;
2287db96d56Sopenharmony_ci		no)
2297db96d56Sopenharmony_ci			BUILT="$BUILT $mods"
2307db96d56Sopenharmony_ci			;;
2317db96d56Sopenharmony_ci		disabled)
2327db96d56Sopenharmony_ci			DISABLED="$DISABLED $mods"
2337db96d56Sopenharmony_ci			continue
2347db96d56Sopenharmony_ci			;;
2357db96d56Sopenharmony_ci		esac
2367db96d56Sopenharmony_ci		case $noobjects in
2377db96d56Sopenharmony_ci		yes)	continue;;
2387db96d56Sopenharmony_ci		esac
2397db96d56Sopenharmony_ci		objs=''
2407db96d56Sopenharmony_ci		for src in $srcs
2417db96d56Sopenharmony_ci		do
2427db96d56Sopenharmony_ci			case $src in
2437db96d56Sopenharmony_ci			*.c)   obj=`basename $src .c`.o; cc='$(CC)';;
2447db96d56Sopenharmony_ci			*.cc)  obj=`basename $src .cc`.o; cc='$(CXX)';;
2457db96d56Sopenharmony_ci			*.c++) obj=`basename $src .c++`.o; cc='$(CXX)';;
2467db96d56Sopenharmony_ci			*.C)   obj=`basename $src .C`.o; cc='$(CXX)';;
2477db96d56Sopenharmony_ci			*.cxx) obj=`basename $src .cxx`.o; cc='$(CXX)';;
2487db96d56Sopenharmony_ci			*.cpp) obj=`basename $src .cpp`.o; cc='$(CXX)';;
2497db96d56Sopenharmony_ci			*.m)   obj=`basename $src .m`.o; cc='$(CC)';; # Obj-C
2507db96d56Sopenharmony_ci			*)     continue;;
2517db96d56Sopenharmony_ci			esac
2527db96d56Sopenharmony_ci			case $src in
2537db96d56Sopenharmony_ci			*/*) obj="$srcdir/`dirname $src`/$obj";;
2547db96d56Sopenharmony_ci			*)   obj="$srcdir/$obj";;
2557db96d56Sopenharmony_ci			esac
2567db96d56Sopenharmony_ci			objs="$objs $obj"
2577db96d56Sopenharmony_ci			case $src in
2587db96d56Sopenharmony_ci			glmodule.c) ;;
2597db96d56Sopenharmony_ci			/*) ;;
2607db96d56Sopenharmony_ci			\$*) ;;
2617db96d56Sopenharmony_ci			*) src='$(srcdir)/'"$srcdir/$src";;
2627db96d56Sopenharmony_ci			esac
2637db96d56Sopenharmony_ci			# custom flags first, PY_STDMODULE_CFLAGS may contain -I with system libmpdec
2647db96d56Sopenharmony_ci			case $doconfig in
2657db96d56Sopenharmony_ci			no)	cc="$cc $cpps \$(PY_STDMODULE_CFLAGS) \$(CCSHARED)";;
2667db96d56Sopenharmony_ci			*)
2677db96d56Sopenharmony_ci				cc="$cc $cpps \$(PY_BUILTIN_MODULE_CFLAGS)";;
2687db96d56Sopenharmony_ci			esac
2697db96d56Sopenharmony_ci			# force rebuild when header file or module build flavor (static/shared) is changed
2707db96d56Sopenharmony_ci			rule="$obj: $src \$(MODULE_${mods_upper}_DEPS) \$(PYTHON_HEADERS) Modules/config.c; $cc -c $src -o $obj"
2717db96d56Sopenharmony_ci			echo "$rule" >>$rulesf
2727db96d56Sopenharmony_ci		done
2737db96d56Sopenharmony_ci		case $doconfig in
2747db96d56Sopenharmony_ci		yes)	OBJS="$OBJS $objs";;
2757db96d56Sopenharmony_ci		esac
2767db96d56Sopenharmony_ci		for mod in $mods
2777db96d56Sopenharmony_ci		do
2787db96d56Sopenharmony_ci			file="$srcdir/$mod\$(EXT_SUFFIX)"
2797db96d56Sopenharmony_ci			case $doconfig in
2807db96d56Sopenharmony_ci			no)
2817db96d56Sopenharmony_ci				SHAREDMODS="$SHAREDMODS $file"
2827db96d56Sopenharmony_ci				BUILT_SHARED="$BUILT_SHARED $mod"
2837db96d56Sopenharmony_ci				;;
2847db96d56Sopenharmony_ci			esac
2857db96d56Sopenharmony_ci			rule="$file: $objs"
2867db96d56Sopenharmony_ci			rule="$rule; \$(BLDSHARED) $objs $libs $ExtraLibs -o $file"
2877db96d56Sopenharmony_ci			echo "$rule" >>$rulesf
2887db96d56Sopenharmony_ci		done
2897db96d56Sopenharmony_ci	done
2907db96d56Sopenharmony_ci
2917db96d56Sopenharmony_ci	case $SHAREDMODS in
2927db96d56Sopenharmony_ci	'')	;;
2937db96d56Sopenharmony_ci	*)	DEFS="SHAREDMODS=$SHAREDMODS$NL$DEFS";;
2947db96d56Sopenharmony_ci	esac
2957db96d56Sopenharmony_ci
2967db96d56Sopenharmony_ci	case $noobjects in
2977db96d56Sopenharmony_ci	yes)	BASELIBS=$LIBS;;
2987db96d56Sopenharmony_ci	*)	LOCALLIBS=$LIBS;;
2997db96d56Sopenharmony_ci	esac
3007db96d56Sopenharmony_ci	LIBS='$(LOCALMODLIBS) $(BASEMODLIBS)'
3017db96d56Sopenharmony_ci	DEFS="BASEMODLIBS=$BASELIBS$NL$DEFS"
3027db96d56Sopenharmony_ci	DEFS="LOCALMODLIBS=$LOCALLIBS$NL$DEFS"
3037db96d56Sopenharmony_ci
3047db96d56Sopenharmony_ci	EXTDECLS=
3057db96d56Sopenharmony_ci	INITBITS=
3067db96d56Sopenharmony_ci	for mod in $MODS
3077db96d56Sopenharmony_ci	do
3087db96d56Sopenharmony_ci		EXTDECLS="${EXTDECLS}extern PyObject* PyInit_$mod(void);$NL"
3097db96d56Sopenharmony_ci		INITBITS="${INITBITS}    {\"$mod\", PyInit_$mod},$NL"
3107db96d56Sopenharmony_ci	done
3117db96d56Sopenharmony_ci
3127db96d56Sopenharmony_ci
3137db96d56Sopenharmony_ci	case $config in
3147db96d56Sopenharmony_ci	-)  ;;
3157db96d56Sopenharmony_ci	*)  sed -e "
3167db96d56Sopenharmony_ci		1i$NL/* Generated automatically from $config by makesetup. */
3177db96d56Sopenharmony_ci		/MARKER 1/i$NL$EXTDECLS
3187db96d56Sopenharmony_ci
3197db96d56Sopenharmony_ci		/MARKER 2/i$NL$INITBITS
3207db96d56Sopenharmony_ci
3217db96d56Sopenharmony_ci		" $config >config.c
3227db96d56Sopenharmony_ci	    ;;
3237db96d56Sopenharmony_ci	esac
3247db96d56Sopenharmony_ci
3257db96d56Sopenharmony_ci	case $makepre in
3267db96d56Sopenharmony_ci	-)	;;
3277db96d56Sopenharmony_ci	*)
3287db96d56Sopenharmony_ci		# macOS' sed has issues with 'a' command. Use 'r' command with an
3297db96d56Sopenharmony_ci		# external replacement file instead.
3307db96d56Sopenharmony_ci		sedf="@sed.in.$$"
3317db96d56Sopenharmony_ci		sedr="@sed.replace.$$"
3327db96d56Sopenharmony_ci		trap 'rm -f $sedf $sedr' 0 1 2 3
3337db96d56Sopenharmony_ci		echo "$NL$NL$DEFS" | sed 's/\\$//' > $sedr
3347db96d56Sopenharmony_ci		echo "1i\\" >$sedf
3357db96d56Sopenharmony_ci		str="# Generated automatically from $makepre by makesetup."
3367db96d56Sopenharmony_ci		echo "$str" >>$sedf
3377db96d56Sopenharmony_ci		echo "s%_MODBUILT_NAMES_%$BUILT%" >>$sedf
3387db96d56Sopenharmony_ci		echo "s%_MODSHARED_NAMES_%$BUILT_SHARED%" >>$sedf
3397db96d56Sopenharmony_ci		echo "s%_MODDISABLED_NAMES_%$DISABLED%" >>$sedf
3407db96d56Sopenharmony_ci		echo "s%_MODOBJS_%$OBJS%" >>$sedf
3417db96d56Sopenharmony_ci		echo "s%_MODLIBS_%$LIBS%" >>$sedf
3427db96d56Sopenharmony_ci		echo "/Definitions added by makesetup/r $sedr" >>$sedf
3437db96d56Sopenharmony_ci		sed -f $sedf $makepre >Makefile
3447db96d56Sopenharmony_ci		cat $rulesf >>Makefile
3457db96d56Sopenharmony_ci		rm -f $sedf $sedr
3467db96d56Sopenharmony_ci	    ;;
3477db96d56Sopenharmony_ci	esac
3487db96d56Sopenharmony_ci
3497db96d56Sopenharmony_ci	rm -f $rulesf
3507db96d56Sopenharmony_ci)
351