f236de1996-10-04David Hedbor # This line is needed on some machines. @SET_MAKE@ # Don't change this line. Define EXTRALIBS before this line if you # wish to add any libraries. LIBS=@LIBS@ $(EXTRALIBS) # not used yet INSTALL=@INSTALL@ SRCDIR=@srcdir@ VPATH=@srcdir@ # These are used while compiling TMP_LIBDIR = @LIBDIR@ TMP_BINDIR = @BINDIR@ TMP_BUILDDIR = @BUILDDIR@ TMP_DOCDIR = @DOCDIR@ prefix = @prefix@ exec_prefix = $(prefix)/bin lib_prefix = $(prefix)/lib/pike # # use bison please, yacc doesn't always work good enough. # YACC=@YACC@ YFLAGS=-d -v # If you don't have 'strchr', then add next flag to CFLAGS. # -Dstrchr=index -Dstrrchr=rindex # PROFIL= #PROFIL=-pg # #Enable warnings from the compiler, if wanted. # WARN=@WARN@ #WARN=-W -Wunused -Wformat #WARN -Wunused -Wformat -Wuninitialized #WARN= -Wall -Wshadow -Dlint #add extra defines here # Be sure to use -g and -DDEBUG when looking for bugs DEBUGDEF= DEFINES=-DDEFAULT_MASTER=\"$(lib_prefix)/master.pike\" # -O should work with all compilers OPTIMIZE=@OPTIMIZE@ # Preprocessor flags. PREFLAGS=-I. -I$(SRCDIR) $(DEFINES) OTHERFLAGS=$(DEBUGDEF) $(OSFLAGS) $(OPTIMIZE) $(WARN) $(PROFIL) CFLAGS=$(PREFLAGS) $(OTHERFLAGS) CC=@CC@ CPP=@CPP@ LD=$(CC) LDFLAGS=$(CFLAGS) RUNPIKE=$(TMP_BUILDDIR)/pike -m $(TMP_LIBDIR)/master.pike $(PIKEOPTS) MAKE_FLAGS = "prefix=$(prefix)" "exec_prefix=$(exec_prefix)" "CC=$(CC)" "OTHERFLAGS=$(OTHERFLAGS)" "TMP_BINDIR=$(TMP_BINDIR)" "DEBUGDEF=$(DEBUGDEF)" "TMP_LIBDIR=$(TMP_LIBDIR)" "RUNPIKE=$(RUNPIKE)" # Add alloca.o if you don't have alloca() on your machine. # Add ualarm.o if you don't have ualarm() on your machine. # OBJ= \ constants.o \ array.o \ backend.o \ builtin_functions.o \ callback.o \ docode.o \ dynamic_buffer.o \ error.o \ fd_control.o \ fsort.o \ gc.o \ hashtable.o \ interpret.o \ language.o \ las.o \ lex.o \ multiset.o \ signal_handler.o \ pike_types.o \ main.o \ mapping.o \ memory.o \ module.o \ object.o \ opcodes.o \ operators.o \ peep.o \ port.o \ program.o \ rusage.o \ stralloc.o \ stuff.o \ svalue.o @EXTRA_OBJS@ # # User callable targets # all: $(OBJ) module_objects $(MAKE) $(MAKE_FLAGS) pike pike: $(OBJ) modules/linker_options -mv pike pike.old $(LD) $(LDFLAGS) $(OBJ) `cat modules/linker_options` $(LIBS) -o pike # purify pure: $(OBJ) module_objects -mv pike pike.old purify -free-queue-length=500 -inuse-at-exit=yes -chain-length=12 $(LD) $(LDFLAGS) $(OBJ) `cat modules/linker_options` $(LIBS) -o pike # purecov cover: $(OBJ) module_objects -mv pike pike.old purecov purify -free-queue-length=500 -inuse-at-exit=yes -chain-length=12 $(LD) $(LDFLAGS) $(OBJ) `cat modules/linker_options` $(LIBS) -o pike # quantify quant: $(OBJ) module_objects -mv pike pike.old quantify $(LD) $(LDFLAGS) $(OBJ) `cat modules/linker_options` $(LIBS) -o pike # install install: if [ ! -d "$(prefix)" ]; then mkdir "$(prefix)" ; chmod 755 "$(prefix)" ; else : ; fi if [ ! -d "$(exec_prefix)" ]; then mkdir "$(exec_prefix)" ; chmod 755 "$(exec_prefix)" ; else : ; fi $(INSTALL) ./pike $(exec_prefix) if [ ! -d "$(prefix)/lib" ]; then mkdir "$(prefix)/lib" ; chmod 755 "$(prefix)/lib" ; else : ; fi if [ ! -d "$(lib_prefix)" ]; then mkdir "$(lib_prefix)" ; chmod 755 "$(lib_prefix)" ; else : ; fi $(INSTALL) $(TMP_LIBDIR)/master.pike $(lib_prefix) cp -r $(TMP_LIBDIR)/include $(lib_prefix) # tidy up a bit tidy: -rm -f *.o core y.output y.tab.c y.tab.h -rm -f $(TMP_BINDIR)/core *.o *.i *.i~ testsuite # make clean clean: tidy -( cd modules; ${MAKE} $(MAKE_FLAGS) clean ) -rm -f TAGS tags -rm -f yacc.acts yacc.debug yacc.tmp *.debug.log a.out # make _really_ clean spotless: clean rm -f Makefile machine.h find . -type f '(' -name '*~' -o -name '.*~' -o -name core -o -name '.nfs*' -name '#*#' ')' -print | xargs rm -f -rm -f lexical.c mon.out *.ln config.status -rm -f $(TMP_BINDIR)/driver $(TMP_BINDIR)/*~ $(TMP_BINDIR)/#*# -rm -f .pure driver* l.outa* -rm -f modules/*/testsuite # create tags tags: ctags *.c TAGS: etags -t *.h *.c # verify / debug verify_modules: ( cd modules ; $(MAKE) $(MAKE_FLAGS) verify ) verbose_verify_modules: ( cd modules ; $(MAKE) $(MAKE_FLAGS) verbose_verify ) verify: testsuite verify_modules $(RUNPIKE) $(TMP_BINDIR)/test_pike.pike testsuite # verify / debug verbose verbose_verify: testsuite verbose_verify_modules $(RUNPIKE) $(TMP_BINDIR)/test_pike.pike testsuite --verbose # verify & debug VERBOSE gdb_verify: testsuite @echo >.gdbinit handle SIGUSR1 nostop noprint pass @echo >>.gdbinit run -m $(TMP_LIBDIR)/master.pike $(PIKEOPTS) $(TMP_BINDIR)/test_pike.pike testsuite -v -v -f gdb ./pike @rm .gdbinit # run hilfe, for interactive testing run_hilfe: $(RUNPIKE) $(TMP_BINDIR)/hilfe # 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. export: new_peep_engine $(SRCDIR)/language.c $(SRCDIR)/language.h depend chmod +x $(SRCDIR)/install-sh $(RUNPIKE) $(TMP_BINDIR)/export.pike new_peep_engine: $(RUNPIKE) $(TMP_BINDIR)/mkpeep.pike $(SRCDIR)/peep.in >$(SRCDIR)/peep_engine.c $(SRCDIR)/peep_engine.c: peep.in echo "" >$(SRCDIR)/peep_engine.c -$(RUNPIKE) $(TMP_BINDIR)/mkpeep.pike $(SRCDIR)/peep.in >$(SRCDIR)/peep_engine.c peep.o: $(SRCDIR)/peep_engine.c # make dependencies (requires compiled Pike) depend: language.c gcc -MM $(PREFLAGS) $(SRCDIR)/*.c | $(TMP_BINDIR)/fixdepends.sh $(SRCDIR) ( cd modules ; $(MAKE) $(MAKE_FLAGS) depend ) docs: mkdir docs html_docs: docs $(RUNPIKE) $(TMP_BINDIR)/htmlify_docs docs $(TMP_DOCDIR) `echo $(SRCDIR)/modules/*/doc` # # Pike internal targets # module_objects: ( cd modules ; ${MAKE} $(MAKE_FLAGS) ) lang.o: lang.c config.h object.h interpret.h program.h $(SRCDIR)/language.h: language.yacc @echo "Expect 1 shift/reduce conflict." $(YACC) $(YFLAGS) $(SRCDIR)/language.yacc mv y.tab.c $(SRCDIR)/language.c mv y.tab.h $(SRCDIR)/language.h $(SRCDIR)/language.c: language.h touch $(SRCDIR)/language.c module.c: modlist.h $(SRCDIR)/configure: configure.in cd $(SRCDIR) && autoconf config.status: $(SRCDIR)/configure ./config.status --recheck $(SRCDIR)/Makefile.in: $(SRCDIR)/Makefile.src gcc -MM $(PREFLAGS) $(SRCDIR)/*.c | $(TMP_BINDIR)/fixdepends.sh $(SRCDIR) Makefile: $(SRCDIR)/Makefile.in config.status CONFIG_FILES=Makefile CONFIG_HEADERS= ./config.status @echo "Run make again" @exit 1 machine.h: stamp-h stamp-h: machine.h.in config.status CONFIG_FILES= CONFIG_HEADERS=machine.h ./config.status testsuite: $(SRCDIR)/testsuite.in $(TMP_BINDIR)/mktestsuite $(SRCDIR)/testsuite.in >testsuite # Depencies begin here alloca.o: alloca.c array.o: array.c \ global.h machine.h \ config.h \ port.h \ svalue.h \ array.h las.h \ dynamic_buffer.h \ program.h \ object.h \ stralloc.h \ interpret.h \ language.h \ error.h \ pike_types.h \ fsort.h \ builtin_functions.h \ callback.h \ gc.h main.h backend.o: backend.c \ global.h machine.h \ config.h \ port.h \ backend.h \ time_stuff.h \ callback.h \ array.h las.h \ svalue.h \ dynamic_buffer.h \ program.h \ interpret.h \ object.h \ error.h \ fd_control.h \ main.h builtin_functions.o: builtin_functions.c \ global.h machine.h \ config.h \ port.h \ interpret.h \ program.h \ svalue.h \ macros.h \ object.h \ array.h las.h \ dynamic_buffer.h \ error.h \ constants.h \ hashtable.h \ mapping.h \ stralloc.h \ lex.h \ multiset.h \ pike_types.h \ rusage.h \ operators.h \ fsort.h \ callback.h \ gc.h \ backend.h \ time_stuff.h \ main.h callback.o: callback.c \ macros.h \ memory.h \ types.h machine.h \ callback.h \ array.h las.h \ config.h \ svalue.h \ dynamic_buffer.h \ program.h constants.o: constants.c \ constants.h \ svalue.h \ types.h machine.h \ hashtable.h \ las.h \ config.h \ dynamic_buffer.h \ program.h \ macros.h \ memory.h \ pike_types.h \ stralloc.h \ interpret.h docode.o: docode.c \ global.h machine.h \ config.h \ port.h las.h \ svalue.h \ dynamic_buffer.h \ program.h \ language.h \ pike_types.h \ stralloc.h \ interpret.h \ constants.h \ hashtable.h \ array.h \ macros.h \ error.h \ main.h \ callback.h \ lex.h \ builtin_functions.h \ peep.h \ docode.h dynamic_buffer.o: dynamic_buffer.c \ global.h machine.h \ config.h \ port.h \ dynamic_buffer.h \ stralloc.h \ error.h \ svalue.h error.o: error.c \ global.h machine.h \ config.h \ port.h \ macros.h \ error.h \ svalue.h \ interpret.h \ program.h \ stralloc.h \ builtin_functions.h \ callback.h \ array.h las.h \ dynamic_buffer.h \ object.h fd_control.o: fd_control.c \ fd_control.h \ global.h machine.h \ config.h \ port.h fsort.o: fsort.c \ global.h machine.h \ config.h \ port.h \ fsort.h \ fsort_template.h gc.o: gc.c \ global.h machine.h \ config.h \ port.h \ array.h las.h \ svalue.h \ dynamic_buffer.h \ program.h \ multiset.h \ mapping.h \ object.h gc.h \ main.h \ callback.h hashtable.o: hashtable.c \ global.h machine.h \ config.h \ port.h \ hashtable.h \ stralloc.h \ stuff.h \ error.h \ svalue.h interpret.o: interpret.c \ global.h machine.h \ config.h \ port.h \ interpret.h \ program.h \ object.h \ svalue.h \ array.h las.h \ dynamic_buffer.h \ mapping.h \ error.h \ language.h \ stralloc.h \ constants.h \ hashtable.h \ macros.h \ multiset.h \ backend.h \ time_stuff.h \ callback.h \ operators.h \ opcodes.h \ main.h lex.h \ builtin_functions.h \ signal_handler.h \ gc.h language.o: language.c \ global.h machine.h \ config.h \ port.h \ interpret.h \ program.h \ array.h las.h \ svalue.h \ dynamic_buffer.h \ object.h \ stralloc.h \ lex.h \ pike_types.h \ constants.h \ hashtable.h \ macros.h \ error.h \ docode.h las.o: las.c \ global.h machine.h \ config.h \ port.h \ language.h \ interpret.h \ program.h \ las.h \ svalue.h \ dynamic_buffer.h \ array.h \ object.h \ stralloc.h \ lex.h \ pike_types.h \ constants.h \ hashtable.h \ mapping.h \ multiset.h \ error.h \ docode.h \ main.h \ callback.h \ operators.h lex.o: lex.c \ global.h machine.h \ config.h \ port.h \ language.h \ array.h las.h \ svalue.h \ dynamic_buffer.h \ program.h \ lex.h \ stralloc.h \ constants.h \ hashtable.h \ stuff.h \ interpret.h \ error.h \ object.h \ operators.h \ opcodes.h \ builtin_functions.h \ callback.h \ main.h \ macros.h \ time_stuff.h main.o: main.c \ global.h machine.h \ config.h \ port.h \ backend.h \ time_stuff.h \ callback.h \ array.h las.h \ svalue.h \ dynamic_buffer.h \ program.h \ module.h \ object.h \ lex.h \ pike_types.h \ builtin_functions.h \ stralloc.h \ interpret.h \ error.h \ macros.h \ signal_handler.h mapping.o: mapping.c \ global.h machine.h \ config.h \ port.h main.h \ callback.h \ array.h las.h \ svalue.h \ dynamic_buffer.h \ program.h \ object.h \ mapping.h \ macros.h \ language.h \ error.h \ interpret.h \ gc.h memory.o: memory.c \ global.h machine.h \ config.h \ port.h \ error.h \ svalue.h \ macros.h module.o: module.c \ module.h \ types.h machine.h \ macros.h \ memory.h \ error.h \ svalue.h modlist.h multiset.o: multiset.c \ global.h machine.h \ config.h \ port.h \ array.h las.h \ svalue.h \ dynamic_buffer.h \ program.h \ multiset.h \ macros.h \ error.h \ interpret.h \ builtin_functions.h \ callback.h \ gc.h object.o: object.c \ global.h machine.h \ config.h \ port.h \ object.h \ svalue.h \ dynamic_buffer.h \ interpret.h \ program.h \ stralloc.h \ macros.h \ error.h \ main.h \ callback.h \ array.h las.h \ gc.h \ backend.h \ time_stuff.h opcodes.o: opcodes.c \ global.h machine.h \ config.h \ port.h \ interpret.h \ program.h \ svalue.h \ array.h las.h \ dynamic_buffer.h \ stralloc.h \ mapping.h \ multiset.h \ opcodes.h \ object.h \ error.h \ pike_types.h operators.o: operators.c \ global.h machine.h \ config.h \ port.h \ interpret.h \ program.h \ svalue.h \ multiset.h \ las.h \ dynamic_buffer.h \ mapping.h \ array.h \ stralloc.h \ opcodes.h \ operators.h \ language.h \ error.h \ docode.h \ constants.h \ hashtable.h \ peep.h lex.h \ object.h pike_types.o: pike_types.c \ global.h machine.h \ config.h \ port.h \ svalue.h \ pike_types.h \ stralloc.h \ stuff.h \ array.h las.h \ dynamic_buffer.h \ program.h \ constants.h \ hashtable.h \ object.h \ multiset.h \ mapping.h \ macros.h \ error.h port.o: port.c \ global.h machine.h \ config.h \ port.h \ macros.h \ time_stuff.h program.o: program.c \ global.h machine.h \ config.h \ port.h \ program.h \ object.h \ svalue.h \ dynamic_buffer.h \ pike_types.h \ stralloc.h \ las.h \ language.h \ lex.h \ macros.h \ fsort.h \ error.h \ docode.h \ interpret.h \ hashtable.h \ main.h \ callback.h \ array.h gc.h \ compilation.h rusage.o: rusage.c \ global.h machine.h \ config.h \ port.h \ time_stuff.h \ rusage.h signal_handler.o: signal_handler.c \ global.h machine.h \ config.h \ port.h \ svalue.h \ interpret.h \ program.h \ stralloc.h \ constants.h \ hashtable.h \ las.h \ dynamic_buffer.h \ macros.h \ backend.h \ time_stuff.h \ callback.h \ array.h \ error.h stralloc.o: stralloc.c \ global.h machine.h \ config.h \ port.h \ stralloc.h \ macros.h \ dynamic_buffer.h \ error.h \ svalue.h stuff.o: stuff.c \ stuff.h \ types.h machine.h svalue.o: svalue.c \ global.h machine.h \ config.h \ port.h main.h \ callback.h \ array.h las.h \ svalue.h \ dynamic_buffer.h \ program.h \ stralloc.h \ mapping.h \ multiset.h \ object.h \ constants.h \ hashtable.h \ error.h \ interpret.h ualarm.o: ualarm.c