pike.git / src / Makefile.in

version» Context lines:

pike.git/src/Makefile.in:1: - # - # $Id: Makefile.in,v 1.228 2001/01/12 01:40:04 mast 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@    -  + # interpret.o can't have -fomit-frame-pointer + INTERPRET_DEOPTIMIZE=@INTERPRET_DEOPTIMIZE@ +    # 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@    - RUNPIKE=$(TMP_BUILDDIR)/pike -DNOT_INSTALLED -m$(TMP_BUILDDIR)/master.pike $(PIKEOPTS) - USE_TPIKE=$(TMP_BUILDDIR)/tpike -DNOT_INSTALLED -m$(TMP_BUILDDIR)/master.pike $(PIKEOPTS) - USE_PIKE=@PIKE@ $(PIKEOPTS) + 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) + 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 \    backend.o \    callback.o \    encode.o \    docode.o \
pike.git/src/Makefile.in:122:    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.o \ +     module_support.o \ -  +  pikecode.o \    object.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 \ -  svalue.o @EXTRA_OBJS@ +  iterators.o \ +  svalue.o \ +  las.o \ +  builtin_functions.o \ +  peep.o @DLOPEN_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@ +  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 - POBJ = las.o builtin_functions.o peep.o -  +    #   # User callable targets   #    -  + # 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    - # Ouch. - # It turns out that we really do need to do it this way. - # - # First compile pike, to generate the peep engine, and more - # importantly, the lower_case() support, since that is needed by the - # post_module. - # - # Then relink pike once more, since the post modules might be - # static modules, and thus have to be linked into pike. - # - # No rest for the wicked. - all: module_objects hilfe master.pike -  $(MAKE) $(MAKE_FLAGS) $(MAKE_PARALLEL) pike -  @rm -f dummy_engine >/dev/null 2>&1; echo "" >dummy_engine && \ -  if cmp $(SRCDIR)/peep_engine.c dummy_engine >/dev/null 2>&1; then \ -  echo "Warning: No peep_engine." >&2; \ -  else :; fi; \ -  rm -f dummy_engine >/dev/null 2>&1 - # $(MAKE) $(MAKE_FLAGS) $(MAKE_PARALLEL) new_peep_engine -  $(MAKE) $(MAKE_FLAGS) $(MAKE_PARALLEL) pike -  $(MAKE) $(MAKE_FLAGS) "MAKE_PARALLEL=$(MAKE_PARALLEL)" post_modules -  $(MAKE) $(MAKE_FLAGS) $(MAKE_PARALLEL) pike + doc: documentation    - post_modules: force -  @( cd post_modules ; rm remake >/dev/null 2>&1 || : ; \ -  $(MAKE) $(MAKE_PARALLEL) $(MAKE_FLAGS) || \ -  ( test -f remake && $(MAKE) $(MAKE_PARALLEL) $(MAKE_FLAGS) ) ) || exit $$? + documentation: onepage.xml traditional.xml modref.xml +  cd $(DOCDIR) && $(MAKE) $(MAKE_FLAGS) PIKE="$(RUNPIKE)" \ +  BUILDDIR="$(TMP_BUILDDIR)" $(DOCTARGET)    -  + # Creation of include/. +  + 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: 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 + # + # 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 {} \;    - # Only want tpike to exist when using $(RUNTPIKE); we don't want to - # require it actually being up-to-date. - $(TMP_BUILDDIR)/tpike: + 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    - # 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.pike modules/linker_options stamp-tpike-predep -  $(MAKE) $(MAKE_FLAGS) $(MAKE_PARALLEL) $(POBJ) -  -@if [ -f pike.old ] ; then rm -f pike.old || : ; else : ; fi + # 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` $(LIBS) -o pike + # $(LD) $(LDFLAGS) main.o @DLOPEN_O@ -o pike@EXEXT@ +  $(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.pike 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` $(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.pike 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` $(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.pike module_objects -  -@mv pike pike.old 2>/dev/null || true -  $(SMARTLINK) quantify $(REALCC) $(LDFLAGS) $(OBJ) $(POBJ) `cat 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 + delete_dumped_modules: +  -find lib -type f -name \*.o | xargs rm -f    -  + 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 "$<" +  -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 + # Extra kludge added: interpret.o gets special flags (deoptimization)   .c.o: -  @echo "Compiling $<" ;\ -  if $(CC) $(CFLAGS) -c $< -o $@ ; then : ; else \ +  @echo "Compiling `echo '$<' | sed -e 's|^$(PIKE_SRC_DIR)/||'`" ; \ +  rm -f $@.fail >/dev/null 2>&1; \ +  if test "x$@" = "xinterpret.o"; then EXTRAFLAGS="$(INTERPRET_DEOPTIMIZE)"; else EXTRAFLAGS=; fi; \ +  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 "echo $(CC) $(PREFLAGS) $(NOOPTFLAGS) -c $< -o $@" >&2 ;\ -  NO_ULIMIT=yes; \ -  export NO_ULIMIT; \ -  if $(CC) $(PREFLAGS) $(NOOPTFLAGS) -c $< -o $@ ; then : ; else \ -  err=$$?; \ -  if test "x$(FALLBACK_CC)" = "x"; then \ -  exit $$err; \ +  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 "WARNING: Compiler failure! Trying fallback compiler!" >&2;\ -  echo "echo $(FALLBACK_CC) $(PREFLAGS) $(NOOPTFLAGS) -c $< -o $@" >&2 ;\ -  $(FALLBACK_CC) $(PREFLAGS) $(NOOPTFLAGS) -c $< -o $@ ;\ +  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 test "x$@" = "xinterpret.o"; then EXTRAFLAGS="$(INTERPRET_DEOPTIMIZE)"; else EXTRAFLAGS=; fi; \ +  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 "$@" "$<" + .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 \ +  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)" +  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)" \ -  fakeroot="$(buildroot)" +  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 *.o *.obj *.pp *.protos core y.output y.tab.c y.tab.h -  -rm -f $(TMP_BINDIR)/core *.o *.i *.i~ testsuite +  -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 + 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 -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.pike -  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    - tinstall: aclocal master.pike aclocal + 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 "$(SRCDIR)/test_dynamic_loading.in" >"$@" +  + dynloadtest.c: dynamic_load.c +  + dynloadtest@EXEEXT@: dynloadtest.o @EXTRA_OBJS@ fdlib.o port.o +  $(LD) $(LDFLAGS) dynloadtest.o @EXTRA_OBJS@ fdlib.o port.o $(LIBS) -o $@ +  +  + 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)" +  $(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: 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 -  unset PIKE_MODULE_PATH; \ -  unset 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 +     - verify_installed: module_testsuites testsuite master.pike -  if test "$(TESTARGS)" = "" ; then args="-a" ; else args="$(TESTARGS)" ; fi; \ -  $(exec_prefix)/pike $(PIKEOPTS) $(TMP_BINDIR)/test_pike.pike $$args + verify: testsuites tinstall +  PIKE_MODULE_PATH=""; PIKE_INCLUDE_PATH=""; \ +  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    -  + 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.pike -  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.pike + 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; \ -  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"`"'!' >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; }    - 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 + # 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    - aclocal: $(SRCDIR)/aclocal.m4 -  echo >aclocal "define(PIKE_INCLUDE_PATH,$(prefix)/include/pike)" -  cat >>aclocal $(SRCDIR)/aclocal.m4 + # + # 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 +  + # 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: 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: new_peep_engine $(SRCDIR)/language.c $(SRCDIR)/language.h $(SRCDIR)/interpret_protos.h depend + 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) +  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: + # $(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    - 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 + $(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 )    - $(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 || ( mv $(TMP_BUILDDIR)/tpike $(TMP_BUILDDIR)/tpike.bug ; 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 || ( mv $(TMP_BUILDDIR)/tpike $(TMP_BUILDDIR)/tpike.bug ; 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 + builtin_functions.o: $(SRCDIR)/case_info.h $(SRCDIR)/combine_path.h    - builtin_functions_t.o: builtin_functions.c + $(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 || ( mv $(TMP_BUILDDIR)/tpike $(TMP_BUILDDIR)/tpike.bug ; 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" "$@"    - # 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 +     -  + # 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 $(SRCDIR)/interpret_functions_fixed.h +    # make dependencies - depend: $(DEPEND) -  gcc -MM -MG $(PREFLAGS) $(SRCDIR)/*.c | $(TMP_BINDIR)/fixdepends.sh $(SRCDIR) -  ( cd modules && $(MAKE) $(MAKE_FLAGS) depend ) -  ( cd post_modules && $(MAKE) $(MAKE_FLAGS) depend ) -  $(SRCDIR)/configure @ac_configure_args@ + 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.$@ +  @( cd modules && { \ +  rm -f remake; \ +  $(MAKE) $(MAKE_FLAGS) depend || \ +  { test -f remake && $(MAKE) $(MAKE_FLAGS) depend; }; \ +  }) +  @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 modlist.h here to avoid doing this work again if the - # modules/modlist.h 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/modlist.h + modules/modlist_headers.h: static-modules-stamp    - $(SRCDIR)/interpret_protos.h.src: $(SRCDIR)/interpret_functions.h -  egrep '^OPCODE' <$(SRCDIR)/interpret_functions.h >$(SRCDIR)/interpret_protos.h.src + modules/linker_options: static-modules-stamp    - $(SRCDIR)/interpret_protos.h: $(SRCDIR)/interpret_protos.h.src -  @if if test -f $@; then cmp -s $< $@; else false; fi; then \ -  echo "No changes in $@ - leaving old"; \ -  else \ -  echo "cp $< $@"; \ -  cp $< $@; \ -  fi + post-module-pike-stamp: @BUILD_PIKE@ dynamic-modules-stamp +  @touch post-module-pike-stamp    -  + module.o: modules/modlist_headers.h modules/modlist.h post_modules/modlist_headers.h post_modules/modlist.h +  + tmodule.o: modules/modlist_headers.h modules/modlist.h +  + # Backward compat. + post_modules: post_module_objects +  + post_module_objects: $(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: $(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 &&\ -  mv y.tab.c language.c &&\ -  mv y.tab.h language.h.src ) +  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.h: $(SRCDIR)/language.h.src -  @if if test -f $@; then cmp -s $< $@; else false; fi; then \ -  echo "No changes in $@ - leaving old"; \ -  else \ -  echo "cp $< $@"; \ -  cp $< $@; \ -  fi + $(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)/language.c: $(SRCDIR)/language.h + $(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; }    -  + # UnixWare make needs help to find the source file... + builtin.o: $(SRCDIR)/builtin.c $(SRCDIR)/whitespace.h    - # - # This rule makes sure that builtin.c is created in the source dir. - # - $(SRCDIR)/builtin.c: $(SRCDIR)/builtin.cmod ./precompile.sh $(TMP_BINDIR)/precompile.pike + iterators.o: $(SRCDIR)/iterators.c    -  + backend.o: $(SRCDIR)/backend.c +  + libpike.o: $(SRCDIR)/libpike.c +    # Internal testing target   run_yacc: $(SRCDIR)/language.c    - modules/modlist.h: $(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/modlist.h + $(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    - modules/modlist_headers.h: modules/modlist.h -  touch modules/modlist_headers.h -  - modules/linker_options: modules/modlist.h -  touch modules/linker_options -  - module.o: modules/modlist_headers.h modules/modlist.h -  - $(SRCDIR)/configure: $(SRCDIR)/configure.in -  cd $(SRCDIR) && autoconf -  - 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:716:   precompile.sh: $(SRCDIR)/precompile.sh.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=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. + # + # 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 -  $(TMP_BINDIR)/mktestsuite $(SRCDIR)/testsuite.in >testsuite -DSRCDIR="$(SRCDIR)" + testsuite: $(SRCDIR)/testsuite.in $(TMP_BINDIR)/mktestsuite +  if test "$$PIKE_PATH_TRANSLATE" = ""; then \ +  $(TMP_BINDIR)/mktestsuite $(SRCDIR)/testsuite.in >testsuite \ +  -DSRCDIR="`echo $(SRCDIR)|./posix_to_native.sh`"; \ +  else \ +  $(TMP_BINDIR)/mktestsuite $(SRCDIR)/testsuite.in >testsuite \ +  -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 +  builtin.protos \ +  iterators.protos \ +  rbtree.protos    - $(HFILES): precompile.sh + $(HFILES): precompile.sh-stamp    - import-stamp: $(HFILES) precompile.sh -  @./precompile.sh fake_dynamic_load.pike import_functions.tmp $(HFILES) + 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    - @dependencies@ + # 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.    -  + $(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@