LDFLAGS = $ldflags
CLDFLAGS = $ldflags
-SMALL = $small
-LARGE = $large $split
mallocsrc = $mallocsrc
mallocobj = $mallocobj
LNS = $lns
$(CCCMD) $(PLDLFLAGS) -DPERL_EXTERNAL_GLOB opmini.c
$(RMS) opmini.c
-miniperlmain$(OBJ_EXT): miniperlmain.c
+miniperlmain$(OBJ_EXT): miniperlmain.c patchlevel.h
$(CCCMD) $(PLDLFLAGS) $*.c
perlmain.c: miniperlmain.c config.sh $(FIRSTMAKEFILE)
!NO!SUBS!
+# if test -f .patch ; then $spitshell >>Makefile <<'!NO!SUBS!'
+# patchlevel.h: .patch
+# perl fix_pl || (make -f Makefile.micro && ./microperl fix_pl)
+# $(SHELL) Makefile.SH
+# fi
+#
+# !NO!SUBS!
+
# How to build libperl. This is still rather convoluted.
# Load up custom Makefile.SH fragment for shared loading and executables:
case "$osname" in
*)
$spitshell >>Makefile <<'!NO!SUBS!'
miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL) opmini$(OBJ_EXT)
- $(LDLIBPTH) $(CC) $(LARGE) $(CLDFLAGS) -o miniperl \
+ $(LDLIBPTH) $(CC) $(CLDFLAGS) -o miniperl \
miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) $(LLIBPERL) $(libs)
$(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
!NO!SUBS!
$spitshell >>Makefile <<'!NO!SUBS!'
perl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT)
- $(SHRPENV) $(LDLIBPTH) $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o perl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
+ $(SHRPENV) $(LDLIBPTH) $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o perl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
pureperl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT)
- $(SHRPENV) $(LDLIBPTH) purify $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o pureperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
+ $(SHRPENV) $(LDLIBPTH) purify $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o pureperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
purecovperl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT)
- $(SHRPENV) $(LDLIBPTH) purecov $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o purecovperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
+ $(SHRPENV) $(LDLIBPTH) purecov $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o purecovperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
quantperl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT)
- $(SHRPENV) $(LDLIBPTH) quantify $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o quantperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
+ $(SHRPENV) $(LDLIBPTH) quantify $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o quantperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
# This version, if specified in Configure, does ONLY those scripts which need
# set-id emulation. Suidperl must be setuid root. It contains the "taint"
# has been invoked correctly.
suidperl: $& sperl$(OBJ_EXT) perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT)
- $(SHRPENV) $(LDLIBPTH) $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o suidperl perlmain$(OBJ_EXT) sperl$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
+ $(SHRPENV) $(LDLIBPTH) $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o suidperl perlmain$(OBJ_EXT) sperl$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
!NO!SUBS!
-@rm -f extra.pods
-@for x in `grep -l '^=[a-z]' README.* | grep -v README.vms` ; do \
nx=`echo $$x | sed -e "s/README\.//"`; \
- $(LNS) ../$$x "pod/perl"$$nx".pod" ; \
+ cd pod ; $(LNS) ../$$x "perl"$$nx".pod" ; cd .. ; \
echo "pod/perl"$$nx".pod" >> extra.pods ; \
done
- -@test -f vms/perlvms.pod && $(LNS) ../vms/perlvms.pod pod/perlvms.pod && echo "pod/perlvms.pod" >> extra.pods
+ -@test -f vms/perlvms.pod && cd pod && $(LNS) ../vms/perlvms.pod perlvms.pod && cd .. && echo "pod/perlvms.pod" >> extra.pods
install-strip:
$(MAKE) STRIPFLAGS=-s install
-install: all install.perl install.man
+install:
+ $(MAKE) install.perl install.man STRIPFLAGS=$(STRIPFLAGS)
+
+install-verbose:
+ $(MAKE) install.perl install.man STRIPFLAGS=$(STRIPFLAGS) INSTALLFLAGS=-V
+
+install-silent:
+ $(MAKE) install.perl install.man STRIPFLAGS=$(STRIPFLAGS) INSTALLFLAGS=-S
+
+no-install:
+ $(MAKE) install.perl install.man STRIPFLAGS=$(STRIPFLAGS) INSTALLFLAGS=-n
install.perl: all installperl
if [ -n "$(COMPILE)" ]; \
cd ../pod; $(MAKE) compile; \
else :; \
fi
- $(LDLIBPTH) ./perl installperl $(STRIPFLAGS)
+ $(LDLIBPTH) ./perl installperl $(INSTALLFLAGS) $(STRIPFLAGS)
install.man: all installman
- $(LDLIBPTH) ./perl installman
+ $(LDLIBPTH) ./perl installman $(INSTALLFLAGS)
# XXX Experimental. Hardwired values, but useful for testing.
# Eventually Configure could ask for some of these values.
install.html: all installhtml
- -@test -f README.vms && $(LNS) ../README.vms vms/README_vms.pod
+ -@test -f README.vms && cd vms && $(LNS) ../README.vms README_vms.pod && cd ..
$(LDLIBPTH) ./perl installhtml \
--podroot=. --podpath=. --recurse \
--htmldir=$(privlib)/html \
clean: _tidy _mopup
-realclean: _cleaner _mopup
+realclean: _realcleaner _mopup
@echo "Note that make realclean does not delete config.sh or Policy.sh"
-clobber: _cleaner _mopup
+_clobber:
rm -f config.sh cppstdin Policy.sh
+clobber: _realcleaner _mopup _clobber
+
distclean: clobber
+# Like distclean but also removes emacs backups and *.orig.
+veryclean: _verycleaner _mopup _clobber
+ -@rm -f Obsolete Wanted
+
# Do not 'make _mopup' directly.
_mopup:
rm -f *$(OBJ_EXT) *$(LIB_EXT) all perlmain.c
-@test -f extra.pods && rm -f `cat extra.pods`
-@test -f vms/README_vms.pod && rm -f vms/README_vms.pod
- -rm -f perl.exp ext.libs extra.pods
+ -rm -f perl.exp ext.libs extra.pods opmini.o
-rm -f perl.export perl.dll perl.libexp perl.map perl.def
-rm -f perl.loadmap miniperl.loadmap perl.prelmap miniperl.prelmap
rm -f perl suidperl miniperl $(LIBPERL) libperl.* microperl
done
rm -f testcompile compilelog
-# Do not 'make _cleaner' directly.
-_cleaner:
+_cleaner1:
-cd os2; rm -f Makefile
- -cd pod; $(LDLIBPTH) $(MAKE) realclean
- -cd utils; $(LDLIBPTH) $(MAKE) realclean
- -cd x2p; $(LDLIBPTH) $(MAKE) realclean
+ -cd pod; $(LDLIBPTH) $(MAKE) $(CLEAN)
+ -cd utils; $(LDLIBPTH) $(MAKE) $(CLEAN)
+ -cd x2p; $(LDLIBPTH) $(MAKE) $(CLEAN)
-@for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) $(nonxs_ext) ; do \
- $(LDLIBPTH) sh ext/util/make_ext realclean $$x MAKE=$(MAKE) ; \
+ $(LDLIBPTH) sh ext/util/make_ext $(CLEAN) $$x MAKE=$(MAKE) ; \
done
- rm -f *.orig */*.orig *~ */*~ core core.*perl.*.? *perl.core t/core t/core.perl.*.? t/*perl.core t/misctmp* t/forktmp* t/tmp* t/c t/perl .?*.c so_locations $(LIBPERL_NONSHR) $(MINIPERL_NONSHR)
+
+_cleaner2:
+ rm -f core core.*perl.*.? *perl.core t/core t/core.perl.*.? t/*perl.core t/misctmp* t/forktmp* t/tmp* t/c t/perl t/rantests .?*.c so_locations $(LIBPERL_NONSHR) $(MINIPERL_NONSHR)
rm -rf $(addedbyconf)
rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old
rm -f $(private)
rm -f h2ph.man pstruct
rm -rf .config
rm -f testcompile compilelog
- -rmdir lib/B lib/Data lib/IO/Socket lib/IO
+ -rmdir lib/B lib/Data lib/IO/Socket lib/IO lib/Sys lib/Thread
+
+_realcleaner:
+ @$(LDLIBPTH) $(MAKE) _cleaner1 CLEAN=realclean
+ @$(LDLIBPTH) $(MAKE) _cleaner2
+
+_verycleaner:
+ @$(LDLIBPTH) $(MAKE) _cleaner1 CLEAN=veryclean
+ @$(LDLIBPTH) $(MAKE) _cleaner2
+ -rm -f *~ *.orig */*~ */*.orig */*/*~ */*/*.orig
# The following lint has practically everything turned on. Unfortunately,
# you have to wade through a lot of mumbo jumbo that can't be suppressed.
else \
cd t && PERL_SKIP_TTY_TEST=1 $(LDLIBPTH) ./perl TEST; \
fi
+ @echo "Ran tests" > t/rantests
utest ucheck: test-prep
if (true </dev/tty) >/dev/null 2>&1; then \