# This script acts as a simple interface for building extensions. # It primarily used by the perl Makefile: # # d_dummy $(dynamic_ext): miniperl preplibrary FORCE # ext/util/make_ext dynamic $@ # # It may be deleted in a later release of perl so try to # avoid using it for other purposes. linktype=$1 extspec=$2 case $CONFIG in '') if test -f config.sh; then TOP=.; elif test -f ../config.sh; then TOP=..; elif test -f ../../config.sh; then TOP=../..; elif test -f ../../../config.sh; then TOP=../../..; elif test -f ../../../../config.sh; then TOP=../../../..; else echo "Can't find config.sh generated by Configure"; exit 1 fi . $TOP/config.sh ;; esac if test "X$extspec" = X; then echo "make_ext: no extension specified" exit 1; fi # convert old style Name.a into ext/Name/Name.a format case "$extspec" in ext/*) ;; *) extspec=`echo "$extspec" | sed -e 's:\(.*\)\.\(.*\):ext/\1/\1.\2:'` esac # get extension directory path, module name and depth pname=`echo "$extspec" | sed -e 's:^ext/::' -e 's:/[^/]*$::'` mname=`echo "$pname" | sed -e 's!/!::!'` depth=`echo "$pname" | sed -e 's![^/][^/]*!..!g'` if test ! -d "ext/$pname"; then echo " Skipping $extspec (directory does not exist)" exit 0 # not an error ? fi # check link type and do any preliminaries case "$linktype" in static) makeargs='CCCDLFLAGS=' ;; dynamic) makeargs='' ;; *) echo "make_ext: unknown link type '$linktype'"; exit 1;; '') echo "make_ext: no link type specified (eg static or dynamic)"; exit 1;; esac echo "" echo " Making $mname ($linktype)" cd ext/$pname if test ! -f Makefile ; then test -f Makefile.PL && ../$depth/miniperl -I../$depth/lib Makefile.PL fi if test ! -f Makefile ; then test -f Makefile.SH && sh Makefile.SH fi make=${altmake-make} $make config $make $linktype $makeargs exit $?