summaryrefslogtreecommitdiff
path: root/Makefile.SH
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1998-05-14 22:24:26 +0000
committerGurusamy Sarathy <gsar@cpan.org>1998-05-14 22:24:26 +0000
commit6ee623d521a149edc6574c512fa951a192cd086a (patch)
tree3d769839caf246d24053d0f49b4f48aed590e031 /Makefile.SH
parent20408e3ccf502b6ce4033d8203710405ec9ef8f6 (diff)
downloadperl-6ee623d521a149edc6574c512fa951a192cd086a.tar.gz
[win32] integrate mainline
p4raw-id: //depot/win32/perl@973
Diffstat (limited to 'Makefile.SH')
-rw-r--r--Makefile.SH76
1 files changed, 52 insertions, 24 deletions
diff --git a/Makefile.SH b/Makefile.SH
index c1689cd11d..a70b53e4fe 100644
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -25,8 +25,13 @@ esac
linklibperl='$(LIBPERL)'
shrpldflags='$(LDDLFLAGS)'
+ldlibpth=''
case "$useshrplib" in
true)
+ # Prefix all runs of 'miniperl' and 'perl' with
+ # $ldlibpth so that ./perl finds *this* libperl.so.
+ ldlibpth="LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH"
+
pldlflags="$cccdlflags"
# NeXT-4 specific stuff. Can't we do this in the hint file?
case "${osname}${osvers}" in
@@ -35,6 +40,11 @@ true)
lddlflags="-dynamic -undefined warning -framework System \
-compatibility_version 1 -current_version $patchlevel \
-prebind -seg1addr 0x27000000 -install_name \$(shrpdir)/\$@"
+ # NeXT uses a different name.
+ ldlibpth="DYLD_LIBRARY_PATH=`pwd`:$DYLD_LIBRARY_PATH"
+ ;;
+ os2*) # OS/2 doesn't need anything special for LD_LIBRARY_PATH.
+ ldlibpth=''
;;
sunos*|freebsd[23]*|netbsd*)
linklibperl="-lperl"
@@ -124,6 +134,10 @@ LIBPERL = $libperl
LLIBPERL= $linklibperl
SHRPENV = $shrpenv
+# The following is used to include the current directory in
+# LD_LIBRARY_PATH if you are building a shared libperl.so.
+LDLIBPTH = $ldlibpth
+
dynamic_ext = $dynamic_list
static_ext = $static_list
ext = \$(dynamic_ext) \$(static_ext)
@@ -219,11 +233,17 @@ lintflags = -hbvxac
all: $(FIRSTMAKEFILE) miniperl $(private) $(plextract) $(public) $(dynamic_ext)
@echo " "; echo " Everything is up to date."
+compile: all
+ echo "testing compilation" > testcompile;
+ cd utils; $(MAKE) compile;
+ cd x2p; $(MAKE) compile;
+ cd pod; $(MAKE) compile;
+
translators: miniperl lib/Config.pm FORCE
- @echo " "; echo " Making x2p stuff"; cd x2p; $(MAKE) all
+ @echo " "; echo " Making x2p stuff"; cd x2p; $(LDLIBPTH) $(MAKE) all
utilities: miniperl lib/Config.pm FORCE
- @echo " "; echo " Making utilities"; cd utils; $(MAKE) all
+ @echo " "; echo " Making utilities"; cd utils; $(LDLIBPTH) $(MAKE) all
# This is now done by installman only if you actually want the man pages.
@@ -299,20 +319,20 @@ $(LIBPERL): $& perl$(OBJ_EXT) $(obj)
# The Module used here must not depend on Config or any extensions.
miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL)
- $(CC) $(LARGE) $(CLDFLAGS) -o miniperl miniperlmain$(OBJ_EXT) $(LLIBPERL) $(libs)
- @./miniperl -w -Ilib -MExporter -e 0 || $(MAKE) minitest
+ $(LDLIBPTH) $(CC) $(LARGE) $(CLDFLAGS) -o miniperl miniperlmain$(OBJ_EXT) $(LLIBPERL) $(libs)
+ @ $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e 0 || $(MAKE) minitest
perl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs
- $(SHRPENV) $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o perl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
+ $(SHRPENV) $(LDLIBPTH) $(CC) $(LARGE) $(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
- $(SHRPENV) purify $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o pureperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
+ $(SHRPENV) $(LDLIBPTH) purify $(CC) $(LARGE) $(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
- $(SHRPENV) purecov $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o purecovperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
+ $(SHRPENV) $(LDLIBPTH) purecov $(CC) $(LARGE) $(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
- $(SHRPENV) quantify $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o quantperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
+ $(SHRPENV) $(LDLIBPTH) quantify $(CC) $(LARGE) $(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"
@@ -320,7 +340,7 @@ quantperl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs
# has been invoked correctly.
suidperl: $& sperl$(OBJ_EXT) perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs
- $(SHRPENV) $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o suidperl perlmain$(OBJ_EXT) sperl$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
+ $(SHRPENV) $(LDLIBPTH) $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o suidperl perlmain$(OBJ_EXT) sperl$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
!NO!SUBS!
@@ -340,34 +360,40 @@ sperl$(OBJ_EXT): perl.c perly.h patchlevel.h $(h)
preplibrary: miniperl lib/Config.pm $(plextract)
@sh ./makedir lib/auto
@echo " AutoSplitting perl library"
- @./miniperl -Ilib -e 'use AutoSplit; \
+ @$(LDLIBPTH) ./miniperl -Ilib -e 'use AutoSplit; \
autosplit_lib_modules(@ARGV)' lib/*.pm lib/*/*.pm
# Take care to avoid modifying lib/Config.pm without reason
# (If trying to create a new port and having problems with the configpm script,
# try 'make minitest' and/or commenting out the tests at the end of configpm.)
lib/Config.pm: config.sh miniperl configpm
- ./miniperl configpm tmp
+ $(LDLIBPTH) ./miniperl configpm tmp
sh mv-if-diff tmp lib/Config.pm
lib/ExtUtils/Miniperl.pm: miniperlmain.c miniperl minimod.pl lib/Config.pm
- ./miniperl minimod.pl > tmp && mv tmp $@
+ $(LDLIBPTH) ./miniperl minimod.pl > tmp && mv tmp $@
$(plextract): miniperl lib/Config.pm
- `echo ./miniperl -Ilib $@.PL`
-
+ $(LDLIBPTH) ./miniperl -Ilib $@.PL
+
install: all install.perl install.man
install.perl: all installperl
- ./perl installperl
+ if [ -n "$(COMPILE)" ]; \
+ then \
+ cd utils; $(MAKE) compile; \
+ cd ../x2p; $(MAKE) compile; \
+ cd ../pod; $(MAKE) compile; \
+ fi
+ $(LDLIBPTH) ./perl installperl
install.man: all installman
- ./perl installman
+ $(LDLIBPTH) ./perl installman
# XXX Experimental. Hardwired values, but useful for testing.
# Eventually Configure could ask for some of these values.
install.html: all installhtml
- ./perl installhtml \
+ $(LDLIBPTH) ./perl installhtml \
--podroot=. --podpath=. --recurse \
--htmldir=$(privlib)/html \
--htmlroot=$(privlib)/html \
@@ -438,13 +464,13 @@ regen_headers: FORCE
# DynaLoader may be needed for extensions that use Makefile.PL.
$(DYNALOADER): miniperl preplibrary FORCE
- @sh ext/util/make_ext static $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
+ @$(LDLIBPTH) sh ext/util/make_ext static $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
d_dummy $(dynamic_ext): miniperl preplibrary $(DYNALOADER) FORCE
- @sh ext/util/make_ext dynamic $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
+ @$(LDLIBPTH) sh ext/util/make_ext dynamic $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
s_dummy $(static_ext): miniperl preplibrary $(DYNALOADER) FORCE
- @sh ext/util/make_ext static $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
+ @$(LDLIBPTH) sh ext/util/make_ext static $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
clean: _tidy _mopup
@@ -471,6 +497,7 @@ _tidy:
-@for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) ; do \
sh ext/util/make_ext clean $$x MAKE=$(MAKE) ; \
done
+ rm -f testcompile compilelog
# Do not 'make _cleaner' directly.
_cleaner:
@@ -489,6 +516,7 @@ _cleaner:
rm -f lib/.exists
rm -f h2ph.man pstruct
rm -rf .config
+ rm -f testcompile compilelog
# The following lint has practically everything turned on. Unfortunately,
# you have to wade through a lot of mumbo jumbo that can't be suppressed.
@@ -528,11 +556,11 @@ test-prep: miniperl perl preplibrary $(dynamic_ext)
cd t && (rm -f perl$(EXE_EXT); $(LNS) ../perl$(EXE_EXT) perl$(EXE_EXT))
test check: test-prep
- cd t && ./perl TEST </dev/tty
+ cd t && $(LDLIBPTH) ./perl TEST </dev/tty
# For testing without a tty or controling terminal. See t/op/stat.t
test-notty: test-prep
- cd t && PERL_SKIP_TTY_TEST=1 ./perl TEST
+ cd t && PERL_SKIP_TTY_TEST=1 $(LDLIBPTH) ./perl TEST
# Can't depend on lib/Config.pm because that might be where miniperl
# is crashing.
@@ -540,14 +568,14 @@ minitest: miniperl
@echo "You may see some irrelevant test failures if you have been unable"
@echo "to build lib/Config.pm."
- cd t && (rm -f perl$(EXE_EXT); $(LNS) ../miniperl$(EXE_EXT) perl$(EXE_EXT)) \
- && ./perl TEST base/*.t comp/*.t cmd/*.t io/*.t op/*.t pragma/*.t </dev/tty
+ && $(LDLIBPTH) ./perl TEST base/*.t comp/*.t cmd/*.t io/*.t op/*.t pragma/*.t </dev/tty
# Handy way to run perlbug -ok without having to install and run the
# installed perlbug. We don't re-run the tests here - we trust the user.
# Please *don't* use this unless all tests pass.
# If you want to report test failures, just use "perlbug -Ilib".
ok: utilities
- ./perl -Ilib utils/perlbug -ok -s '(UNINSTALLED)'
+ $(LBLIBPTH) ./perl -Ilib utils/perlbug -ok -s '(UNINSTALLED)'
clist: $(c)
echo $(c) | tr ' ' '\012' >.clist