X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Makefile.SH;h=931a3af78c852950a4ed9dc61348752ae47146b2;hb=13281fa4f8547e0eb31d1986b865d9b7ec7d0dcc;hp=a486289535d027501aa3a704f05129bb4add7f09;hpb=a559c25918b1466cdb50c9f978a86f01be0bac10;p=p5sagit%2Fp5-mst-13.2.git diff --git a/Makefile.SH b/Makefile.SH index a486289..931a3af 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -6,36 +6,40 @@ case $CONFIG in ln ../../../config.sh . || \ (echo "Can't find config.sh."; exit 1) fi - . config.sh + . ./config.sh ;; esac case "$0" in */*) cd `expr X$0 : 'X\(.*\)/'` ;; esac + +case "$d_symlink" in +*define*) sln='ln -s' ;; +*) sln='ln';; +esac + +case "$d_dosuid" in +*define*) suidperl='suidperl' ;; +*) suidperl='';; +esac + echo "Extracting Makefile (with variable substitutions)" cat >Makefile <>Makefile <<'!NO!SUBS!' +public = perl perldb $suidperl -public = perl perldb +!GROK!THIS! +cat >>Makefile <<'!NO!SUBS!' private = manpages = perl.man perldb.man @@ -61,17 +66,17 @@ util = sh = Makefile.SH makedepend.SH h1 = EXTERN.h INTERN.h arg.h array.h cmd.h config.h form.h handy.h -h2 = hash.h perl.h search.h spat.h stab.h str.h util.h +h2 = hash.h perl.h regexp.h spat.h stab.h str.h util.h h = $(h1) $(h2) -c1 = arg.c array.c cmd.c dump.c form.c hash.c $(mallocsrc) -c2 = search.c stab.c str.c util.c version.c +c1 = arg.c array.c cmd.c dump.c eval.c form.c hash.c $(mallocsrc) +c2 = perly.c regexp.c stab.c str.c toke.c util.c version.c c = $(c1) $(c2) -obj1 = arg.o array.o cmd.o dump.o form.o hash.o $(mallocobj) -obj2 = search.o stab.o str.o util.o version.o +obj1 = arg.o array.o cmd.o dump.o eval.o form.o hash.o $(mallocobj) +obj2 = regexp.o stab.o str.o toke.o util.o version.o obj = $(obj1) $(obj2) @@ -88,15 +93,36 @@ SHELL = /bin/sh all: $(public) $(private) $(util) touch all -perl: $(obj) perl.o - $(CC) $(LDFLAGS) $(LARGE) $(obj) perl.o $(libs) -o perl +perl: perly.o $(obj) perl.o + $(CC) $(LDFLAGS) $(LARGE) perly.o $(obj) perl.o $(libs) -o perl + +!NO!SUBS! + +case "$d_dosuid" in +*define*) + cat >>Makefile <<'!NO!SUBS!' + +suidperl: sperly.o $(obj) perl.o + $(CC) $(LDFLAGS) $(LARGE) sperly.o $(obj) perl.o $(libs) -o suidperl -perl.c: perl.y - @ echo Expect 2 shift/reduce errors... - yacc perl.y +sperly.o: perly.c + /bin/rm -f sperly.c + ln perly.c sperly.c + $(CC) -c -DIAMSUID $(CFLAGS) $(LARGE) sperly.c + /bin/rm -f sperly.c +!NO!SUBS! + ;; +esac + +cat >>Makefile <<'!NO!SUBS!' + +perl.c perly.h: perl.y + @ echo Expect 37 shift/reduce errors... + yacc -d perl.y mv y.tab.c perl.c + mv y.tab.h perly.h -perl.o: perl.c perly.c perl.h EXTERN.h search.h util.h INTERN.h handy.h +perl.o: perl.c perly.h perl.h EXTERN.h regexp.h util.h INTERN.h handy.h config.h $(CC) -c $(CFLAGS) $(LARGE) perl.c # if a .h file depends on another .h file... @@ -109,23 +135,34 @@ perl.man: perl.man.1 perl.man.2 install: perl perl.man # won't work with csh export PATH || exit 1 - - mv $(bin)/perl $(bin)/perl.old + - mv $(bin)/perl $(bin)/perl.old 2>/dev/null - if test `pwd` != $(bin); then cp $(public) $(bin); fi - cd $(bin); \ + - cd $(bin); \ for pub in $(public); do \ -chmod 755 `basename $$pub`; \ +chmod +x `basename $$pub`; \ done - - test $(bin) = /bin || rm -f /bin/perl - - test $(bin) = /bin || ln -s $(bin)/perl /bin || cp $(bin)/perl /bin -# chmod 755 makedir -# - makedir `filexp $(lib)` -# - \ -#if test `pwd` != `filexp $(lib)`; then \ -#cp $(private) `filexp $(lib)`; \ -#fi -# cd `filexp $(lib)`; \ +!NO!SUBS! + +case "$d_dosuid" in +*define*) + cat >>Makefile <<'!NO!SUBS!' + - chmod 4711 $(bin)/suidperl 2>/dev/null +!NO!SUBS! + ;; +esac + +cat >>Makefile <<'!NO!SUBS!' + - test $(bin) = /usr/bin || rm -f /usr/bin/perl + - test $(bin) = /usr/bin || $(SLN) $(bin)/perl /usr/bin || cp $(bin)/perl /usr/bin + chmod +x makedir + - ./makedir $(lib) + - \ +if test `pwd` != $(lib); then \ +cp $(private) lib/*.pl $(lib); \ +fi +# cd $(lib); \ #for priv in $(private); do \ -#chmod 755 `basename $$priv`; \ +#chmod +x `basename $$priv`; \ #done - if test `pwd` != $(mansrc); then \ for page in $(manpages); do \ @@ -137,22 +174,24 @@ clean: rm -f *.o realclean: - rm -f perl *.orig */*.orig *.o core $(addedbyconf) + rm -f perl *.orig */*.orig *~ */*~ *.o core $(addedbyconf) # The following lint has practically everything turned on. Unfortunately, # you have to wade through a lot of mumbo jumbo that can't be suppressed. # If the source file has a /*NOSTRICT*/ somewhere, ignore the lint message # for that spot. -lint: - lint $(lintflags) $(defs) $(c) > perl.fuzz +lint: perl.c $(c) + lint $(lintflags) $(defs) perl.c $(c) > perl.fuzz depend: makedepend + - test -f perly.h || cp /dev/null perly.h ./makedepend + - test -s perly.h || /bin/rm -f perly.h test: perl - chmod 755 t/TEST t/base.* t/comp.* t/cmd.* t/io.* t/op.* - cd t && (rm -f perl; ln -s ../perl . || ln ../perl .) && TEST + chmod +x t/TEST t/base.* t/comp.* t/cmd.* t/io.* t/op.* + cd t && (rm -f perl; $(SLN) ../perl .) && ./perl TEST clist: echo $(c) | tr ' ' '\012' >.clist @@ -164,7 +203,7 @@ shlist: echo $(sh) | tr ' ' '\012' >.shlist # AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE -$(obj): +perly.o $(obj): @ echo "You haven't done a "'"make depend" yet!'; exit 1 makedepend: makedepend.SH /bin/sh makedepend.SH