pike.git
/
src
/
Makefile.in
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/Makefile.in:1:
-
#
-
# $Id: Makefile.in,v 1.272 2001/09/18 22:59:56 hubbe Exp $
-
#
+
# This line is needed on some machines. @SET_MAKE@
-
+
# Pike embed target, either libpike.so or libpike.a.
+
PIKE_LIB=@PIKE_LIB@
+
# Don't change this line. Define EXTRALIBS before this line if you # wish to add any libraries. LIBS=@LIBS@ $(EXTRALIBS) # This is normall the install program in the source directory INSTALL=@INSTALL@ SRCDIR=@srcdir@ VPATH=@srcdir@ # These are used while compiling LIBDIR_SRC = @LIBDIR@
-
MANDIR_SRC = $(SRCDIR)/../man
+
TMP_BINDIR = @BINDIR@ TMP_BUILDDIR = @BUILDDIR@
-
TMP_DOCDIR = @DOCDIR@
+
TMP_LIBDIR = $(TMP_BUILDDIR)/lib
-
+
# This is used during autodoc extraction.
+
DOCDIR = @DOCDIR@
+
+
# These are used during binary exports and installation.
+
MANDIR_SRC = @MANDIR@
+
DOCDIR_SRC = @DOCDIR@
+
BASEDIR = @BASEDIR@
+
PACKAGINGDIR = $(SRCDIR)/../packaging
+
+
# These are used by the files generated by fixdepends.sh
+
PIKE_SRC_DIR=$(SRCDIR)
+
BUILD_BASE=
+
+
# The precompiler API level used by cmod files in the src root directory.
+
PRECOMPILER_ARGS=--api=3
+
# # RPM and package builders, listen up, because this is your only # documentation! This variable is prepended to the install path. # Please note that Pike will not work until moved into the proper # place. -Hubbe # buildroot= prefix = @prefix@
-
exec_prefix =
$(prefix)/bin
-
lib_prefix =
$(prefix)
/
lib/
pike
+
exec_prefix =
@exec_prefix@
+
bindir = @bindir@
+
lib_prefix =
@libdir@
/pike
data_prefix = @datadir@ share_prefix = $(data_prefix)/pike
-
man_prefix =
$(
prefix
)
/
man
+
man_prefix =
@mandir@
+
include_
prefix
= @includedir@
/
pike
# Arguments for test_pike.pike used by the verify targets.
-
# TESTARGS = -a
+
# TESTARGS = -
F -
a
# Arguments for install.pike used by the install targets. INSTALLARGS = --new-style # # use bison please, yacc isn't good enough. # YACC=@YACC@ YFLAGS=-d -v # # This may be -pg # PROFIL=@PROFIL@ # # OS dependant flags #
-
OSFLAGS=
+
OSFLAGS=
@OSFLAGS@
# #Enable warnings from the compiler, if wanted. # WARN=@WARN@ #add extra defines here
-
# Be sure to use -g when looking for bugs
-
DEFINES=@CPPFLAGS@
+
DEFINES=@CPPFLAGS@
-DPIKE_CORE
# -O should work with all compilers OPTIMIZE=@OPTIMIZE@ # Set to a flag for parallelizing make, e.g. -j2. It's given to make # at the level where it's most effective. MAKE_PARALLEL= # Preprocessor flags.
-
PREFLAGS=-I. -I$(SRCDIR) $(DEFINES)
+
PREFLAGS=-
DPIKE_SRC_ROOT="$(BASEDIR)" -
I. -I$(SRCDIR) $(DEFINES)
OTHERFLAGS=@CFLAGS@ $(OSFLAGS) $(OPTIMIZE) $(WARN) $(PROFIL) NOOPTFLAGS=@CFLAGS@ @CPPFLAGS@ $(OSFLAGS) $(WARN) $(PROFIL) CFLAGS=$(PREFLAGS) $(OTHERFLAGS) SMARTLINK=@SMARTLINK@ REALCC=@REALCC@ CC=@CC@
-
+
CXX=@CXX@
CPP=@CPP@
-
+
GDB=gdb
-
+
CANDLE=@CANDLE@ -nologo
+
LIGHT=@LIGHT@ -nologo
+
RCEXE=@RCEXE@
+
FALLBACK_CC=@FALLBACK_CC@ AR=@AR@ LD=@LD@
-
LDFLAGS=@LDFLAGS@
@LINKFORSHARED@
$(EXTRALDFLAGS)
+
LINKFORSHARED=@LINKFORSHARED@
+
LDFLAGS=@LDFLAGS@
$(LINKFORSHARED)
$(EXTRALDFLAGS)
+
LDSHARED=@LDSHARED@
-
DEFAULT_RUNPIKE=$(TMP_BUILDDIR)/pike -DNOT_INSTALLED -m$(TMP_BUILDDIR)/master.pike $(PIKEOPTS)
-
RUNPIKE=$(DEFAULT_RUNPIKE)
+
DEFAULT_RUNPIKE=$(TMP_BUILDDIR)/pike -DNOT_INSTALLED -
DPRECOMPILED_SEARCH_MORE -
m$(TMP_BUILDDIR)/master.pike $(PIKEOPTS)
USE_TPIKE=$(TMP_BUILDDIR)/precompile.sh
-
USE_PIKE=
@PIKE@
$(PIKEOPTS)
+
USE_PIKE=
pike
$(PIKEOPTS)
+
RUNPIKE=$(@RUNPIKE@)
RUNTPIKE=$(@RUNTPIKE@) PIKE_MODULE_RELOC=@PIKE_MODULE_RELOC@
-
+
# Set to an appropriate invocation of valgrind (or similar)
+
VALGRIND=@VALGRIND@
+
VALGRINDARGS=@VALGRINDARGS@
+
MAKE_FLAGS= # Add alloca.o if you don't have alloca() on your machine. #
-
OBJ= \
+
CORE_
OBJ= \
language.o \ security.o \ bignum.o \ pike_cpulib.o \ interpret.o \ constants.o \ cpp.o \ fdlib.o \ cyclic.o \ array.o \
pike.git/src/Makefile.in:125:
error.o \ fd_control.o \ fsort.o \ gc.o \ hashtable.o \ lex.o \ multiset.o \ signal_handler.o \ pike_search.o \ pike_types.o \
-
main
.o \
+
pike_embed
.o \
mapping.o \
-
+
block_allocator.o \
pike_memory.o \ module_support.o \ pikecode.o \ object.o \
-
+
stack_allocator.o \
opcodes.o \ operators.o \
-
+
pike_float.o \
port.o \ program.o \ rbtree.o \ rusage.o \
-
+
sprintf.o \
+
sscanf.o \
stralloc.o \ stuff.o \ threads.o \ version.o \ queue.o \ builtin.o \ iterators.o \
-
svalue.o @EXTRA_OBJS@
+
svalue.o
\
+
las.o \
+
builtin_functions.o \
+
peep.o
@EXTRA_OBJS@
-
+
OBJ=$(CORE_OBJ) @MODULE_O@
+
MODULE_REQUIREMENTS= \
-
+
headerfiles-stamp \
machine.h \ global.h \ precompile.sh-stamp \ modules/static_module_makefile \ modules/dynamic_module_makefile \
-
+
post_modules/static_module_makefile \
+
post_modules/dynamic_module_makefile \
+
propagated_variables \
$(SRCDIR)/language.h \ $(SRCDIR)/interpret_protos.h \ lib @EXTRA_MODULE_REQUIREMENTS@
-
-
DEPEND
= \
+
SRC_TARGETS
= \
$(SRCDIR)/language.c \
-
$(SRCDIR)/
builtin
.c
+
$(SRCDIR)/
language
.
h \
+
$(SRCDIR)/interpret_protos.h \
+
$(SRCDIR)/interpret_functions_fixed.h \
+
$(SRCDIR)/peep_engine.
c
\
+
$(SRCDIR)/case_info.h \
+
$(SRCDIR)/whitespace.h \
+
$(SRCDIR)/treeopt.h @PMOD_TARGETS@
-
#
-
# The following objectfiles differ between tpike & pike:
-
#
+
-
TOBJ = las_t.o builtin_functions_t.o peep_t.o module_t.o
-
POBJ = las.o builtin_functions.o peep.o module.o
-
-
+
# # User callable targets #
-
#
Since
post
_modules
might
be
static,
we
must
remake
pike
after
them
-
#
to
make
sure
they
are
linked
in.
-
all:
module_objects
hilfe
-
$(MAKE) $(MAKE_FLAGS)
$(MAKE
_
PARALLEL) post_
modules
-
$(MAKE) $(MAKE_FLAGS)
$(MAKE
_
PARALLEL)
pike
-
-
documentation
:
just-tinstall
-
@if [ -
f
"$(SRCDIR)/
.
./autodoc/Makefile
" ]; then \
-
PIKE="`pwd`/test-pike"
; \
-
export
PIKE
; \
-
(cd
$(SRCDIR)/../autodoc
&&
$(MAKE)
PIKE="$$PIKE")
||
exit 1
;
\
-
else
\
-
echo
"Autodoc
directory
not
found
.
"
; \
-
exit 1
; \
+
#
Update
the dumped modules, but only if dump
_modules
has
been
used
earlier.
+
all:
module_objects
post_module_objects
pike
-complete-stamp
+
@if
[
-f
dumpversion ]; then \
+
echo "
$(MAKE) $(MAKE_FLAGS)
dump
_
modules";
\
+
$(MAKE) $(MAKE_FLAGS)
dump
_
modules;
\
+
else
:
;
fi
+
@if [
"`find .
-
name
'*
.
fail' -print`
"
= ""
]; then
:; else
\
+
echo
; \
+
echo
"Pike compiled and linked ok, but the following file(s) "
; \
+
echo
"failed
to
compile
with
full
optimization."
;\
+
echo "This may affect performance negatively.";
\
+
find
.
-name
'*.fail'
-print | sed -e 's/\
.
fail$$//' -e 's/^/ /'
; \
+
echo
; \
fi
-
post_modules
:
pike
-
@( cd post_modules ; rm remake >/dev/null 2>&1 || : ; \
-
$(MAKE) $(MAKE_PARALLEL) $(MAKE_FLAGS) || \
-
( test -f remake && $(MAKE) $(MAKE_PARALLEL) $(MAKE_FLAGS) ) ) || exit $$?
+
doc
:
documentation
-
post_modules/modlist_headers.h
:
-
@test
-f
post
_
modules/modlist_headers.h
||
touch
post
_
modules/modlist_headers.h
+
documentation: onepage
.
xml traditional.xml modref.xml
+
cd
$(DOCDIR)
&& $(MAKE) $(MAKE
_
FLAGS)
PIKE="$(RUNPIKE)"
\
+
BUILDDIR="$(TMP
_
BUILDDIR)" $(DOCTARGET)
-
post_modules/modlist.h:
-
@test -f post_modules
/
modlist
.
h || touch post_modules/modlist.h
+
#
Creation
of
include
/.
-
post
_
modules/linker
_
options:
-
@test -f
post_modules/linker_options
||
touch
post_modules/linker_options
+
headerfiles-stamp: include machine.h global.h $(SRC
_
TARGETS) force
+
@$(MAKE) $(MAKE
_
FLAGS) headerfiles_low HEADERS="machine.h" HEADERSOURCE="`pwd`"
+
@$(MAKE) $(MAKE_FLAGS) headerfiles_low HEADERS="`cd $(SRCDIR) && echo *.h`" HEADERSOURCE="$(SRCDIR)"
+
@test -f
headerfiles-stamp
||
echo
foo > headerfiles-stamp
-
+
headerfiles_low: force
+
@for f in $(HEADERS); do \
+
if [ -h "include/$$f" ]; then continue; fi; \
+
if cmp "$(HEADERSOURCE)/$$f" "include/$$f" >/dev/null 2>&1 ; then continue; fi; \
+
rm -f include/$$f 2>/dev/null; \
+
echo "Creating include/$$f"; \
+
if ln -s "$(HEADERSOURCE)/$$f" "include/$$f" && \
+
ls -L "include/$$f" >/dev/null 2>&1; then :; else \
+
echo "Symlink failed."; \
+
cp "$(HEADERSOURCE)/$$f" "include/$$f" || exit 1; \
+
fi; \
+
echo foo > headerfiles-stamp; \
+
done
+
+
include:
+
test -d include/. || mkdir include
+
compiler-warnings : clean @echo Summarizing compiler warnings. @echo @if $(MAKE) $(MAKE_FLAGS) all 2>compiler-warnings ; then \ echo; \ echo 'Compilation warning summary:'; \ echo '----------------------------'; \ else \ echo; \ echo 'Compilation warning and error summary:'; \ echo '--------------------------------------'; \ fi @echo @cat compiler-warnings @echo @echo 'End of summary' @echo '--------------'
-
tpike-real: $(OBJ) $(TOBJ) modules/linker_options
-
-@rm -f tpike || :
-
$(LD) $(LDFLAGS) $(OBJ) $(TOBJ) `cat modules/linker_options` $(LIBS) -o tpike
-
-
# Only want tpike to exist when using $(RUNTPIKE); we don't want to
-
# require it actually being up-to-date.
+
#
-
#
If
RUNPIKE
has
been
overridden
we
don't
bother
to
build
tpike.
The
-
#
precompile.sh
script
will
then
fall
back
to
use
RUNPIKE
when
it
-
#
doesn't
find
tpike,
and
we
assume
that
RUNPIKE
doesn
't
point
to
a
-
#
pike
from
the
stone
age
.
-
$(
TMP_BUILDDIR
)/
tpike:
precompile.sh-stamp
-
@if
test
"
x$
(
RUNPIKE
)
"
=
"x$(DEFAULT
_
RUNPIKE)"
; then \
-
$(
MAKE
) $(
MAKE_FLAGS
) $(
MAKE_PARALLEL
)
tpike
-
real;
\
-
else
:;
fi
+
#
We
assume
that
Pike.framework
will
be
used
as
an
embedded
framework within an application bundle
.
+
#
if
you
want
to
install
the
framework
in
a
standard
location, like /Library/Frameworks, you will
+
#
need
to
use
install_name_tool
to
change
the
location.
don
't
blame
me,
blame dyld.
+
#
+
#
the
following
target
assumes
MacOS X 10
.
6 or higher, and is configured to use garbage collection
+
framework: OCPikeInterpreter.o
$(
OBJ
)
modules
/
linker_options
@STATIC_POST_MODULES_LINKOPTS@
+
@echo "Linking Pike
.
framework";\
+
gcc
-o
Pike OCPikeInterpreter.o $
(
OBJ
)
`cat modules/linker_options @STATIC_POST_MODULES_LINKOPTS@` -framework Cocoa \
+
-dynamiclib -Wl,-no_pie -mpic-no-dynamic -Wl,-single_module \
+
-undefined dynamic_lookup -mmacosx-version-min
=
10.4
-current
_
version 7.9 -install_name @executable_path/../Frameworks/Pike.framework/Pike \
+
-isysroot /Developer/SDKs/MacOSX10.6.sdk
+
ls -l Pike
+
if test -x Pike.framework
; then
rm -rf Pike.framework; fi
+
mkdir Pike.framework
+
mkdir Pike.framework/Versions
+
mkdir Pike.framework/Versions/7.7
+
mkdir Pike.framework/Versions/7.7/Headers
+
mkdir Pike.framework/Versions/7.7/Resources
+
mkdir Pike.framework/Versions/7.7/Resources/lib
+
mv Pike Pike.framework/Versions/7.7
+
cd Pike.framework/Versions && ln -s 7.7 Current
+
cd Pike.framework && ln -s Versions/Current/Resources Resources && ln -s Versions/Current/Headers Headers &&
\
+
ln -s Versions/Current/Pike Pike
+
cp
$(
SRCDIR
)
/*.h
Pike.framework/Versions/7.7/Headers
+
cp *.h Pike.framework/Versions/7.7/Headers
+
cp
$(
PACKAGINGDIR)/macosx/framework
_
Info.plist
Pike.framework/Versions/7.7/Resources/Info.plist
+
MACHINE=`uname -m | tr " " "_"` && mkdir Pike.framework/Versions/7.7/Resources/$$MACHINE && cp -rf lib/* Pike.framework/Versions/7.7/Resources/$$MACHINE
+
cp -rf
$(
SRCDIR
)
/../lib/*
Pike.framework/Versions/7.7/Resources/lib
+
cp master.pike Pike.framework/Versions/7.7/Resources/lib
+
cd Pike.framework && find .
-
type
f -name '*.in' -exec rm -f {}
\
;
+
cd
Pike.framework && find . -type d -name CVS -prune -exec rm -rf {} \
;
-
#
Make
$(
POBJ
)
s
with
a
recursive
make
instead
of
depending
on
them
.
-
#
This
way,
we
make
sure
that
all
other
objects
shared
with
tpike
are
-
#
up
-
to-date
first
.
So
if
the
$(
POBJ
)
s,
which
depend
on
tpike,
trigs
-
#
the
recursive
make
of
tpike-real
above,
that
one
will
never
start
to
-
#
make
the
$(OBJ)
s
concurrently
with
this
one.
stamp
-
tpike
-
predep
-
#
records
the
$(
POBJ
)
dependencies
without
tpike
.
-
pike: $(OBJ)
master-stamp pike
.
syms
modules/linker_options
stamp
-
tpike
-
predep
post
_modules/linker_
options
-
$(MAKE) $(MAKE_FLAGS) $(MAKE_PARALLEL)
$(POBJ)
-
-@if
[
-f
pike.
old
]
;
then
rm
-
f
pike.
old
||
:
;
else
:
;
fi
+
libpike.so:
$(OBJ)
modules/linker_options @STATIC_POST_MODULES_LINKOPTS@
+
@echo "Linking libpike.so";\
+
if
$(
TMP_BINDIR
)
/smartlink
"$(LDSHARED)"
$(LDFLAGS)
-o
libpike.@SO@
\
+
$(OBJ) `cat modules/linker_options @STATIC_POST_MODULES_LINKOPTS@` \
+
$(LIBS); then \
+
if test "@SO@" != so ; then mv "module
.
@SO@" module.so ; \
+
else
:;
fi
;\
+
else \
+
echo "Linking failed:" >&2; \
+
echo $(TMP_BINDIR)/smartlink "$(LDSHARED)" $(LDFLAGS)
-
o
libpike
.
@SO@
\
+
$(
OBJ
)
`cat
modules/linker_options
@STATIC_POST_MODULES_LINKOPTS@`
\
+
$(LIBS) >&2 ;\
+
exit
1;
\
+
fi
+
+
#
FIXME:
Static
linked version; this doesn't work yet!
+
# Since we need to split linker_options into archives and options.
+
libpike.a:
$(OBJ)
modules/linker_options
@STATIC_POST_MODULES_LINKOPTS@
+
-
rm
-
f libpike.a
+
$(
AR
)
cq
libpike.a
$(OBJ)
+
-@RANLIB@ libpike.a
+
+
#
tpike
is only used when dynamic modules aren't
.
It's a pike with no
+
# post modules linked in which is used during building of the post
+
# modules.
+
tpike-real
:
main.o
$(
CORE_
OBJ)
tmodule
.
o
modules/linker_options
+
-
@rm
-
f
tpike tpike.exe
+
$(LD) $(LDFLAGS) main.o $(CORE
_
OBJ) tmodule.o \
+
`cat
modules/linker_
options` \
+
$(
LIBS) -o tpike@EXEEXT@
+
+
# Only want tpike to exist for use with $(RUNPIKE) in the modules. We
+
# don't want to require it actually being up-to-date.
+
tpike@EXEEXT@: master-stamp
+
$(
MAKE) $(MAKE_FLAGS) $(MAKE_PARALLEL)
tpike-real
+
+
#
If
we
build
without
dynamic
modules
then
tpike
is
built
first with
+
# all modules under modules/ linked into it, then tpike is used for
+
# post_modules source targets, and then
pike
is linked with both
+
# modules/ and post_modules/
.
+
#
+
#
If
we
build with dynamic modules
then
pike
is built first with the
+
# few always
-
static
modules under modules/, then the dynamic modules
+
# under modules/ are built, then
pike
is used for post_modules source
+
# targets, and then all modules under post_modules/ are built
+
# dynamically
.
+
#
+
#
This
means
that
a
post_module can't be always-static and can't add
+
# stuff to the pike linkage using LINKER_OPTIONS.
+
#
+
# @LDSHARED_BASE_REQS@ expands to pike.lib if dynamic DLL modules are
+
# used on NT.
+
pike@EXEEXT@ pike.lib
:
main.o
$(OBJ) master-stamp pike.syms modules/linker_options @STATIC_POST_MODULES_LINKOPTS@ @PIKE_ICON_RES@
-@if [ -f pike.old.exe ] ; then rm -f pike.old.exe || : ; else : ; fi
-
+
-@if [ -f pike.old ] ; then rm -f pike.old || : ; else : ; fi
+
-@if [ -f pike.exe ] ; then mv pike.exe pike.old.exe || : ; else : ; fi
-@if [ -f pike ] ; then mv pike pike.old || : ; else : ; fi
-
$(LD) $(LDFLAGS) $(OBJ)
$(POBJ)
`cat modules/linker_options
post
_
modules/linker
_
options`
$(LIBS) -o
pike
+
$(LD) $(LDFLAGS)
main.o
$(OBJ)
\
+
`cat modules/linker_options
@STATIC
_
POST
_
MODULES_LINKOPTS@`
\
+
$(LIBS)
@PIKE_ICON_RES@
-o
pike@EXEEXT@
+
@MT_FIX_PIKE_EXE@
+
# The dumped modules are removed whenever Pike is relinked since some
+
# of the bytecode methods (e.g. ia32) store absolute addresses to
+
# global structs. That should probably be fixed in them so that dumped
+
# modules aren't link order dependent.
+
@if [ -f dumpversion ]; then \
+
echo "$(MAKE) $(MAKE_FLAGS) delete_dumped_modules"; \
+
$(MAKE) $(MAKE_FLAGS) delete_dumped_modules; \
+
else :; fi
-
+
# gcov
+
gcov:
+
@for f in `cd "$(SRCDIR)" && find . -type f -name '*.c' -print`; do \
+
if test -f `echo $$f | sed -e 's/\.$$/.bb/'`; then \
+
for gf in `gcov $$f | sed -e 's/Creating \(.*\)\.gcov.*/\1.gcov/p' -ed`; do \
+
echo "Generating $$f-$$gf."; \
+
test -f "$$f-$$gf" && rm -f "$$f-$$gf"; \
+
mv "$$gf" "$$f-$$gf"; \
+
done; \
+
else \
+
:; \
+
fi; \
+
done
+
@echo
+
@echo "Summary:"
+
@for f in `find . -name '*.gcov' -print`; do \
+
grep '######' $$f | \
+
grep -v fatal | \
+
grep -v -i inline | \
+
grep -v PIKE_MODULE_EXIT | \
+
egrep -v '######[ ]*{$$' | \
+
egrep -v '######[ ]*}$$' | \
+
wc -l | sed -e "s|^|$$f:|" -e 's/:[ ]*/:/' | \
+
grep -v ':0'; \
+
done | sort -n -t: -k2
+
# purify
-
pure: $(OBJ)
$(POBJ)
master-stamp module_objects
-
-@mv
pike
pike.
old
2>/dev/null || true
-
$(SMARTLINK) purify -max-threads=128 -thread_stack_change=8192 -free-queue-length=500 -inuse-at-exit=yes -chain-length=12 $(REALCC) $(LDFLAGS) $(OBJ)
$(POBJ)
`cat modules/linker_options
post
_
modules/linker
_
options`
$(LIBS) -o
pike
+
pure: $(OBJ) master-stamp module_objects
+
-@mv
pike@EXEEXT@
pike.
old@EXEEXT@
2>/dev/null || true
+
$(SMARTLINK) purify -max-threads=128 -thread_stack_change=8192 -free-queue-length=500 -inuse-at-exit=yes -chain-length=12 $(REALCC) $(LDFLAGS) $(OBJ) `cat modules/linker_options
@STATIC
_
POST
_
MODULES_LINKOPTS@`
$(LIBS) -o
pike@EXEEXT@
# purecov
-
cover: $(OBJ)
$(POBJ)
master-stamp module_objects
-
-@mv
pike
pike.
old
2>/dev/null || true
-
$(SMARTLINK) purecov purify -max-threads=128 -thread_stack_change=8192 -free-queue-length=500 -inuse-at-exit=yes -chain-length=12 $(REALCC) $(LDFLAGS) $(OBJ)
$(POBJ)
`cat modules/linker_options
post
_
modules/linker
_
options`
$(LIBS) -o
pike
+
cover: $(OBJ) master-stamp module_objects
+
-@mv
pike@EXEEXT@
pike.
old@EXEEXT@
2>/dev/null || true
+
$(SMARTLINK) purecov purify -max-threads=128 -thread_stack_change=8192 -free-queue-length=500 -inuse-at-exit=yes -chain-length=12 $(REALCC) $(LDFLAGS) $(OBJ) `cat modules/linker_options
@STATIC
_
POST
_
MODULES_LINKOPTS@`
$(LIBS) -o
pike@EXEEXT@
# quantify
-
quant: $(OBJ)
$(POBJ)
master-stamp module_objects
-
-@mv
pike
pike.
old
2>/dev/null || true
-
$(SMARTLINK) quantify $(REALCC) $(LDFLAGS) $(OBJ)
$(POBJ)
`cat modules/linker_options
post
_
modules/linker
_
options`
$(LIBS) -o
pike
+
quant: $(OBJ) master-stamp module_objects
+
-@mv
pike@EXEEXT@
pike.
old@EXEEXT@
2>/dev/null || true
+
$(SMARTLINK) quantify $(REALCC) $(LDFLAGS) $(OBJ) `cat modules/linker_options
@STATIC
_
POST
_
MODULES_LINKOPTS@`
$(LIBS) -o
pike@EXEEXT@
-
atom: pike
+
splint:
+
splint $(PREFLAGS) -warnposix +charintliteral -realcompare -boolops -predboolint $(FILE)
+
+
atom: pike
-complete-stamp
atom pike -tool atom -env threads -g -v `find lib/modules -type f -name '*.so' -print | sed -e 's/^/-incobj /g'` mv pike pike.pre-atom mv pike.third.threads pike @echo Make sure you have '.' in your LD_LIBRARY_PATH.
-
pixie: pike
+
pixie: pike
-complete-stamp
atom pike -tool pixie -env threads -g -v `find lib/modules -type f -name '*.so' -print | sed -e 's/^/-incobj /g'` mv pike pike.pre-pixie mv pike.pixie.threads pixie @echo Make sure you have '.' in your LD_LIBRARY_PATH.
-
hilfe
:
$(TMP_BINDIR)/hilfe
Makefile
-
@echo
"Creating
.
/hilfe..."; \
-
if [
"$(
exec_prefix
)"
!= "/usr/local/bin" -a
\
-
"
$(exec_prefix)"
!
= "
/usr/local/bin/" ]
;
then
\
-
( sed -e 's!/usr/local/bin!
$(
exec_prefix
)
!'
<$(TMP_BINDIR)/hilfe
\
-
>./hilfe && chmod 755 ./hilfe) || exit 1 ;
\
-
else
\
-
$(
INSTALL) $(TMP
_
BINDIR
)/
hilfe `pwd`/hilfe || exit 1; \
-
fi
-
@echo
"
Done."
+
dump_modules
:
pike-complete-stamp
master-stamp
+
-rm
dumpmodule
.
log
+
args=
"$(
DUMPARGS
)"
;
\
+
args=$${args:-
"
--log-file
--update-only
=
dumpversion
--report-failed
"
}
; \
+
$(
RUNPIKE
)
-x
dump
$$args
\
+
--recursive
--target-dir=lib
"
$(
LIBDIR
_
SRC
)/
modules
"
-
+
force_dump_modules:
+
-rm dumpversion 2>/dev/null
+
$(MAKE) $(MAKE_FLAGS) dump_modules
-
.SUFFIXES
:
.c
.h
.o
.cmod
.pp
.pph
.protos
.xml
.
h_src
+
delete_dumped_modules
:
+
-find lib -type f -name \*
.
o
| xargs rm -f
-
.c.xml
:
pike $(TMP
_
BINDIR)/autodoc.pike
-
@$(RUNPIKE)
$(TMP_BINDIR)/autodoc.pike
"$<"
>
"$@"
+
undump_modules
:
delete
_
dumped_modules
+
-rm
dumpversion
2
>
/dev/null
-
+
.SUFFIXES:
+
.SUFFIXES: .c .h .o .m .mmod .cmod .symlist .pp .pph .protos .h_src .wxs .wixobj .msi .msm
+
.c.pp: $(CPP) $(PREFLAGS) -DPMOD_EXPORT=PMOD_EXPORT \ -DPMOD_PROTO=PMOD_PROTO "$<" >"$@"
-
.c.protos:
-
./precompile.sh fake_dynamic_load.pike >"$@" --cpp --protos \
+
.c.protos:
precompile.sh-stamp
+
./precompile.sh
--cache
fake_dynamic_load.pike >"$@" --cpp --protos \
$(CPP) $(PREFLAGS) -DPMOD_EXPORT=PMOD_EXPORT \ -DPMOD_PROTO=PMOD_PROTO -DPIKE_PRECOMPILER=1 "$<" || \ { rm "$@"; exit 1; } .h.pph: $(CPP) $(PREFLAGS) -DPMOD_EXPORT=PMOD_EXPORT \ -DPMOD_PROTO=PMOD_PROTO "$<" >"$@" # Several optimizers have problems with interpret.c # First try compiling with optimization and if that doesn't work, without. # GCC dumps core on some files @ OSF1 # This kluge should work around that...
-
# FIXME: Make this a configure option
+
.c.o:
-
@echo "Compiling $<" ;\
+
@echo "Compiling
`echo '
$<
' | sed -e 's|^$(PIKE_SRC_DIR)/||'`
" ;
\
rm -f $@.fail >/dev/null 2>&1; \
-
if $(CC) $(CFLAGS) -c $< -o $@ ; then : ; else \
+
if $(CC) $(CFLAGS)
$$EXTRAFLAGS
-c $< -o $@ ; then : ; else \
+
status=$$?; \
+
if test x"@noopt_retry@" = xyes ; then \
echo "WARNING: Compiler failure! Trying without optimization!" >&2;\
-
echo "$(CC) $(PREFLAGS) $(
NOOPTFLAGS
) -c $< -o $@" >
&2
;\
-
echo
"
$(CC) $(PREFLAGS) $(
CFLAGS
) -c $< -o $@
"
>$@.fail
;\
-
NO_ULIMIT
=
yes
; \
-
export
NO_ULIMIT;
\
-
if
$(CC) $(PREFLAGS) $(NOOPTFLAGS) -c $< -o $@
;
then :
;
else
\
-
exit
$$?
; \
+
echo "$(CC) $(PREFLAGS) $(
CFLAGS
)
$$EXTRAFLAGS
-c $< -o $@" >
$@.fail
;\
+
if NO_ULIMIT=yes
$(CC) $(PREFLAGS) $(
NOOPTFLAGS
)
$$EXTRAFLAGS
-c $< -o $@
;
then :
;
else
\
+
status
=
$$?
; \
+
echo "Compilation command was:" >&2
;\
+
echo "
$(CC) $(PREFLAGS) $(NOOPTFLAGS)
$$EXTRAFLAGS
-c $< -o $@
"
>&2
;\
+
exit
$$status
; \
fi; \
-
+
else \
+
echo "Compilation command was:" >&2;\
+
echo "$(CC) $(PREFLAGS) $(CFLAGS) $$EXTRAFLAGS -c $< -o $@" >&2 ;\
+
exit $$status; \
+
fi; \
fi
-
+
.m.o:
+
@echo "Compiling `echo '$<' | sed -e 's|^$(PIKE_SRC_DIR)/||'`" ; \
+
rm -f $@.fail >/dev/null 2>&1; \
+
if $(CC) $(CFLAGS) $$EXTRAFLAGS -fobjc-exceptions -fobjc-gc -c $< -o $@ ; then : ; else \
+
status=$$?; \
+
if test x"@noopt_retry@" = xyes ; then \
+
echo "WARNING: Compiler failure! Trying without optimization!" >&2;\
+
echo "$(CC) $(PREFLAGS) $(CFLAGS) $$EXTRAFLAGS -fobjc-exceptions -c $< -o $@" >$@.fail ;\
+
if NO_ULIMIT=yes $(CC) $(PREFLAGS) $(NOOPTFLAGS) $$EXTRAFLAGS -c $< -o $@ ; then : ; else \
+
status=$$?; \
+
echo "Compilation command was:" >&2;\
+
echo "$(CC) $(PREFLAGS) $(NOOPTFLAGS) $$EXTRAFLAGS -fobjc-exceptions -c $< -o $@" >&2 ;\
+
exit $$status; \
+
fi; \
+
else \
+
echo "Compilation command was:" >&2;\
+
echo "$(CC) $(PREFLAGS) $(CFLAGS) $$EXTRAFLAGS -fobjc-exceptions -c $< -o $@" >&2 ;\
+
exit $$status; \
+
fi; \
+
fi
+
# # Please note that this must be accompanied by a dependency rule as # The .c file will not be created in the SOURCE directory otherwise. # -Hubbe #
-
.cmod.c:
-
./precompile.sh precompile.pike >"$@" "$<" || { rm "$@"; exit 1; }
+
.cmod.c:
precompile.sh-stamp $(TMP_BINDIR)/precompile.pike
+
./precompile.sh
--cache
precompile.pike
$(PRECOMPILER_ARGS)
>"$@" "$<" || { rm "$@"; exit 1; }
-
+
# The same applies to this.
+
.symlist.c: precompile.sh-stamp $(SRCDIR)/mklibpike.pike
+
./precompile.sh --cache $(SRCDIR)/mklibpike.pike -I. -I "$(SRCDIR)" -S "$<" -o "$@" || { rm "$@"; exit 1; }
+
# This rule is used for some header files that are generated from the # source, to avoid excessive rebuilding when the source change in ways # that doesn't affect the header. # # It can cause a .h target to be out-of-date repeatedly, but since it # runs fast that's not an issue. This technique only works well in # make's that stat the target again after the rule has run and # recalculate the dependencies from that. Most make's seems to behave # like that. .h_src.h: @if test -f "$@"; then \
-
cmp -s "$<" "$@"; \
+
test -f "$@.nolines" || \
+
sed -e '/^[ \t]*$$/d;/^[ \t]*#[ \t]*line.*$$/d' < "$@" > "$@.nolines" && \
+
sed -e '/^[ \t]*$$/d;/^[ \t]*#[ \t]*line.*$$/d' < "$<" > "$<.nolines" && \
+
cmp -s "$<
.nolines
" "$@
.nolines
"; \
else \ false; \ fi || ( \
-
+
rm -f "$@.nolines" 2>/dev/null; \
echo "cp $< $@"; \ cp "$<" "$@"; \ )
-
+
.wxs.wixobj:
+
@if test -f "$@"; then rm -f "$@"; else :; fi # Paranoia
+
$(CANDLE) "$<" -out "$@" || { rm -f "$@"; exit 1; }
+
+
.wixobj.msm:
+
@test -d cab_cache || mkdir cab_cache
+
@if test -f "$@"; then rm -f "$@"; else :; fi # Paranoia
+
$(LIGHT) "$<" -cc cab_cache -o "$@" || { rm -f "$@"; exit 1; }
+
+
.wixobj.msi:
+
@test -d cab_cache || mkdir cab_cache
+
@if test -f "$@"; then rm -f "$@"; else :; fi # Paranoia
+
$(LIGHT) "$<" -cc cab_cache -o "$@" || { rm -f "$@"; exit 1; }
+
+
Pike_banner.bmp: $(SRCDIR)/make_banner.pike $(SRCDIR)/../refdoc/src_images/pike_logo.gif
+
$(RUNPIKE) $(SRCDIR)/make_banner.pike $(SRCDIR)/../refdoc/src_images/pike_logo.gif >Pike_banner.bmp || rm Pike_banner.bmp
+
+
UpFldrBtn.ibd: $(PACKAGINGDIR)/windows/UpFldrBtn.ibd
+
cp "$<" "$@"
+
+
NewFldrBtn.ibd: $(PACKAGINGDIR)/windows/NewFldrBtn.ibd
+
cp "$<" "$@"
+
+
PikeWin32Installer.vbs: $(PACKAGINGDIR)/windows/installer.vbs
+
@if [ -f "$@" ] && cmp "$<" "$@" >/dev/null; then \
+
echo "PikeWin32Installer.vbs is up to date."; \
+
else \
+
echo cp '"'"$<"'"' '"'"$@"'"'; \
+
cp "$<" "$@"; \
+
fi
+
+
Pike_module.msm: PikeWin32Installer.vbs
+
+
Pike_module.wxs: pike-complete-stamp $(TMP_BINDIR)/install.pike Makefile
+
@no_autodoc="--no-autodoc"; \
+
if [ -f autodoc.xml ]; then no_autodoc=""; fi; \
+
$(RUNPIKE) $(TMP_BINDIR)/install.pike --wix-module $$no_autodoc \
+
@INSTALL_EXPORT_ARGS@ \
+
exec_prefix="$(bindir)" lib_prefix="$(lib_prefix)" \
+
TMP_LIBDIR="$(TMP_LIBDIR)" LIBDIR_SRC="$(LIBDIR_SRC)" \
+
SRCDIR="$(SRCDIR)" prefix="$(prefix)" DOCDIR_SRC="$(DOCDIR_SRC)" \
+
MANDIR_SRC="$(MANDIR_SRC)" \
+
BASEDIR="$(BASEDIR)" man_prefix="$(man_prefix)" \
+
cflags="@DYNAMIC_MODULE_FLAGS@" ldflags="" \
+
pike_name=$(pike_name) PIKE_MODULE_RELOC="$(PIKE_MODULE_RELOC)"
+
+
Pike.wxs: $(TMP_BINDIR)/install.pike Makefile
+
@no_autodoc="--no-autodoc"; \
+
if [ -f autodoc.xml ]; then no_autodoc=""; fi; \
+
$(RUNPIKE) $(TMP_BINDIR)/install.pike --wix $$no_autodoc \
+
@INSTALL_EXPORT_ARGS@ \
+
exec_prefix="$(bindir)" lib_prefix="$(lib_prefix)" \
+
TMP_LIBDIR="$(TMP_LIBDIR)" LIBDIR_SRC="$(LIBDIR_SRC)" \
+
SRCDIR="$(SRCDIR)" prefix="$(prefix)" DOCDIR_SRC="$(DOCDIR_SRC)" \
+
MANDIR_SRC="$(MANDIR_SRC)" \
+
BASEDIR="$(BASEDIR)" man_prefix="$(man_prefix)" \
+
cflags="@DYNAMIC_MODULE_FLAGS@" ldflags="" \
+
pike_name=$(pike_name) PIKE_MODULE_RELOC="$(PIKE_MODULE_RELOC)"
+
+
Pike.msi: Pike.wixobj Pike_ui.wixobj Pike_module.msm Pike_banner.bmp UpFldrBtn.ibd NewFldrBtn.ibd
+
@test -d cab_cache || mkdir cab_cache
+
@if test -f Pike.msi; then rm Pike.msi; else :; fi # Paranoia
+
$(LIGHT) Pike.wixobj Pike_ui.wixobj -o Pike.msi -cc cab_cache
+
+
wix: Pike.msi
+
+
wix_export: Pike.msi
+
VER=`$(RUNPIKE) --dumpversion` ;\
+
cp Pike.msi $(BASEDIR)/Pike-v$(VER)-win32.msi ;\
+
cp config.info $(BASEDIR)/Pike-v$(VER)-win32.info
+
force : @:
-
+
pike.ico: $(PACKAGINGDIR)/windows/pike.ico
+
cp "$<" $@
+
+
pike_icon.res: pike.ico
+
echo 'pike ICON pike.ico' > pike_icon.rc
+
$(RCEXE) /fo $@ pike_icon.rc
+
# install
-
install: pike
hilfe pike
-
module aclocal
-
@$(RUNPIKE) $(TMP_BINDIR)/install.pike
$(INSTALLARGS)
\
-
exec_prefix="$(
exec_prefix
)" lib_prefix="$(lib_prefix)" \
+
install: pike-
complete-stamp
+
@$(RUNPIKE) $(TMP_BINDIR)/install.pike \
+
exec_prefix="$(
bindir
)" lib_prefix="$(lib_prefix)" \
+
include_prefix="$(include_prefix)" \
TMP_LIBDIR="$(TMP_LIBDIR)" LIBDIR_SRC="$(LIBDIR_SRC)" \
-
SRCDIR="$(SRCDIR)" prefix="$(prefix)" MANDIR_SRC="$(MANDIR_SRC)" \
+
SRCDIR="$(SRCDIR)" prefix="$(prefix)"
DOCDIR_SRC="$(DOCDIR_SRC)" \
+
MANDIR_SRC="$(MANDIR_SRC)" \
man_prefix="$(man_prefix)" pike_name=$(pike_name) \
-
fakeroot="$(buildroot)" PIKE_MODULE_RELOC="$(PIKE_MODULE_RELOC)"
+
fakeroot="$(buildroot)" PIKE_MODULE_RELOC="$(PIKE_MODULE_RELOC)"
\
+
cflags="@DYNAMIC_MODULE_FLAGS@" ldflags="" \
+
$(INSTALLARGS)
-
install_interactive: pike
hilfe pike
-
module aclocal
+
install_interactive: pike-
complete-stamp
@$(RUNPIKE) $(TMP_BINDIR)/install.pike --interactive \
-
exec_prefix="$(
exec_prefix
)" prefix=$(prefix) \
+
exec_prefix="$(
bindir
)" prefix=$(prefix) \
TMP_LIBDIR="$(TMP_LIBDIR)" LIBDIR_SRC="$(LIBDIR_SRC)" \
-
SRCDIR="$(SRCDIR)" MANDIR_SRC="$(MANDIR_SRC)" \
+
SRCDIR="$(SRCDIR)"
DOCDIR_SRC="$(DOCDIR_SRC)" \
+
MANDIR_SRC="$(MANDIR_SRC)" \
+
cflags="@DYNAMIC_MODULE_FLAGS@" ldflags="" \
fakeroot="$(buildroot)" PIKE_MODULE_RELOC="$(PIKE_MODULE_RELOC)" # tidy up a bit tidy:
-
-rm -f
*
.
fail
*
.
o
*.
obj
*.pp *.protos core y.output y.tab.c y.tab.h
-
-rm -f
$(TMP_BINDIR)/
core *.o *.i *.i~ testsuite
dynloadtest
*
+
-rm -f
a
.
out
a.out.
* *.
fail
*.pp *.protos core y.output y.tab.c y.tab.h
+
-rm -f core
core.
*
*
.o *.
obj *.
i *.i~
dynloadtest* cfl.*
+
-rm -f conftest.* hdrlist.h a.out.exe
+
-rm
testsuite
testsuite.tmp testsuite_test.pike testsuite_test_dir.pmod
+
-rm -f
*
.wixobj *.wxs Pike_banner.bmp UpFldrBtn.ibd NewFldrBtn.ibd PikeWin32Installer.vbs
+
-rm -f pike.ico pike_icon.rc pike_icon.res
+
-find lib -type f -name \*.o -o -name \*.obj | xargs rm -f
# make clean
-
clean: tidy
-
-( cd
modules
;
$(MAKE)
$(MAKE_FLAGS)
clean
)
-
-( cd
post
_
modules
;
$(MAKE)
$(MAKE_FLAGS)
clean
)
-
-rm -rf test-install test-pike
-
-rm -f TAGS tags yacc.acts yacc.debug yacc.tmp *.debug.log a.out
-
-rm -f
hilfe
master.pike compiler-warnings
-
-rm -f
tpike
stamp
-
tpike
-
predep
import-stamp modules-stamp
master
-stamp
+
clean
_here
: tidy
doc_clean
+
-( cd
tlib
;
find
.
-name
testsuite | xargs rm
)
+
-( cd
extra
_
tests
;
find
.
-name
testsuite | xargs rm
)
+
-rm -
f confdefs.h
+
-rm -
rf test-install test-pike
tpike tpike.* *.pdb
+
-rm -f TAGS tags yacc.acts yacc.debug yacc.tmp *.debug.log a.out
pike.tmp
+
-rm -f master.pike compiler-warnings
dumpmodule.log
+
-rm -f
interpreter_debug.h
lexer?.h
+
-
rm
-
f
import-stamp
master-stamp headerfiles-stamp
+
-rm -f static-
modules-stamp
dynamic
-
modules-
stamp
post-modules-stamp
+
-rm -f post-module-pike-stamp pike-complete-stamp
-rm -rf lib/modules/* # -rm -f lib/master.pike
-
+
clean: clean_here
+
-( cd modules; $(MAKE) $(MAKE_FLAGS) clean )
+
-( cd post_modules; $(MAKE) $(MAKE_FLAGS) clean )
+
+
clean_pike:
+
-rm -f pike pike.lib pike.exe pike.exe.manifest pike.exp
+
+
# Clean up everything that needs to go if the configure args change.
+
config_change_clean: clean clean_pike
+
# make _really_ clean
-
spotless: clean
+
spotless: clean
_here clean_pike
+
-( cd modules; $(MAKE) $(MAKE_FLAGS) spotless )
+
-( cd post_modules; $(MAKE) $(MAKE_FLAGS) spotless )
-(cd $(SRCDIR); find . -type f -name '*.h.in' -print) | \ sed -e 's/\.in$$//' | xargs rm -f
-
find .
-
type
f
'(' -name '
Makefile
'
-o -name '
*
~'
-o
-name
'
.
*~' -o \
-
-
name
core
-
o
-name '
.
nfs*' -name '#*#' -o -name '.
pure
'
-o \
-
-name 'conftest.*' -o -name '
stamp-h
' ')' -exec rm -f \{\} \;
-
-rm -f lexical.c mon.out *.ln
config.status
-
-rm -f
$(TMP_BINDIR)/*~
$(TMP_BINDIR)/\#*\#
-
-rm -f
pike pike.old l.outa*
-
-rm -f
modules/
*
/testsuite
-
-rm -f modules/static_module_makefile modules/dynamic_module_makefile
-
-rm -f precompile.sh precompile.sh-stamp
-
-rm -rf lib
+
-rm
-f Makefile
config.
*
make_variables
specs
pike
.
syms
+
-
rm
-
f
.pure stamp-h
+
-rm -f lexical.c mon.out *.ln
+
-rm -f
pike
pike.exe
pike
.old
pike.old
.exe
l.outa*
num_files_to_install
+
-rm -f *
.msm
*.msi
+
-rm -f precompile.sh precompile.sh-stamp
smartlink
+
-rm -rf
tlib extra_tests
lib
precompile
distclean: spotless
-
find . -type f '(' -name 'config.log' -o -name 'config.status' -o \
-
-name 'config.cache' ')' -exec rm -f \{\} \;
+
-
cvsclean
: distclean
+
# FIXME
:
Use .gitignore instead.
+
gitclean:
distclean
( for d in `cd $(SRCDIR) && find . -type d -print`; do \ if test -f "$(SRCDIR)/$$d/.cvsignore" ; then \ (cd "$$d" && rm -f `cat "$(SRCDIR)/$$d/.cvsignore"`); \ (cd "$(SRCDIR)/$$d" && rm -f `cat "$(SRCDIR)/$$d/.cvsignore"`); \ else :; fi; \ done)
-
+
cvsclean: gitclean
+
# create tags tags: ctags *.c TAGS: etags -t *.h *.c # verify / debug
-
module_
testsuites:
+
testsuites:
+
$(MAKE) $(MAKE_FLAGS) testsuite
( cd modules && $(MAKE) $(MAKE_FLAGS) testsuites ) ( cd post_modules && $(MAKE) $(MAKE_FLAGS) testsuites )
-
+
( cd $(TMP_BUILDDIR) && $(TMP_BINDIR)/mklibtests.sh \
+
--srcdir=$(LIBDIR_SRC) \
+
--destdir=tlib --bindir=$(TMP_BINDIR) )
+
if test -d "$(BASEDIR)/extra_tests" ; then \
+
(cd "$(TMP_BUILDDIR)" && $(TMP_BINDIR)/mklibtests.sh \
+
--srcdir="$(BASEDIR)/extra_tests" \
+
--destdir=extra_tests --bindir=$(TMP_BINDIR) ) ; fi;
-
just_verify:
module_
testsuites
testsuite
master-stamp
-
if test "
$
(TESTARGS)" =
""
; then args="-a" ; else args="$(TESTARGS)" ; fi; \
-
$(RUNPIKE)
$(TMP_BINDIR)/
test_pike
.pike
$$args
+
just_verify: testsuites master-stamp
+
if test "
x$
(TESTARGS)" =
x
; then args="-
F -
a
-v
" ;
\
+
else args="$(TESTARGS)" ; fi; \
+
$(RUNPIKE)
-x
test_pike $$args
-
+
valgrind_just_verify: testsuites master-stamp
+
if test "x$(TESTARGS)" = x ; then args="-a -v" ; \
+
else args="$(TESTARGS)" ; fi; \
+
$(VALGRIND) $(VALGRINDARGS) $(RUNPIKE) -x test_pike --subproc-start="$(VALGRIND) $(VALGRINDARGS)" $$args
+
+
dtrace_probes.h: $(SRCDIR)/dtrace/dtrace_probes.d
+
dtrace -h -s "$(SRCDIR)/dtrace/dtrace_probes.d" -o "$(TMP_BUILDDIR)/dtrace_probes.h"
+
+
# Testsuite for dynamic loading debugging test_dlopen: dynloadtest.sh sh ./dynloadtest.sh dynloadtest.sh: $(SRCDIR)/test_dynamic_loading.in
-
m4 "$
<
" >"$@"
+
m4 "$
(SRCDIR)/test_dynamic_loading.in
" >"$@"
dynloadtest.c: dynamic_load.c
-
dynloadtest
: dynloadtest.o @EXTRA_OBJS@ fdlib.o port.o
-
$(LD) $(LDFLAGS) dynloadtest.o @EXTRA_OBJS@ fdlib.o port.o $(LIBS) -o
dynloadtest
+
dynloadtest@EXEEXT@
: dynloadtest.o @EXTRA_OBJS@ fdlib.o port.o
+
$(LD) $(LDFLAGS) dynloadtest.o @EXTRA_OBJS@ fdlib.o port.o $(LIBS) -o
$@
-
tinstall:
aclocal
master-stamp
aclocal
+
tinstall: master-stamp
-rm -rf test-install
-
$(RUNPIKE) $(TMP_BINDIR)/install.pike
$(INSTALLARGS)
pike_name="test
-
pike"
lib_prefix="$(lib_prefix)" TMP_LIBDIR="$(TMP_LIBDIR)" LIBDIR_SRC="$(LIBDIR_SRC)" SRCDIR="$(SRCDIR)"
prefix
="
./test-install
" MANDIR_SRC="$(MANDIR_SRC)" man_prefix="$(man_prefix)" fakeroot="$(buildroot)" PIKE_MODULE_RELOC="$(PIKE_MODULE_RELOC)"
+
$(RUNPIKE) $(TMP_BINDIR)/install.pike
\
+
`test
-
f
autodoc.xml || echo --no-autodoc` \
+
lib_prefix="$(lib_prefix)"
\
+
TMP_LIBDIR="$(TMP_LIBDIR)" LIBDIR_SRC="$(LIBDIR_SRC)"
\
+
SRCDIR="$(SRCDIR)"
DOCDIR_SRC
="
$(DOCDIR_SRC)
"
\
+
MANDIR_SRC="$(MANDIR_SRC)"
\
+
man_prefix="$(man_prefix)" fakeroot="$(buildroot)"
\
+
PIKE_MODULE_RELOC="$(PIKE_MODULE_RELOC)"
pike_name="test-pike" \
+
cflags="@DYNAMIC_MODULE_FLAGS@" ldflags="" \
+
prefix="./test-install" $(INSTALLARGS)
-
just-tinstall:
aclocal
master-stamp
aclocal
-
$(RUNPIKE) $(TMP_BINDIR)/install.pike
$(INSTALLARGS)
pike_name="test
-
pike"
lib_prefix="$(lib_prefix)" TMP_LIBDIR="$(TMP_LIBDIR)" LIBDIR_SRC="$(LIBDIR_SRC)" SRCDIR="$(SRCDIR)"
prefix
="
./test-install
" MANDIR_SRC="$(MANDIR_SRC)" man_prefix="$(man_prefix)" fakeroot="$(buildroot)" PIKE_MODULE_RELOC="$(PIKE_MODULE_RELOC)"
+
just-tinstall: master-stamp
+
$(RUNPIKE) $(TMP_BINDIR)/install.pike
\
+
`test
-
f
autodoc.xml || echo --no-autodoc` \
+
lib_prefix="$(lib_prefix)"
\
+
TMP_LIBDIR="$(TMP_LIBDIR)" LIBDIR_SRC="$(LIBDIR_SRC)"
\
+
SRCDIR="$(SRCDIR)"
DOCDIR_SRC
="
$(DOCDIR_SRC)
"
\
+
MANDIR_SRC="$(MANDIR_SRC)"
\
+
man_prefix="$(man_prefix)" fakeroot="$(buildroot)"
\
+
PIKE_MODULE_RELOC="$(PIKE_MODULE_RELOC)"
pike_name="test-pike" \
+
cflags="@DYNAMIC_MODULE_FLAGS@" ldflags="" \
+
prefix="./test-install" $(INSTALLARGS)
-
verify:
module_
testsuites
testsuite
tinstall
+
verify: testsuites tinstall
PIKE_MODULE_PATH=""; PIKE_INCLUDE_PATH=""; \
-
if test "$(TESTARGS)" = "" ; then args="-a" ; else args="$(TESTARGS)" ; fi; \
-
if test -f ./test-pike ; then ./test-pike -DNOT_INSTALLED $(PIKEOPTS)
$(TMP_BINDIR)/
test_pike
.pike
$$args ; else sprsh `pwd`/test-install/pike/*/bin/pike.exe -DNOT_INSTALLED $(
PIKE_OPTS
) $(
TMP_BINDIR
)
/
test_pike
.pike
$$args ; fi
+
if test "$(TESTARGS)" = "" ; then args="-
F -
a
-v
" ; else
\
+
args="$(TESTARGS)" ; fi; \
+
if test -f ./test-pike ; then
\
+
./test-pike -DNOT_INSTALLED $(PIKEOPTS)
-x
test_pike $$args ;
\
+
else
\
+
if test -f some-
sprsh
-test
; then \
+
sprsh
`pwd`/test-install/pike/*/bin/pike.exe -DNOT_INSTALLED $(
PIKEOPTS
)
-x test_pike $$args ; \
+
else \
+
`pwd`/test-install/pike/*/bin/pike.exe -DNOT_INSTALLED
$(
PIKEOPTS
)
-x
test_pike $$args ;
\
+
fi
\
+
fi
-
verify
_
installed
:
module_
testsuites
testsuite
master-stamp
-
if test "$(TESTARGS)" = "" ; then args="-a" ; else args="$(TESTARGS)" ; fi; \
-
$(
exec_prefix
)/pike $(PIKEOPTS) $(
TMP_BINDIR
)/test
_
pike.pike $$args
+
valgrind_
verify: testsuites
tinstall
+
PIKE_MODULE_PATH=""; PIKE_INCLUDE_PATH=""; \
+
if test "$(TESTARGS)" = "" ; then args="-a
-v
" ; else
\
+
args="$(TESTARGS)" ; fi; \
+
if test -f ./test-pike ; then \
+
$(
VALGRIND
)
$(VALGRINDARGS) .
/
test-
pike
-DNOT_INSTALLED
$(PIKEOPTS)
-x test_pike --subproc-start="
$(
VALGRIND
)
$(VALGRINDARGS)" $$args ; \
+
else \
+
sprsh `pwd`
/test
-install/
pike
/*/bin/pike
.
exe -DNOT_INSTALLED $(PIKEOPTS) -x test_
pike $$args
; \
+
fi
-
+
bench: tinstall
+
if test -f ./test-pike ; then \
+
./test-pike -DNOT_INSTALLED $(PIKEOPTS) -x benchmark; \
+
else \
+
if test -f some-sprsh-test ; then \
+
sprsh `pwd`/test-install/pike/*/bin/pike.exe -DNOT_INSTALLED $(PIKEOPTS) -x benchmark ; \
+
else \
+
`pwd`/test-install/pike/*/bin/pike.exe -DNOT_INSTALLED $(PIKEOPTS) -x benchmark ; \
+
fi \
+
fi
+
+
verify_installed: testsuites master-stamp
+
if test "$(TESTARGS)" = "" ; then args="-F -a -v" ; else \
+
args="$(TESTARGS)" ; fi; \
+
$(bindir)/pike $(PIKEOPTS) -x test_pike $$args
+
check: verify sure: verify # verify / debug verbose
-
verbose_verify:
module_
testsuites
testsuite
master-stamp
-
if test "$(TESTARGS)" = "" ; then args="-a" ; else args="$(TESTARGS)" ; fi; \
-
$(RUNPIKE)
$(TMP_BINDIR)/
test_pike
.pike
--
verbose
$$args
+
verbose_verify: testsuites master-stamp
+
if test "$(TESTARGS)" = "" ; then args="-
F -
a" ; else args="$(TESTARGS)" ; fi; \
+
$(RUNPIKE)
-x
test_pike -
v
-
v
$$args
# verify & debug VERBOSE
-
gdb_verify:
module_
testsuites
testsuite
master-stamp
+
gdb_verify: testsuites master-stamp
@echo >.gdbinit handle SIGFPE nostop noprint pass @echo >>.gdbinit handle SIGUSR1 nostop noprint pass @echo >>.gdbinit handle SIGUSR2 nostop noprint pass @echo >>.gdbinit handle SIGLWP nostop noprint pass @if kill -l | grep SIGRTMIN >/dev/null ; then \ echo >>.gdbinit handle SIG32 nostop noprint pass ;\ else :; fi @echo >>.gdbinit break debug_fatal
-
@if test "$(TESTARGS)" = "" ; then args="-a" ; else args="$(TESTARGS)" ; fi; \
-
echo >>.gdbinit
run
-
m$
(TMP_BUILDDIR)/master.pike $(PIKEOPTS)
$(TMP_BINDIR)/
test_pike
.pike
--no-watchdog
-v -v
$$args
-
gdb
.
/pike
+
@echo >>.gdbinit break pike_gdb_breakpoint
+
@if test "$(TESTARGS)" = "" ; then args="-a
-v -v
" ; else
\
+
args="$(TESTARGS)" ; fi; \
+
echo >>.gdbinit
set
args \
+
-
m`echo "$
(TMP_BUILDDIR)/master.pike
"
| ./posix_to_native.sh` \
+
$(PIKEOPTS)
-x
test_pike --no-watchdog $$args
+
$(GDB)
$(TMP_BUILDDIR)
/pike
@rm .gdbinit
-
+
gdb_hilfe: master.pike
+
@echo >.gdbinit handle SIGFPE nostop noprint pass
+
@echo >>.gdbinit handle SIGUSR1 nostop noprint pass
+
@echo >>.gdbinit handle SIGUSR2 nostop noprint pass
+
@echo >>.gdbinit handle SIGLWP nostop noprint pass
+
@if kill -l | grep SIGRTMIN >/dev/null ; then \
+
echo >>.gdbinit handle SIG32 nostop noprint pass ;\
+
else :; fi
+
@echo >>.gdbinit break debug_fatal
+
@echo >>.gdbinit break pike_gdb_breakpoint
+
@echo >>.gdbinit set args -m$(TMP_BUILDDIR)/master.pike $$ARGS
+
$(GDB) $(TMP_BUILDDIR)/pike
+
@rm .gdbinit
+
+
# fast test
+
fast_verify_testsuite: testsuite
+
PIKE_MODULE_PATH=""; PIKE_INCLUDE_PATH=""; \
+
if test "$(TESTARGS)" = "" ; then args="-F -a" ; \
+
else args="$(TESTARGS)" ; fi; \
+
if test -f ./test-pike ; then \
+
./test-pike -DNOT_INSTALLED $(PIKEOPTS) -x test_pike $$args ; \
+
else \
+
sprsh `pwd`/test-install/pike/*/bin/pike.exe -DNOT_INSTALLED \
+
$(PIKEOPTS) -x test_pike $$args ; \
+
fi
+
# run hilfe, for interactive testing
-
run_hilfe:
-
$(RUNPIKE) $(
TMP_BINDIR
)
/hilfe
+
run_hilfe:
master.pike
+
$(RUNPIKE) $(
ARGS
)
-
+
valgrind_hilfe: master.pike
+
$(VALGRIND) $(VALGRINDARGS) $(RUNPIKE) $(ARGS)
+
feature_list:
-
$(RUNPIKE)
$(TMP_BINDIR)/feature_list
+
$(RUNPIKE)
--features
-
+
run_bench:
+
$(RUNPIKE) $(ARGS) -x benchmark $(BENCHARGS)
+
lib: Makefile @for d in lib lib/modules lib/include; do \ if [ -d $$d/. ]; then : ; else \ echo "Creating $$d/."; \ (mkdir $$d && chmod u+rwx $$d) || exit 1; \ fi ; \ done @echo "Done." -@touch ./lib 2>/dev/null || (touch lib/.broken_gnu_touch && rm lib/.broken_gnu_touch)
-
+
$(SRCDIR)/type_checker.c: type_checker-stamp
+
$(SRCDIR)/type_checker.h: type_checker-stamp
+
type_checker-stamp: $(SRCDIR)/type_checker.in $(SRCDIR)/make_type_checker.pike
+
$(RUNPIKE) $(SRCDIR)/make_type_checker.pike "$<" && touch "$@"
master.pike: $(LIBDIR_SRC)/master.pike.in Makefile
-
t="$$PIKE_PATH_TRANSLATE";
if
test "
x$$t
" = "x";
then t=s,x,x,; else :; fi;
\
-
if
test
"x$(PIKE_MODULE_RELOC)" = "x";
then u=s,x,x,; else u='s/^#undef PIKE_MODULE_RELOC/#define PIKE_MODULE_RELOC 1/'; fi; \
-
sed -e 's!
¤lib
_
prefix¤
!
'"
`echo
"
$(TMP_LIBDIR)
"
|
sed
-e
"$$t"`"
'!
'
<
$(LIBDIR_SRC)/
master
.
pike.in
\
-
| sed
-e 's!
¤share
_
prefix¤
!
'"
`echo
"
$(
LIBDIR
_
SRC
)
"
|
sed
-e "
$$t
"
`
"
'!'
\
-
|
sed
-e
"
$$u" >
master.pike
+
@if
test "
x$(PIKE_MODULE_RELOC)
" = "x"; \
+
then u=s,x,x,;
\
+
else u='s/^#undef PIKE_MODULE_RELOC/#define PIKE_MODULE_RELOC 1/';
\
+
fi; \
+
LC_ALL=C; export LC_ALL; \
+
cmd="
sed -e 's!
#lib
_
prefix#
!`echo
'
$(TMP_LIBDIR)
'
|
./posix_to_native.sh`!'
\
+
-e '
s
!
#share_prefix#!`echo
'$(LIBDIR_SRC)
' | .
/
posix_to_native
.
sh`!'
\
+
-e 's!
#include
_
prefix#
!`echo
'
$(
TMP
_
BUILDDIR
)
/include'
|
./posix_to_native.sh`!'
\
+
-e
'$$u'
"
; \
+
echo
"
$$cmd <$(LIBDIR_SRC)/master.pike.in >master.pike
"
;
\
+
eval
$$cmd
<$(LIBDIR_SRC)/master.pike.in >master.pike
|
|
{
rm
"master.pike
"; exit 1; }
# Want master.pike up-to-date, but yet there's no dependency on the # that file. Works like the .h_src.h target. master-stamp: master.pike @test -f master-stamp || echo foo > master-stamp
-
+
#
+
# Documentation related stuff.
+
#
+
+
onepage.xml: autodoc.xml $(DOCDIR)/structure/onepage.xml
+
(cd "$(DOCDIR)" && \
+
$(RUNPIKE) -x assemble_autodoc structure/onepage.xml \
+
$(TMP_BUILDDIR)/autodoc.xml) >onepage.xml || { rm "$@"; exit 1; }
+
+
traditional.xml: autodoc.xml $(DOCDIR)/structure/traditional.xml
+
( cd "$(DOCDIR)" && \
+
$(RUNPIKE) -x assemble_autodoc structure/traditional.xml \
+
$(TMP_BUILDDIR)/autodoc.xml) >traditional.xml || { rm "$@"; exit 1; }
+
+
modref.xml: autodoc.xml $(DOCDIR)/structure/modref.xml
+
(cd "$(DOCDIR)" && \
+
$(RUNPIKE) -x assemble_autodoc structure/modref.xml \
+
$(TMP_BUILDDIR)/autodoc.xml) >modref.xml || { rm "$@"; exit 1; }
+
+
autodoc.xml: pike-complete-stamp doc_build/src doc_build/lib doc_build/images images1 images2 force
+
$(RUNPIKE) -x extract_autodoc -q --srcdir=$(SRCDIR) \
+
--imgsrc=$(DOCDIR)/src_images --builddir=doc_build/src \
+
--imgdir=doc_build/images
+
$(RUNPIKE) -x extract_autodoc -q --srcdir=$(LIBDIR_SRC) \
+
--imgsrc=$(DOCDIR)/src_images --builddir=doc_build/lib \
+
--imgdir=doc_build/images
+
$(RUNPIKE) -x join_autodoc --quiet --post-process autodoc.xml doc_build
+
+
autodoc-stamp:
+
@test -f autodoc.xml || $(MAKE) autodoc.xml
+
@test -f autodoc-stamp || echo foo > autodoc-stamp
+
+
images1: doc_build/src/post_modules/GTK1/refdoc/images
+
@cp $(SRCDIR)/post_modules/GTK1/refdoc/images/*.png \
+
doc_build/src/post_modules/GTK1/refdoc/images/
+
+
images2: doc_build/src/post_modules/GTK2/refdoc/images
+
@cp $(SRCDIR)/post_modules/GTK2/refdoc/images/*.png \
+
doc_build/src/post_modules/GTK2/refdoc/images/
+
+
# Directories
+
+
doc_build:
+
@test -d doc_build || mkdir doc_build
+
+
doc_build/src: doc_build
+
@test -d doc_build/src || mkdir doc_build/src
+
+
doc_build/lib: doc_build
+
@test -d doc_build/lib || mkdir doc_build/lib
+
+
doc_build/images: doc_build
+
@test -d doc_build/images || mkdir doc_build/images
+
+
doc_build/src/post_modules: doc_build/src
+
@test -d doc_build/src/post_modules || \
+
mkdir doc_build/src/post_modules
+
+
doc_build/src/post_modules/GTK1/refdoc/images: doc_build/src/post_modules
+
@test -d doc_build/src/post_modules/GTK1 || \
+
mkdir doc_build/src/post_modules/GTK1
+
@test -d doc_build/src/post_modules/GTK1/refdoc || \
+
mkdir doc_build/src/post_modules/GTK1/refdoc
+
@test -d doc_build/src/post_modules/GTK1/refdoc/images || \
+
mkdir doc_build/src/post_modules/GTK1/refdoc/images
+
+
doc_build/src/post_modules/GTK2/refdoc/images: doc_build/src/post_modules
+
@test -d doc_build/src/post_modules/GTK2 || \
+
mkdir doc_build/src/post_modules/GTK2
+
@test -d doc_build/src/post_modules/GTK2/refdoc || \
+
mkdir doc_build/src/post_modules/GTK2/refdoc
+
@test -d doc_build/src/post_modules/GTK2/refdoc/images || \
+
mkdir doc_build/src/post_modules/GTK2/refdoc/images
+
+
doc_clean:
+
-rm -f onepage.xml traditional.xml modref.xml autodoc.xml resolution.log
+
-rm -rf doc_build
+
+
pike.syms: $(SRCDIR)/interpret.c $(SRCDIR)/interpreter.h $(SRCDIR)/program.c $(SRCDIR)/builtin_functions.c ( cat $(SRCDIR)/*.h *.h | egrep '^[ ]*#[ ]*define[ ][ ]*[a-zA-Z_0-9]*[ ][ ]*[0-9][xabcdefABCDEF0-9]*[ ]*' ; \ echo "#define" `$(CPP) $(PREFLAGS) -DSTEP_BREAK_LINE='STEP_BREAK_LINE __LINE__' $(SRCDIR)/interpreter.h | grep STEP_BREAK_LINE` ) >pike.syms
-
pike-module: $(SRCDIR)/pike-module.in Makefile ./pike
-
$(RUNPIKE) $(SRCDIR)/pike-module.in --fixate=$(SRCDIR)/pike-module.in \
-
--set='make=$(MAKE)' --set='make_flags=$(MAKE_FLAGS)' \
-
--set='prefix=$(prefix)' --set='pike=$(exec_prefix)/pike' \
-
--set='include_path=$(prefix)/include/pike' \
-
--set='lib_prefix=$(TMP_LIBDIR)' --set='share_prefix=$(LIBDIR_SRC)' \
-
--output=pike-module
-
-@chmod +x pike-module
-
-
aclocal: $(SRCDIR)/aclocal.m4
-
echo >aclocal "define(PIKE_INCLUDE_PATH,$(prefix)/include/pike)"
-
cat >>aclocal $(SRCDIR)/aclocal.m4
-
+
# We touch the files that depend on language.h_src and # interpret_protos.h_src to ensure that the .h_src.h rule doesn't have # anything to do in the dist.
-
source: $(SRCDIR)/
peep_engine
.c
$(SRCDIR)/case_info.h
$(SRCDIR)/treeopt.h
$(SRCDIR)/language.c $(SRCDIR)/language.h $(SRCDIR)/
interpret_protos
.h
depend
-
touch
$(SRCDIR)/language.c
$(SRCDIR)/
language
.h $(SRCDIR)/interpret_protos.h
+
source:
depend
+
if test -f
$(SRCDIR)/
language
.c
;
then
touch
$(SRCDIR)/language.c
;
else :; fi
+
if test -f
$(SRCDIR)/language.h
;
then touch
$(SRCDIR)/
language
.h
;
else :; fi
+
if
test
-f
$(SRCDIR)/
interpret_protos
.h
;
then touch
$(SRCDIR)/interpret_protos.h
; else :; fi
# make export archive (requires compiled Pike) # Do not compile in source tree if you want to use this! # Beware that export archive this includes bison/yacc/byacc source # and thus has to follow the rules stated in that code. full_export: source chmod +x $(SRCDIR)/install-sh
-
$(RUNPIKE) $(TMP_BINDIR)/export.pike --srcdir="$(SRCDIR)"
+
$(RUNPIKE) $(TMP_BINDIR)/export.pike --srcdir="$(SRCDIR)"
\
+
--exportlist="$(SRCDIR)/export_list" --name=Pike-v%maj.%min.%bld \
+
--tag $(EXPORTARGS)
-
+
EXPORT_NAME=Pike-v%maj.%min-%Y%M%D
+
snapshot_export: source
+
chmod +x $(SRCDIR)/install-sh
+
$(RUNPIKE) $(TMP_BINDIR)/export.pike --srcdir="$(SRCDIR)" \
+
--exportlist="$(SRCDIR)/export_list" --name=$(EXPORT_NAME) \
+
$(EXPORTARGS)
+
export: full_export
-
all_exports: full_export
-
( cd .. && $(TMP_BINDIR)/makedists )
-
-
bin_export:
aclocal
+
bin_export:
@rm -f *.burk
-
@$
(RUNPIKE) $(TMP_BINDIR)/install.pike --export \
-
exec_prefix="$(
exec_prefix
)" lib_prefix="$(lib_prefix)" \
+
@no_autodoc="--no-autodoc"; \
+
if [ -f autodoc.xml ]; then no_autodoc=""; fi; \
+
$
(RUNPIKE) $(TMP_BINDIR)/install.pike --export
$$no_autodoc
\
+
@INSTALL_EXPORT_ARGS@ \
+
exec_prefix="$(
bindir
)" lib_prefix="$(lib_prefix)" \
TMP_LIBDIR="$(TMP_LIBDIR)" LIBDIR_SRC="$(LIBDIR_SRC)" \
-
SRCDIR="$(SRCDIR)" prefix="$(prefix)" MANDIR_SRC="$(MANDIR_SRC)" \
-
man_prefix="$(man_prefix)" pike_name=$(pike_name) PIKE_MODULE_RELOC="$(PIKE_MODULE_RELOC)"
+
SRCDIR="$(SRCDIR)" prefix="$(prefix)"
DOCDIR_SRC="$(DOCDIR_SRC)" \
+
MANDIR_SRC="$(MANDIR_SRC)" \
+
BASEDIR="$(BASEDIR)"
man_prefix="$(man_prefix)"
\
+
cflags="@DYNAMIC_MODULE_FLAGS@" ldflags="" \
+
pike_name=$(pike_name) PIKE_MODULE_RELOC="$(PIKE_MODULE_RELOC)"
@case " $(CC)" in \ *\ rnt*) \ $(MAKE) $(MAKE_FLAGS) uncompress_header ;\ echo "Compressing..." ;\ filename=`echo *.burk | sed 's@\.burk$$@@g'`.exe ;\ ( cat uncompress_header.exe ; gzip -9 -c *.burk ) > $$filename ;\ echo "Done." ;\ ;; \ esac #new_peep_engine:
-
# $(
RUNPIKE
) $(TMP_BINDIR)/mkpeep.pike $(SRCDIR)/peep.in >$(SRCDIR)/peep_engine.c
-
# $(
RUNPIKE
) $(TMP_BINDIR)/make_ci.pike <$(SRCDIR)/UnicodeData.txt >$(SRCDIR)/case_info.h
+
# $(
RUNTPIKE
) $(TMP_BINDIR)/mkpeep.pike $(SRCDIR)/peep.in >$(SRCDIR)/peep_engine.c
+
# $(
RUNTPIKE
) $(TMP_BINDIR)/make_ci.pike <$(SRCDIR)/UnicodeData.txt >$(SRCDIR)/case_info.h
-
$(SRCDIR)/peep_engine.c: $(
TMP_BUILDDIR)/tpike $(
SRCDIR)/peep.in $(TMP_BINDIR)/mkpeep.pike
-
$(RUNTPIKE)
$(TMP_BINDIR)/mkpeep.pike $(SRCDIR)/peep.in >$(SRCDIR)/peep_engine.c || ( rm $(SRCDIR)/peep_engine.c ; exit 1 )
+
$(SRCDIR)/peep_engine.c: $(SRCDIR)/peep.in $(TMP_BINDIR)/mkpeep.pike
+
./precompile.sh
$(TMP_BINDIR)/mkpeep.pike $(SRCDIR)/peep.in >$(SRCDIR)/peep_engine.c || ( rm $(SRCDIR)/peep_engine.c ; exit 1 )
peep.o: $(SRCDIR)/peep_engine.c
-
peep_t
.
o
:
peep
.
c
+
$(SRCDIR)/whitespace
.
h
:
$(SRCDIR)/UnicodeData
.
txt $(TMP_BINDIR)/getwhitespace.sh
+
$(TMP_BINDIR)/getwhitespace.sh >$(SRCDIR)/whitespace.h \
+
<$(SRCDIR)/UnicodeData.txt
-
$(SRCDIR)/case_info.h: $(
TMP_BUILDDIR)/tpike $(
SRCDIR)/UnicodeData.txt $(TMP_BINDIR)/make_ci.pike
-
$(RUNTPIKE)
$(TMP_BINDIR)/make_ci.pike
<
$(SRCDIR)/
UnicodeData.txt >$(SRCDIR)/
case_info.h
||
(
rm
$(SRCDIR)/
case_info
.
h ; exit 1 )
+
$(SRCDIR)/case_info.h: $(SRCDIR)/UnicodeData.txt $(TMP_BINDIR)/make_ci.pike
+
./precompile.sh
$(TMP_BINDIR)/make_ci.pike $(SRCDIR)/case_info.h
\
+
<
$(SRCDIR)/
UnicodeData
.
txt
builtin_functions.o: $(SRCDIR)/case_info.h $(SRCDIR)/combine_path.h
-
builtin_functions_t
.
o
:
builtin
_
functions
.
c
$(SRCDIR)/
combine_path
.h
+
$(SRCDIR)/treeopt
.
h
:
$(SRCDIR)/treeopt.in $(TMP
_
BINDIR)/mktreeopt
.
pike
+
./precompile.sh
$(
TMP_BINDIR)/mktreeopt.pike $(
SRCDIR)/
treeopt
.
in || ( rm $(SRCDIR)/treeopt.
h
; exit 1 )
-
$(SRCDIR)/treeopt.h: $(TMP_BUILDDIR)/tpike $(SRCDIR)/treeopt.in $(TMP_BINDIR)/mktreeopt.pike
-
$(RUNTPIKE) $(TMP_BINDIR)/mktreeopt.pike $(SRCDIR)/treeopt.in || ( rm $(SRCDIR)/treeopt.h ; exit 1 )
-
+
las.o: $(SRCDIR)/treeopt.h
-
las_t.o: las.c
-
+
# This dependency is here to make sure that lexer[012].h are generated.
-
# The reason for the split is that some compilers (read
lc
) generate
+
# The reason for the split is that some compilers (read
cl
) generate
# better code then. Strange, but true. lex.o: lexer0.h lexer1.h lexer2.h lex.protos: lexer0.h lexer1.h lexer2.h lexer0.h: lexer.h cp "$(SRCDIR)/lexer.h" "$@" lexer1.h: lexer.h cp "$(SRCDIR)/lexer.h" "$@" lexer2.h: lexer.h cp "$(SRCDIR)/lexer.h" "$@" # unbug needs interpreter_nd.h to be able to # set separate breakpoints in eval_instruction_with/without_debug interpreter_debug.h: interpreter.h cp "$(SRCDIR)/interpreter.h" "$@"
-
interpret.o: interpreter_debug.h interpret_functions_fixed.h
+
interpret.o: interpreter_debug.h
$(SRCDIR)/
interpret_functions_fixed.h
-
# All the $(POBJ) dependencies, except tpike. See blurb at pike target.
-
stamp-tpike-predep: $(SRCDIR)/peep.in $(TMP_BINDIR)/mkpeep.pike peep.c $(SRCDIR)/UnicodeData.txt $(TMP_BINDIR)/make_ci.pike builtin_functions.c $(SRCDIR)/treeopt.in $(TMP_BINDIR)/mktreeopt.pike las.c
-
@echo foo > stamp-tpike-predep
-
+
# make dependencies
-
depend: $(
DEPEND
)
-
gcc -MM -MG $(PREFLAGS) $(SRCDIR)/*.c | $(TMP_BINDIR)/fixdepends.sh $(SRCDIR)
+
depend: $(
SRC_TARGETS
)
+
gcc -MM -MG $(PREFLAGS) $(SRCDIR)/*.c | $(TMP_BINDIR)/fixdepends.sh
"
$(SRCDIR)
" "$(SRCDIR)" /dev/null
-@(while :; do \ echo foo > cfl.$@; test "`echo cfl.*`" = cfl.$@ && break; \ rm cfl.$@; echo "Waiting to run config.status serially:" cfl.*; sleep 1; \ arb=37; while test $$arb != 0; do arb=`expr $$arb - 1`; done; \ done;) CONFIG_FILES=Makefile CONFIG_HEADERS="" ./config.status || \ (EXITCODE=$$?; rm cfl.$@; exit $$EXITCODE) -@rm cfl.$@
-
@for d in modules post_modules; do \
-
( cd
$$d
&& { \
+
@
( cd
modules
&& { \
rm -f remake; \ $(MAKE) $(MAKE_FLAGS) depend || \ { test -f remake && $(MAKE) $(MAKE_FLAGS) depend; }; \
-
}
); \
-
done
+
})
+
@if [ "x$(RUNPIKE
)
" != "x$(DEFAULT_RUNPIKE)" -o -x $(TMP_BUILDDIR)/pike ]
;
then
\
+
$(MAKE) $(MAKE_FLAGS) post_modules_depend; \
+
else \
+
echo "Skipping make depend in post_modules since a fresh pike is"; \
+
echo "needed to make the autogenerated sources there."; \
+
:; \
+
fi
-
#
Documentation...
+
post_modules_depend:
+
@if [ "x$(RUNPIKE)" != "x$(DEFAULT_RUNPIKE)" -o -x $(TMP_BUILDDIR)/pike ]; then :; \
+
else $(MAKE) $(MAKE_FLAGS) $(MAKE_PARALLEL) pike@EXEEXT@; fi
+
@( cd post_modules && { \
+
rm -f remake; \
+
$(MAKE) $(MAKE_FLAGS) depend || \
+
{ test -f remake && $(MAKE) $(MAKE_FLAGS) depend; }; \
+
})
-
docs:
-
mkdir docs
+
#
+
#
Pike
internal
targets
+
#
-
wmml:
force
-
@test
-
d wmml/. || mkdir wmml
-
@modules="`cd $(SRCDIR)/
modules
&& ls
-
d
*/.
|
sed
-e
'/^_.*/d'
-e
's/\/\.$$//'`";
\
-
echo The following modules are interresting
:
;
\
-
echo "$$modules"
; \
-
for
d in $$modules
;
do
\
-
echo
Testing
$$d...;
\
-
if test -f "$(SRCDIR)
/
modules
/
$$d/wmml-header";
then
\
-
echo Module $$d seems to contain WMML docs.;
\
-
$(
RUNPIKE
) $(
TMP
_
BINDIR
)
/mkwmml.pike
\
-
"
$(
SRCDIR
)
/modules/$$d/wmml-header"
\
-
`find
$(
SRCDIR
)
/modules/$$d/.
$(
SRCDIR)/modules/
_
$$d*/.
-name '*.[ch]' -print 2>/dev/null` \
-
"
$(
SRCDIR
)
/modules/$$d/wmml-footer"
>wmml/$$d.wmml;
\
-
else
:; fi; \
-
done
+
#
touch
static-modules-stamp
here
to
avoid
doing
this
work
again
if
+
#
that
target
is
checked
later.
+
static_module_objects:
$(
MODULE_REQUIREMENTS
)
+
@MODULE
_
BUILD_TYPE=static
; \
+
export
MODULE_BUILD_TYPE
; \
+
(
cd
modules
&&
(
rm
remake
>/dev/null
2>&1
||
:
)
&&
\
+
(
$(
MAKE
) $(
MAKE_PARALLEL
) $(
MAKE
_
FLAGS
)
||
\
+
(
test
-
f
remake
&&
$(
MAKE
) $(
MAKE_PARALLEL
) $(
MAKE_FLAGS
)
)
)
\
+
)
||
exit
$$?
+
@touch
static-modules-stamp
-
manpages
:
wmml
-
@(if
test
-f
"$(SRCDIR)/../tutorial/tutorial.wmml";
then
\
-
cat
"$
(
SRCDIR)/../tutorial/tutorial.wmml";
\
-
else
\
-
cat
wmml/*.wmml;
\
-
fi)
|
(
cd
wmml
&& $(
RUNPIKE
) $(
TMP
_
BINDIR
)
/wmmltohtml2
\
-
$(TMP_BINDIR)/manpages
man/man)
+
static-modules-stamp
:
$(MODULE_REQUIREMENTS)
+
@MODULE_BUILD_TYPE=static;
\
+
export MODULE_BUILD_TYPE
; \
+
(
cd
modules
&&
(
rm remake >
/
dev
/
null
2>&1
||
:
)
&&
\
+
(
$(MAKE)
$(MAKE_PARALLEL)
$(MAKE_FLAGS)
||
\
+
(
test
-f remake
&& $(
MAKE
) $(
MAKE
_
PARALLEL
)
$(MAKE_FLAGS) ) )
\
+
)
||
exit
$$?
+
@touch static-modules-stamp
-
tutorial
:
wmml
-
( cd
$
(
SRCDIR)
/
..
/
tutorial/
;
$(MAKE)
pike="
$(
RUNPIKE
)
"
$(
TARGET
) )
+
dynamic_module_objects
:
$(MODULE_REQUIREMENTS) @LDSHARED_BASE_REQS@
+
@MODULE_BUILD_TYPE=dynamic; \
+
export MODULE_BUILD_TYPE; \
+
( cd
modules &&
(
rm remake >
/
dev
/
null
2>&1
|| : ) && \
+
(
$(MAKE) $(
MAKE_PARALLEL
) $(
MAKE_FLAGS
)
|| \
+
( test -f remake && $(MAKE
)
$(MAKE_PARALLEL) $(MAKE_FLAGS) ) ) \
+
) || exit $$?
+
@touch dynamic-modules-stamp
-
#
Lobotomization...
+
dynamic-modules-stamp:
$(MODULE_REQUIREMENTS) @LDSHARED_BASE_REQS@
+
@MODULE_BUILD_TYPE=dynamic; \
+
export MODULE_BUILD_TYPE; \
+
( cd modules && ( rm remake >/dev/null 2>&1 || : ) && \
+
( $(MAKE) $(MAKE_PARALLEL) $(MAKE_FLAGS) || \
+
( test -f remake && $(MAKE) $(MAKE_PARALLEL) $(MAKE_FLAGS) ) ) \
+
) || exit $$?
+
@touch dynamic-modules-stamp
-
lobotomize_crypto:
-
(
cd
$(SRCDIR)/
modules
/_Crypto
&&
.
/.build
_
lobotomized_crypto )
-
(
cd
$(
SRCDIR
)
/modules/
_
Lobotomized
_
Crypto
&&
autoconf
)
+
# Use submakes here to ensure both correct sequencing and that all
+
# modules are properly rechecked.
+
module
_
objects
:
+
@$
(
MAKE)
$(
MAKE_FLAGS
)
static
_
module
_
objects
+
@$
(
MAKE)
$(
MAKE_FLAGS
)
dynamic
_
module
_
objects
-
#
-
#
Pike internal targets
-
#
+
modules/modlist.h:
static-modules-stamp
-
# touch
modules
-stamp here to avoid doing this work again if that
-
# target is checked later.
-
module
_
objects
:
$(MODULE_REQUIREMENTS)
-
@( cd modules ; rm remake >/dev/null 2>&1 || : ; \
-
$(MAKE) $(MAKE_PARALLEL) $(MAKE_FLAGS) || \
-
( test
-
f remake && $(MAKE) $(MAKE_PARALLEL) $(MAKE_FLAGS) ) ) || exit $$?
-
@touch
modules-stamp
+
modules
/modlist_headers
.
h
:
static
-modules-stamp
-
modules
-stamp: $(MODULE_REQUIREMENTS)
-
@( cd modules ; rm remake >
/
dev/null 2>&1 ||
:
; \
-
$(MAKE) $(MAKE_PARALLEL) $(MAKE_FLAGS) || \
-
( test
-
f remake && $(MAKE) $(MAKE_PARALLEL) $(MAKE_FLAGS) ) ) || exit $$?
-
@touch
modules-stamp
+
modules
/linker
_
options
:
static
-modules-stamp
-
modules/modlist.h
: modules-stamp
+
post-module-pike-stamp
:
@BUILD_PIKE@ dynamic-
modules-stamp
+
@touch post-module-pike-stamp
-
modules/modlist_headers.h
:
modules
-stamp
+
module.o:
modules/modlist_headers.h modules
/modlist.h post_modules/modlist_headers.h post_modules/modlist.h
-
modules/
linker
_
options:
modules
-stamp
+
tmodule.o:
modules/
modlist
_
headers.h
modules
/modlist.h
-
module.o:
modules/modlist_headers
.
h
modules
/modlist.h
+
# Backward compat
.
+
post_modules
:
post
_
module_objects
-
+
post_module_objects: pike@EXEEXT@ $(MODULE_REQUIREMENTS) post-module-pike-stamp @LDSHARED_BASE_REQS@
+
@MODULE_BUILD_TYPE=@POST_MODULE_BUILD_TYPE@; \
+
export MODULE_BUILD_TYPE; \
+
( cd post_modules && ( rm remake >/dev/null 2>&1 || : ) && \
+
( $(MAKE) $(MAKE_PARALLEL) $(MAKE_FLAGS) || \
+
( test -f remake && $(MAKE) $(MAKE_PARALLEL) $(MAKE_FLAGS) ) ) \
+
) || exit $$?
+
@touch post-modules-stamp
+
+
post-modules-stamp: pike@EXEEXT@ $(MODULE_REQUIREMENTS) post-module-pike-stamp @LDSHARED_BASE_REQS@
+
@MODULE_BUILD_TYPE=@POST_MODULE_BUILD_TYPE@; \
+
export MODULE_BUILD_TYPE; \
+
( cd post_modules && ( rm remake >/dev/null 2>&1 || : ) && \
+
( $(MAKE) $(MAKE_PARALLEL) $(MAKE_FLAGS) || \
+
( test -f remake && $(MAKE) $(MAKE_PARALLEL) $(MAKE_FLAGS) ) ) \
+
) || exit $$?
+
@touch post-modules-stamp
+
+
post_modules/modlist_headers.h: post-modules-stamp
+
+
post_modules/modlist.h: post-modules-stamp
+
+
post_modules/linker_options: post-modules-stamp
+
+
pike-complete-stamp: pike post-modules-stamp
+
@touch pike-complete-stamp
+
$(SRCDIR)/interpret_protos.h_src: $(SRCDIR)/interpret_functions.h $(SRCDIR)/strip_opcodes $(CPP) $(PREFLAGS) -DGEN_PROTOS $(SRCDIR)/interpret_functions.h | $(SRCDIR)/strip_opcodes >$(SRCDIR)/interpret_protos.h_src || { rm $(SRCDIR)/interpret_protos.h_src; exit 1; } lex.o: $(SRCDIR)/lex.c $(SRCDIR)/interpret_protos.h
-
interpret.o: $(SRCDIR)/lex.c $(SRCDIR)/interpret_protos.h
+
interpret.o: $(SRCDIR)/lex.c $(SRCDIR)/interpret_protos.h
@DTRACE_REQUIREMENTS@
lex_t.o: $(SRCDIR)/lex_t.c $(SRCDIR)/interpret_protos.h language.o: $(SRCDIR)/language.c $(SRCDIR)/object.h $(SRCDIR)/interpret.h $(SRCDIR)/program.h
-
$(SRCDIR)/language.h_src: $(SRCDIR)/language.yacc
+
$(SRCDIR)/language.
c_src $(SRCDIR)/language.
h_src: $(SRCDIR)/language.yacc
@echo "Expect 1 shift/reduce conflict."
-
(
cd $(SRCDIR) &&
\
-
$(YACC) $(YFLAGS) language.yacc
&&\
-
sed -e 's
/
YY_COUNT_TYPE/@YY_COUNT_TYPE@/' <
y.tab.c
>
language.c
&&\
-
mv y.tab.h language.h_src
&& rm y.tab.c)
+
cd $(SRCDIR) && $(YACC) $(YFLAGS) language.yacc
+
mv
$(SRCDIR)
/y.tab.c
$(SRCDIR)/
language.c
_src
+
mv
$(SRCDIR)/
y.tab.h
$(SRCDIR)/
language.h_src
-
$(SRCDIR)/language.c: $(SRCDIR)/language.
h
_src
-
touch
$(SRCDIR)/language.c
+
$(SRCDIR)/language.c: $(SRCDIR)/language.
c
_src
+
sed
-e 's/YY_COUNT_TYPE/@YY_COUNT_TYPE@/' \
+
-e 's/YY_FROM_CONST/@YY_FROM_CONST@/' \
+
-e 's/short[ ]*int[ ]/\/* short *\/ int /g' \
+
-e 's/(short[ ]*int)/(\/* short *\/ int)/g' \
+
<
$(SRCDIR)/language.c
_src > $(SRCDIR)/language.c
-
+
$(SRCDIR)/interpret_functions_fixed.h: $(SRCDIR)/interpret_functions.h precompile.sh-stamp
+
./precompile.sh --cache make_interpret_functions.pike >"$@" "$(SRCDIR)/interpret_functions.h" || { rm "$@"; exit 1; }
-
interpret_functions_fixed.h: interpret_functions.h
-
./precompile.sh make_interpret_functions.pike >"$@" "$<" || { rm "$@"; exit 1; }
-
+
# UnixWare make needs help to find the source file...
-
builtin.o: $(SRCDIR)/builtin.c
+
builtin.o: $(SRCDIR)/builtin.c
$(SRCDIR)/whitespace.h
iterators.o: $(SRCDIR)/iterators.c backend.o: $(SRCDIR)/backend.c
-
+
libpike.o: $(SRCDIR)/libpike.c
+
# Internal testing target run_yacc: $(SRCDIR)/language.c
-
$(SRCDIR)/configure: $(SRCDIR)/configure.in
-
cd $(SRCDIR) &&
autoconf
+
$(SRCDIR)/configure
$(SRCDIR)/stamp-h.in
: $(SRCDIR)/configure.in
$(SRCDIR)/aclocal.m4 $(SRCDIR)/acconfig.h
+
cd $(SRCDIR) &&
./run_autoconfig --no-recursion .
+
echo foo > $(SRCDIR)/stamp-h.in
-
config.status: $(SRCDIR)/configure
+
config.status
propagated_variables
: $(SRCDIR)/configure
$(SRCDIR)/make_variables.in
./config.status --recheck
-
+
@test -f propagated_variables && touch propagated_variables
-
modules/
static
_module_makefile: $(SRCDIR)/modules/
static
_module_makefile.in config.status
+
modules/
common
_module_makefile: $(SRCDIR)/modules/
common
_module_makefile.in config.status
-@(while :; do \
-
+
echo foo > cfl.common_module_makefile; test "`echo cfl.*`" = cfl.common_module_makefile && break; \
+
rm cfl.common_module_makefile; echo "Waiting to run config.status serially:" cfl.*; sleep 1; \
+
arb=17; while test $$arb != 0; do arb=`expr $$arb - 1`; done; \
+
done;)
+
CONFIG_FILES=modules/common_module_makefile CONFIG_HEADERS="" ./config.status || \
+
(EXITCODE=$$?; rm cfl.common_module_makefile; exit $$EXITCODE)
+
-@rm cfl.common_module_makefile
+
+
modules/static_module_makefile post_modules/static_module_makefile: modules/common_module_makefile $(SRCDIR)/modules/static_module_makefile.in config.status
+
-@(while :; do \
echo foo > cfl.static_module_makefile; test "`echo cfl.*`" = cfl.static_module_makefile && break; \ rm cfl.static_module_makefile; echo "Waiting to run config.status serially:" cfl.*; sleep 1; \ arb=17; while test $$arb != 0; do arb=`expr $$arb - 1`; done; \ done;)
-
CONFIG_FILES=modules/static_module_makefile CONFIG_HEADERS="" ./config.status || \
+
CONFIG_FILES=
"
modules/static_module_makefile
post_modules/static_module_makefile:modules/static_module_makefile.in"
CONFIG_HEADERS="" ./config.status || \
(EXITCODE=$$?; rm cfl.static_module_makefile; exit $$EXITCODE) -@rm cfl.static_module_makefile
-
modules/dynamic_module_makefile: $(SRCDIR)/@dmmsrc@ config.status
+
modules/dynamic_module_makefile
post_modules/dynamic_module_makefile
:
modules/common_module_makefile
$(SRCDIR)/@dmmsrc@ config.status
-@(while :; do \ echo foo > cfl.dynamic_module_makefile; test "`echo cfl.*`" = cfl.dynamic_module_makefile && break; \ rm cfl.dynamic_module_makefile; echo "Waiting to run config.status serially:" cfl.*; sleep 1; \ arb=19; while test $$arb != 0; do arb=`expr $$arb - 1`; done; \ done;)
-
CONFIG_FILES=modules/dynamic_module_makefile:@dmmsrc@ CONFIG_HEADERS="" ./config.status || \
+
CONFIG_FILES=
"
modules/dynamic_module_makefile:@dmmsrc@
post_modules/dynamic_module_makefile:@dmmsrc@"
CONFIG_HEADERS="" ./config.status || \
(EXITCODE=$$?; rm cfl.dynamic_module_makefile; exit $$EXITCODE) -@rm cfl.dynamic_module_makefile Makefile: $(SRCDIR)/Makefile.in $(SRCDIR)/dependencies config.status -@(while :; do \ echo foo > cfl.$@; test "`echo cfl.*`" = cfl.$@ && break; \ rm cfl.$@; echo "Waiting to run config.status serially:" cfl.*; sleep 1; \ arb=23; while test $$arb != 0; do arb=`expr $$arb - 1`; done; \ done;) CONFIG_FILES=Makefile CONFIG_HEADERS="" ./config.status || \
pike.git/src/Makefile.in:795:
arb=29; while test $$arb != 0; do arb=`expr $$arb - 1`; done; \ done;) CONFIG_FILES=precompile.sh CONFIG_HEADERS="" ./config.status || \ (EXITCODE=$$?; rm cfl.$@; exit $$EXITCODE) -@rm cfl.$@ # A dependency on precompile.sh-stamp only ensures that precompile.sh # exists, not that it's older than the target. In source dists, # precompile.sh is almost always newer than the targets that depend on # it, e.g. builtin.c that comes with the dist.
-
precompile.sh-stamp: precompile.sh
-
@touch
0103000070
precompile.sh-stamp
+
#
+
# The date stamp used to be 0103000070, but that seems to confuse some
+
# recent OS's, that haven't heard of the 70's...
+
#
+
# Note that gnu touch is stupid, and warns about the syntax; thus the
+
# redirect of stderr.
+
#
+
# BSD make is stupid, and doesn't restat
precompile.sh-stamp
and
+
# recalculate the dependencies after executing the rule, thus the
+
# recursive use of make.
+
precompile.sh-stamp
:
+
@if [ -f
precompile.sh
]; then :; else $(MAKE) precompile.sh; fi
+
@touch
0101010185
precompile.sh-stamp
2>/dev/null
$(SRCDIR)/machine.h.in: $(SRCDIR)/stamp-h.in @if test -f $(SRCDIR)/machine.h.in; then :; else \ rm $(SRCDIR)/stamp-h.in; $(MAKE) $(SRCDIR)/stamp-h.in; \ fi
-
$(SRCDIR)/stamp-h.in: $(SRCDIR)/configure.in $(SRCDIR)/acconfig.h
-
cd $(SRCDIR) && autoheader
-
echo foo > $(SRCDIR)/stamp-h.in
-
+
machine.h: stamp-h @if test -f machine.h; then :; else \ rm stamp-h; $(MAKE) stamp-h; \ fi stamp-h: $(SRCDIR)/stamp-h.in $(SRCDIR)/machine.h.in config.status -@(while :; do \ echo foo > cfl.$@; test "`echo cfl.*`" = cfl.$@ && break; \ rm cfl.$@; echo "Waiting to run config.status serially:" cfl.*; sleep 1; \ arb=31; while test $$arb != 0; do arb=`expr $$arb - 1`; done; \ done;) CONFIG_FILES="" CONFIG_HEADERS=machine.h ./config.status || \ (EXITCODE=$$?; rm cfl.$@; exit $$EXITCODE) touch stamp-h -@rm cfl.$@
-
testsuite: $(SRCDIR)/testsuite.in
+
testsuite: $(SRCDIR)/testsuite.in
$(TMP_BINDIR)/mktestsuite
if test "$$PIKE_PATH_TRANSLATE" = ""; then \ $(TMP_BINDIR)/mktestsuite $(SRCDIR)/testsuite.in >testsuite \
-
-DSRCDIR="$(SRCDIR)"; \
+
-DSRCDIR="
`echo
$(SRCDIR)
|./posix_to_native.sh`
"; \
else \ $(TMP_BINDIR)/mktestsuite $(SRCDIR)/testsuite.in >testsuite \
-
-DSRCDIR="`echo $(SRCDIR)|sed -e $$PIKE_PATH_
TRANSLATE`
"; \
+
-DSRCDIR="`echo $(SRCDIR)|sed -e $$PIKE_PATH_
TRANSLATE|./posix_to_native.sh`
"; \
fi header_uncompress: $(SRCDIR)/uncompressor.c
-
$(CC) -O2 -static $(SRCDIR)/uncompressor.c -o header_uncompress
-lz
+
$(CC) -O2 -static $(SRCDIR)/uncompressor.c -o header_uncompress
@UNCOMPRESS_LIBZ@
uncompress_header: $(SRCDIR)/uncompressor.c header_uncompress
-
$(CC) -O2 -static $(SRCDIR)/uncompressor.c -o uncompress_header
-lz
-DSEEK_TO=`wc -c header_uncompress|sed 's/[^0-9]//g'`
+
$(CC) -O2 -static $(SRCDIR)/uncompressor.c -o uncompress_header
@UNCOMPRESS_LIBZ@
-DSEEK_TO=`wc -c header_uncompress|sed 's/[^0-9]//g'`
test "`wc -c header_uncompress|sed 's/[^0-9]//g'`" = "`wc -c uncompress_header|sed 's/[^0-9]//g'`" HFILES= \ operators.protos \ array.protos \ fd_control.protos \ backend.protos \ fdlib.protos \ bignum.protos \ fsort.protos \ pike_memory.protos \ pike_types.protos \ gc.protos \ port.protos \
-
builtin_functions_t.protos \
+
callback.protos \ hashtable.protos \ program.protos \ interpret.protos \ constants.protos \ language.protos \ queue.protos \ cpp.protos \
-
las_t.protos \
-
peep_t.protos \
+
rusage.protos \ cyclic.protos \ lex.protos \ security.protos \ signal_handler.protos \ pike_search.protos \ docode.protos \ main.protos \ stralloc.protos \ mapping.protos \
-
+
block_allocator.protos \
stuff.protos \ dynamic_buffer.protos \ svalue.protos \ dynamic_load.protos \ module_support.protos \ threads.protos \ multiset.protos \ encode.protos \ object.protos \ error.protos \ opcodes.protos \ version.protos \ builtin.protos \
-
+
iterators.protos \
rbtree.protos $(HFILES): precompile.sh-stamp import-stamp: $(HFILES) precompile.sh-stamp @./precompile.sh fake_dynamic_load.pike >import_functions.tmp $(HFILES) @cmp import_functions.tmp import_functions.h >/dev/null || mv import_functions.tmp import_functions.h @echo hej >import-stamp import_functions.h: import-stamp test -f import-stamp || ( rm import-stamp ; $(MAKE) import-stamp ) export_functions.c: import_functions.h touch export_functions.c
-
module.o:
post_modules/modlist.h
post_modules/modlist_headers.h
+
#
Must
have manual depends on all the bytecode methods in the code
+
# dir, since make depend will only include the one that was chosen,
+
# and that doesn't suffice in source dists
.
-
@dependencies@
+
$(SRCDIR)/pikecode.h: \
+
$(SRCDIR)/code/ia32.h \
+
$(SRCDIR)/code/amd64.h \
+
$(SRCDIR)/code/sparc.h \
+
$(SRCDIR)/code/ppc32.h \
+
$(SRCDIR)/code/ppc64.h \
+
$(SRCDIR)/code/computedgoto.h \
+
$(SRCDIR)/code/bytecode.h
+
touch $(SRCDIR)/pikecode.h
-
+
$(SRCDIR)/pikecode.c: \
+
$(SRCDIR)/code/ia32.c \
+
$(SRCDIR)/code/amd64.c \
+
$(SRCDIR)/code/sparc.c \
+
$(SRCDIR)/code/ppc32.c \
+
$(SRCDIR)/code/ppc64.c \
+
$(SRCDIR)/code/computedgoto.c \
+
$(SRCDIR)/code/bytecode.c
+
touch $(SRCDIR)/pikecode.c
+
+
@dependencies@