# This line is needed on some machines. @SET_MAKE@ # #Choose your malloc # MALLOC=sysmalloc #MALLOC=smalloc #MALLOC=debugmalloc #I don't need any of these #EXTRALIBS=-lMallocDebug -lsys_s -lsocket -linet -lnsl -lseq #EXTRALIBS=-ldebug-malloc /usr/lib/debug/mallocmap.o /usr/lib/debug/malloc.o EXTRALIBS= OSFLAGS= # Don't change this line. Define EXTRALIBS before this line if you # wish to add any libraries. LIBS=@LIBS@ $(EXTRALIBS) # define this to be -lresolv if your machine has it. # HP and NeXT don't have it. #RESOLV=-lresolv RESOLV= # not used yet INSTALL=@INSTALL@ # uncomment UALARM if your machine is missing the ualarm() system call. # needed by HP, A/UX (Apple Mac), EP/IX (MIPS), Sequent Dynix/3, Ultrix #UALARM=ualarm.o SRCDIR=@srcdir@ VPATH=@srcdir@ # Set MUD_LIB to the directory which contains the mud data. Was formerly # defined in config.h ! # This is just a dummy define, it is normally replaced by the script 'build' MUD_LIB = @MUD_LIB@ # # Set BINDIR to the directory where you want to install the executables. # (note that the driver expectes the small master.c to be in this dir when # running in script mode) # This is just a dummy define, it is normally replaced by the script 'build' # if you can't run 'build' define this to the full pathname of your dir BINDIR = @BINDIR@ # #use bison please, yacc doesn't always work good enough. # YACC=@YACC@ YFLAGS=-d -v # #This program should compare 2 files and return an error if they are not alike. # CMP=@COMPARE@ #CMP=diff -wh >/dev/null 2>/dev/null #CMP=cmp -s # 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 DEF= # define this if you want (compiler) optimization enabled. # *WARNING* using high levels of optimization (e.g. -O3) can cause some # compilers to produce incorrect code. If the driver is behaving # inexplicably, try using a lower level of optimization (or none). # Uncomment one or none of the following optimization lines. # -O should work with all compilers #OPTIMIZE=-O # -O2 can be used with most compilers though #OPTIMIZE=-O2 # use with gcc #OPTIMIZE=-g -O2 -funroll-loops -fomit-frame-pointer # use for debug # OPTIMIZE=-g OPTIMIZE=@OPTIMIZE@ # System V Release 4 (386/486) #OSFLAGS=-DSVR4 DIRS=-DMUD_LIB='"$(MUD_LIB)"' -DBINDIR='"$(BINDIR)"' DEFINES=-DMALLOC_$(MALLOC) $(DEF) $(DIRS) PREFLAGS=-I. -I$(SRCDIR) $(DEFINES) CFLAGS=$(OSFLAGS) $(OPTIMIZE) $(WARN) $(PROFIL) $(PREFLAGS) CC=@CC@ #CC=distribute gcc CPP=@CPP@ LD=$(CC) LDFLAGS=$(CFLAGS) MAKE_FLAGS = "BINDIR=$(BINDIR)" "MUD_LIB=$(MUD_LIB)" "CC=$(CC)" "CFLAGS=$(OPTIMIZE) $(OSFLAGS)" # Add alloca.o if you don't have alloca() on your machine. # Add ualarm.o if you don't have ualarm() on your machine. # DRIVER_OBJ=lang.o las.o lex.o efuns.o list_efuns.o array_efuns.o \ main.o interpret.o simulate.o object.o backend.o array.o stralloc.o \ comm.o regexp.o mapping.o $(MALLOC).o call_out.o otable.o \ simul_efun.o sprintf.o mapping_efuns.o opcodes.o hash.o port.o \ more_hashes.o msort2.o fsort.o list.o save_objectII.o instrs.o \ math.o socket_efuns.o socket.o socket_ctrl.o socket_err.o \ operators.o patchlevel.o batch_efuns.o dbase.o dbase_efuns.o \ dynamic_buffer.o @ALLOCA@ @LIBOBJS@ all: driver driver: $(DRIVER_OBJ) Makefile -mv driver driver.old -cat $(SRCDIR)/patchlevel.h $(LD) $(LDFLAGS) $(DRIVER_OBJ) -o driver $(LIBS) .c.o: @( echo $(CC) -c $(CFLAGS) -o $@ $< ; \ if $(CPP) $(CFLAGS) $(CPPFLAGS) -o $*.i $< ; then \ if test -f $@ && $(CMP) $*.i $*.i~ ; then \ echo Not recompiling $@ ; \ touch $@ ; \ else \ if test -f "$*.i~" ; then rm $*.i~; fi ; \ if $(CC) -c $(CFLAGS) -o $@ $*.i ; then \ mv $*.i $*.i~ ;\ else \ exit $$? ;\ fi ;\ fi ;\ else \ exit $$? ;\ fi ;\ ) ; pure: $(DRIVER_OBJ) Makefile -mv driver driver.old -cat $(SRCDIR)/patchlevel.h purify -free-queue-length=500 -inuse-at-exit=yes -chain-length=12 $(LD) $(LDFLAGS) $(DRIVER_OBJ) -o driver $(LIBS) do_script2: #!/bin/sh set -x CC='$(CC)' FLAGS='$(TMP_CFLAGS) -DMUD_LIB="$(MUD_LIB)" -DBINDIR="$(BINDIR)"' CFLAGS2=$(OPTIMIZE) $(OSFLAGS) export CC CFLAGS CFLAGS2 do_script: @$(MAKE) -n do_script2 @( D=`pwd`; \ cd $(SRCDIR); \ $(MAKE) -f $$D/Makefile 'CFLAGS=$$$$FLAGS' -n | sed "s;-target [^ ]*;;" | sed 's;^$(CC);$$CC;' | sed 's;$(OPTIMIZE) $(OSFLAGS);$$CFLAGS;' \ ) @echo set +x script: Makefile $(MAKE) do_script | grep -v '^make' >$(SRCDIR)/script chmod +x $(SRCDIR)/script export: script $(BINDIR)/test.lpc find $(SRCDIR) -type f '(' -name '*~' -o -name '.*~' -o -name core -o -name '.nfs*' -o -name '#*#' ')' -print | xargs rm -f find $(MUD_LIB) -type f '(' -name '*~' -o -name '.*~' -o -name core -o -name '.nfs*' -o -name '#*#' ')' -print | xargs rm -f find $(BIN_DIR) -type f '(' -name '*~' -o -name '.*~' -o -name core -o -name '.nfs*' -o -name '#*#' ')' -print | xargs rm -f -rm $(MUD_LIB)/*.debug.log $(CC) $(CFLAGS) $(SRCDIR)/patch_level.c ( NAME=`./a.out 1` ;\ rm a.out ; \ cd $(SRCDIR)/../.. ; \ tar -cvf lpc4/$$NAME.tar lpc4/src/* lpc4/bin lpc4/doc lpc4/lib/*;\ rm -rf lpc4/$$NAME.tar.gz; \ gzip -9 lpc4/$$NAME.tar \ ); # ( cd ../.. ; tar -cvf lpc4.tar lpc4/src/* lpc4/bin/* lpc4/lib/* lpc4/doc/*; rm -rf lpc4.tar.gz; gzip -9 lpc4.tar ); patch: $(CC) $(CFLAGS) $(SRCDIR)/patch_level.c ./a.out >$(SRCDIR)/patchlevel.h -rm -f a.out cat $(SRCDIR)/patchlevel.h list_funcs: func_spec.c config.h $(CPP) $(PREFLAGS) $(SRCDIR)/func_spec.c >list_funcs differ_opcodes: cp $(MUD_LIB)/opcode_statistics $(SRCDIR)/permanent_statistics cp lang.h $(SRCDIR)/permanent_lang.h rm efun_defs.c make_func.c: make_func.y $(YACC) $(YFLAGS) $(SRCDIR)/make_func.y mv y.tab.c make_func.c make_func: make_func.o port.o $(CC) $(CFLAGS) make_func.o port.o -o make_func -lm make_func.o: config.h install: driver install -c $? $(BINDIR)/lpc install.utils: (cd util; $(MAKE) $(MAKE_FLAGS) install) utils: (cd util; $(MAKE) $(MAKE_FLAGS)) parse: driver -mv parse parse.old cp driver parse lint: *.c lint *.c lang.o: lang.c config.h object.h interpret.h exec.h instrs.h lang.h: lang.y @echo "Expect 1 shift/reduce conflict." $(YACC) $(YFLAGS) lang.y mv y.tab.c lang.c mv y.tab.h lang.h lang.c: lang.h touch lang.c depend: lang.c gcc -MM $(PREFLAGS) *.c $(SRCDIR)/*.c | sed 's;$(SRCDIR)/;;g' | sed 's;./;;g' >$(SRCDIR)/dependencies depend: dependencies tidy: -rm -f *.o core $(MUD_LIB)/core y.output y.tab.c y.tab.h -rm -f $(BINDIR)/core *.o *.i *.i~ clean: tidy -rm -f test.lpc -rm -f lang.h lang.c efun_protos.h opc_cost.h make_func.pure_* -rm -f efun_defs.c lang.y efun_defs func_spec base.h -rm -f make_func.c $(MUD_LIB)/lpmud.log TAGS tags list_funcs -rm -f yacc.acts yacc.debug yacc.tmp *.debug.log a.out spotless: clean rm -f Makefile machine.h find . -type f '(' -name '*~' -o -name '.*~' -o -name core -o -name '.nfs*' -name '#*#' ')' -print | xargs rm -f find $(MUD_LIB) -type f '(' -name '*~' -o -name '.*~' -o -name core -o -name '.nfs*' -name '#*#' ')' -print | xargs rm -f -rm -f lexical.c mon.out *.ln parse.old parse frontend frontend.c -rm -f config.status driver driver.old make_func -rm -f $(BINDIR)/driver $(BINDIR)/*~ $(BINDIR)/#*# -rm -f $(MUD_LIB)/OBJ_DUMP $(MUD_LIB)/*.debug.log $(MUD_LIB)/gmon.out -rm -f $(MUD_LIB)/log/* $(MUD_LIB)/opcode_statistics -rm -f machines which_machine make_func -rm -f .pure driver* l.outa* ../bin/WIZLIST WIZLIST @(cd util ; echo "Cleaning in util." ; $(MAKE) clean) cp_machine: cp ../machines machines echo >which_machine 0 frontend: comm2.o frontend.o $(CC) $(CFLAGS) comm2.o frontend.o -o frontend $(LIBS) tags: ctags *.c TAGS: etags -t *.h *.c lang.y: make_func func_spec.c language.y config.h list_funcs \ permanent_statistics permanent_lang.h ./make_func list_funcs $(SRCDIR)/language.y lang.y efun_protos.h $(SRCDIR)/permanent_statistics $(SRCDIR)/permanent_lang.h opc_cost.h > efun_defs.c efun_protos.h: lang.y touch efun_protos.h efunctions.h: lang.y touch efun_protos.h efun_defs.c: lang.y touch efun_defs.c opc_cost.h: lang.y touch opc_cost.h efuns.h: lang.h configure: configure.in cd $(SRCDIR) && autoconf config.status: configure ./config.status --recheck Makefile: Makefile.in config.status ./config.status touch Makefile machine.h @echo Run make again. @exit 1 machine.h: machine.h.in config.status ./config.status touch Makefile machine.h @echo Run make again. @exit 1 $(BINDIR)/test.lpc: $(BINDIR)/make_lpc4_test $(BINDIR)/make_lpc4_test >$(BINDIR)/test.lpc verify: $(BINDIR)/test.lpc driver ./driver -Cstay $(BINDIR)/test.lpc verbose_verify: $(BINDIR)/test.lpc driver ./driver -Cstay $(BINDIR)/test.lpc --verbose include @srcdir@/dependencies