home *** CD-ROM | disk | FTP | other *** search
- # Makefile $Revision: 6.21 $
- #
- # 1) Select the proper EXDIR (path), MANDIR, MANEXT, LIBDIR, SIGVOID,
- # RE_COMP/REGCMP, DFLT_PAGER, and FMOD. Most of the other things aren't
- # normally changed (see the comments with each)
- # 2) Select the proper machine/compiler/OS section of code
- # for MS-DOS look for the pattern 'MS-DOS'
- # 3) make install
- # 4) If you have the command 'file' that uses /etc/magic add the line:
- # 38 string Spreadsheet sc file
-
-
- # Specify the name of the program.
- # All documentation and installation keys on this value.
- #
-
- #include the following rule for SAS C as it doesn't like the default
- # GNU rule, comment the rule out for GCC
- .c.o:
- $(CC) $(CFLAGS) $<
-
- name=asc
- NAME=ASC
-
- # This is where the install step puts it.
- #EXDIR=/site/bin
- EXDIR=/usr/local/bin
-
- # This is where the man page goes.
- #MANDIR=/usr/local/src/man/man1 # reno
- #MANEXT=1 # reno
- MANDIR=/usr/man/manl
- MANEXT=l
- MANMODE=644
-
- # This is where the library file (tutorial) goes.
- #LIBDIR=/usr/local/share/$(name) # reno
- LIBDIR=/usr/local/lib/$(name)
-
- # Set SIMPLE for lex.c if you don't want arrow keys or lex.c blows up
- SIMPLE=
- #SIMPLE=-DSIMPLE
-
- # Set BROKENCURSES if your curses has the nl/nonl bug
- # if it does and you don't set BROKENCURSES, the display will
- # be staggered across the screen. Also try IDLOKBAD below.
- BROKENCURSES=
- #BROKENCURSES=-DBROKENCURSES
-
- # Set DOBACKUPS if you would like a backup copy of a source file on a save
- DOBACKUPS=
- #DOBACKUPS=DEFINE DOBACKUPS
-
- # Set INTERNATIONAL if you need 8 bit characters. You should
- # not set this if you are running 5.3.0. I think it is OK in 5.3.1.
- #INTERNATIONAL=-DINTERNATIONAL
- INTERNATIONAL=
-
- # Set SIGVOID if signal routines are type void.
- # use: SIGVOID=-DSIGVOID for:
- # System 5.3, SunOS 4.X, VMS, BSD4.4 (reno), and ANSI C Compliant systems
- # use: SIGVOID= for:
- # BSD systems (excluding reno, BSD4.4), and the UNIXPC 'cc'
- #SIGVOID=-DSIGVOID
- SIGVOID=
-
- # Set IEEE_MATH if you need setsticky() calls in your signal handlers
- #
- #IEEE_MATH=-DIEEE_MATH
- IEEE_MATH=
-
- # Set RINT=-DRINT if you do not have rint() in math.h
- # Set RINT= on/with (they have rint):
- # SunOS 4.0.3c compiler
- # BSD4.4 (reno)
- #RINT=
- RINT=DEFINE RINT
-
- # Set RE_COMP if you have the re_comp/re_exec regular expression routines
- # (most BSD based systems do).
- #RE_COMP=-DRE_COMP
- RE_COMP=
-
- # Set REGCMP if you have the regcmp/regex regular expression routines
- # (most System V based systems do)
- #REGCMP=-DREGCMP
- REGCMP=
-
- # This is the name of a pager like "more".
- # "pg" may be appropriate for SYSV.
- #DFLT_PAGER=-DDFLT_PAGER=\"less\"
- #DFLT_PAGER=-DDFLT_PAGER=\"more\" # generic && reno
- DFLT_PAGER=
-
- # this is the name to save back ups in
- #SAVE=-DSAVENAME=\"$(NAME).SAVE\"
- SAVE=
-
- # path to crypt, do not define if you don't have crypt
- # most systems
- #CRYPT=-DCRYPT_PATH=\"/bin/crypt\"
- # BSD
- #CRYPT=-DCRYPT_PATH=\"/usr/bin/crypt\"
- CRYPT=
- # other people?
- #CRYPT=-DCRYPT_PATH=\"/usr/local/bin/crypt\"
-
- # If you get errors about fmod being undefined when you try to
- # compile, then define NO_FMOD (most likely BSD4.3 and Mt Xinu).
- #FMOD=-DNO_FMOD
- FMOD=
-
- # If your system doesn't have notimeout() in curses define NONOTIMEOUT
- #NO_NOTIMEOUT=
- NO_NOTIMEOUT=DEFINE NONOTIMEOUT
-
- # flags for lint
- LINTFLAGS=-abchxv
-
- # Format of quick reference guide generated by $(name)qref
- # Leave undefined for normal text output.
- #QREF_FMT=
- QREF_FMT=DEFINE TROFF
-
- # *** SPECIAL NOTES ***
- # For ULTRIX: define the BSD4.2 section and SIGVOID above
- # tdw@cl.cam.ac.uk tested on Ultrix 3.1C-0
- # HP-UX 7.0: Do NOT use -O
- # (known broken, try sc's boolean operators if you wish)
- #
- # **** SYSV curses bugs... ****
- # Try setting IDLOKBAD to fix (with an empty spreadsheet):
- # a) Redrawing the bottom half of the screen when you
- # move between row 9 <-> 10
- # b) the highlighted row labels being trash when you
- # move between row 9 <-> 10
- # c) On an xterm on Esix Rev. D+ from eating lines
- # -goto (or move) a few lines (or more) past the bottom
- # of the screen, goto (or move) to the top line on the
- # screen, move upward and the current line is deleted, the
- # others move up even when they should not, check by
- # noticing the rows become 2, 3, 40, 41, 42... (etc).
- # Known systems/terminfos w/ curses problems:
- # {Esix Rev. D+, AT&T SysV3.2.1}:at386-m,xterm, HP-UX7.0:(not sure)
- IDLOKISBAD=DEFINE IDLOKBAD
- #IDLOKISBAD=
-
- # If you don't have idlok() in your curses define NOIDLOK
- NO_IDLOK=
- #NO_IDLOK=-DNOIDLOK
-
- # If moving right off the screen causes the screen to not redraw
- # properly, define RIGHT_CBUG to get around a curses problem on some
- # boxes, this forces screen redraws when going right off the screen
- RIGHTBUG=
- #RIGHTBUG=-DRIGHT_CBUG
-
- # IF you have problems w/ your yacc try bison, Berkeley yacc, or
- # some other yacc. Some systems don't allow you to
- # increase the number of terminals (mostly AT&T), SCO's does though.
- #YACC=yacc
- # NOTE: Do not use with bison 1.16! Get a new version....
- YACC=bison -y
-
- # MS-DOS needs y_tab instead of the normal y.tab
- #YTAB=y_tab
- YTAB=y.tab
-
- # Command to use to make temporary copies of some source files.
- LN=copy
- #LN=ln -s
- #LN=cp
- MV=rename
-
- #### SYSTEM DEFINES ####
-
- # Use this for system AIX V3.1
- #CFLAGS= -O -DSYSV2 -DCHTYPE=int -DNLS
- #LDFLAGS=
- #LIB=-lm -lPW -lcurses
-
- # Use this for system V.2 (includes: HP-UX 7.05, UNIXPC)
- #CFLAGS= -O -DSYSV2
- #LDFLAGS=
- #LIB=-lm -lPW -lcurses
- # with gcc on a Sequent also use:
- #CC=att gcc
- #CFLAGS= -DSYSV2 -g -pipe -traditional
-
- # Use this for system V.3
- #CFLAGS= -DSYSV3 -O
- #LDFLAGS= -s
- #CFLAGS= -DSYSV3 -g
- #LDFLAGS= -g
- #LIB=-lm -lcurses -lPW
- # with gcc also use:
- #CC=gcc
- #CFLAGS= -DSYSV3 -O -pipe -traditional
- # debugging bison (bison 1.16 is broken)
- #CFLAGS= -DSYSV3 -g -pipe -traditional
- #YACC=bison -y -v -t -l
-
- # Use this for system V.4
- #CFLAGS= -DSYSV4 -DSYSV3 -O
- #LDFLAGS= -s
- #LIB=-lm -lcurses -lgen
- # with gcc also use:
- #CC=gcc
- #CFLAGS= -DSYSV3 -O -pipe
-
- # Microport
- #CFLAGS= -DSYSV2 -O -DUPORT -Ml
- #LDFLAGS=-Ml
- #LIB=-lm -lcurses -lPW
-
- # Use this for AMIGA
- CFLAGS= DEFINE SYSV3
- LDFLAGS=
- LIB=-lm -lcurses -ltermcap
- # with gcc also use:
- CC=sc
-
- # Use this for Sequent boxes
- #CC=atscc
- #CFLAGS=-O -DBSD42
- #LDFLAGS=
- #LIB=-lm -lcurses -ltermcap
- #PSCLIB=-lseq
- # with gcc also use:
- #CC=gcc
- #CFLAGS= -O -DBSD42 -pipe
-
- # Use this for BSD 4.3
- #CFLAGS= -O -DBSD43
- #LDFLAGS=
- #LIB=-lm -lcurses -ltermcap
-
- # Use this for SunOS 4.X if you have the System V package installed.
- # This will link with the System V curses which is preferable to the
- # BSD curses (especially helps scrolling on slow (9600bps or less)
- # serial lines).
- #
- # Be sure to define SIGVOID and RE_COMP above.
- #
- #CC=/usr/5bin/cc
- #CFLAGS= -O -DSYSV3
- #LDFLAGS=
- #LIB=-lm -lcurses
-
- # Use this for system III (XENIX)
- #CFLAGS= -O -DSYSIII
- #LDFLAGS= -i
- #LIB=-lm -lcurses -ltermcap
-
- # Use this for XENIX Version 2.3
- #CFLAGS= -O -DSYSIII -DXENIX2_3
- #LDFLAGS= -i
- #LIB=-lm -lcurses -ltermcap
-
- # Use this for VENIX
- #CFLAGS= -DVENIX -DBSD42 -DV7
- #LDFLAGS= -z -i
- #LIB=-lm -lcurses -ltermcap
-
- # For SCO Unix V rel. 3.2.0
- # -compile using rcc, cc does not cope with gram.c
- # -edit /usr/include/curses.h, rcc does not understand #error
- # -link: make CC=cc, rcc's loader gets unresolved __cclass, __range
- # (rather strange,?)
- #CC=rcc
- #CC=cc
- #CC=gcc -fstrength-reduce
- #SIGVOID=-DSIGVOID
- #CFLAGS= -O -DSYSV3
- #LDFLAGS=
- #LIB=-lm -lcurses -ltinfo -lPW
- #YACC=yacc -Sm10000
-
- # Use this for SCO Unix 3.2.2 and ODT 1.1
- #CC=cc
- #CFLAGS= -O -DSYSV3
- #LDFLAGS=
- #LIB=-lm -lcurses -lPW -lmalloc -lc_s
- #YACC=yacc -Sm10000
-
- # Use this for MS-DOS, Microsoft C 5.1 and NDMAKE
- #CC=cl
- #CFLAGS= -AL -O -Fo$*.o
- #LDFLAGS=/noi /st:0x4000
- #LIB=lcurses
- #YACC=bison -y
- #
- #.SUFFIXES : .o .c
- #.c.o:
- # $(CC) $(CFLAGS) -c $*.c
-
- # All of the source files
- SRC=Makefile cmds.c crypt.c eres.sed format.c gram.y help.c interp.c \
- lex.c psc.c range.c sc.c sc.h screen.c sres.sed version.c \
- vi.c vmtbl.c xmalloc.c
-
- # The objects
- OBJS=cmds.o crypt.o format.o gram.o help.o interp.o lex.o range.o sc.o \
- screen.o version.o vi.o vmtbl.o xmalloc.o
-
- # The documents in the Archive
- DOCS=CHANGES README sc.doc psc.doc tutorial.sc VMS_NOTES torev build.com
-
- all: $(name) p$(name) $(name)qref
-
- $(name):$(PAR) $(OBJS)
- slink lib:c.o $(OBJS) to $(name) LIB LLIB:curses.lib LLIB:unix.lib LIB:scm.lib LIB:sc.lib LIB:amiga.lib
- # $(CC) ${LDFLAGS} ${OBJS} ${LIB} -o $(name)
-
- # Alternative link for MS-DOS
- #$(name): $(OBJS)
- # link ${LDFLAGS} ${OBJS},$(name),,${LIB};
-
- gram.c: gram.y
- $(YACC) -d gram.y
- $(MV) $(YTAB).c gram.c
-
- $(YTAB).h: gram.y
-
- p$(name): psc.c pvmtbl.o pxmalloc.o
- $(CC) $(CFLAGS) ${LDFLAGS} -o p$(name) psc.c pvmtbl.o pxmalloc.o ${PSCLIB}
-
- # Alternative link for MS-DOS (NB: MSC 5.1 has no getopt.c)
- #p$(name): psc.o pvmtbl.o pxmalloc.o getopt.o
- # link ${LDFLAGS} psc.o pvmtbl.o pxmalloc.o getopt.o,p$(name);
-
- qhelp.c: help.c
- -rm -f qhelp.c
- ${LN} help.c qhelp.c
-
- $(name)qref: qhelp.c sc.h
- $(CC) $(CFLAGS) $(LDFLAGS) -DQREF $(QREF_FMT) -DSCNAME=\"$(NAME)\" -o $(name)qref qhelp.c
-
- # Alternative link for MS-DOS
- #$(name)qref: qhelp.c sc.h
- # $(CC) -AL -O -Foqhelp.o -c -DQREF -DSCNAME=\"$(name)\" qhelp.c
- # link ${LDFLAGS} qhelp.o,$(name)qref;
-
- pvmtbl.c: vmtbl.c
- -rm -f pvmtbl.c
- ${LN} vmtbl.c pvmtbl.c
-
- pvmtbl.o: sc.h pvmtbl.c
- $(CC) ${CFLAGS} -DPSC pvmtbl.c
-
- pxmalloc.c: xmalloc.c
- -rm -f pxmalloc.c
- ${LN} xmalloc.c pxmalloc.c
-
- # Objects
-
- cmds.o: cmds.c sc.h
- $(CC) ${CFLAGS} ${DOBACKUPS} ${CRYPT} cmds.c
-
- crypt.o: crypt.c sc.h
- $(CC) ${CFLAGS} ${CRYPT} ${DOBACKUPS} crypt.c
-
- format.o: format.c
-
- help.o: help.c sc.h
- $(CC) ${CFLAGS} ${CRYPT} help.c
-
- qhelp.o: qhelp.c sc.h
- $(CC) ${CFLAGS} ${CRYPT} qhelp.c
-
- interp.o: interp.c sc.h
- $(CC) ${CFLAGS} ${IEEE_MATH} ${SIGVOID} ${RINT} ${RE_COMP} ${REGCMP} ${FMOD} interp.c
-
- gram.o: sc.h $(YTAB).h gram.c
- $(CC) ${CFLAGS} gram.c
- # sed -f eres.sed gram.y >experres.h
- # sed -f sres.sed gram.y >statres.h
-
- lex.o: sc.h $(YTAB).h gram.o lex.c
- $(CC) ${CFLAGS} ${SIMPLE} ${IEEE_MATH} ${SIGVOID} ${NO_NOTIMEOUT} lex.c
-
- pxmalloc.o: sc.h pxmalloc.c
- $(CC) ${CFLAGS} -DPSC pxmalloc.c
-
- range.o: range.c sc.h
-
- sc.o: sc.h sc.c
- $(CC) ${CFLAGS} ${DFLT_PAGER} ${RIGHTBUG} ${SIGVOID} ${SAVE} sc.c
-
- screen.o: sc.h screen.c
- $(CC) ${CFLAGS} ${BROKENCURSES} ${IDLOKISBAD} ${INTERNATIONAL} ${RIGHTBUG} ${SIGVOID} ${NO_IDLOK} screen.c
-
- vi.o: vi.c sc.h
-
- # other stuff
-
- clean:
- rm -f *.o *res.h y.tab.h debug core gram.c $(name).1 \
- p$(name).1 y.output pxmalloc.c pvmtbl.c qhelp.c y_tab.h
-
- clobber:
- rm -f *.o *res.h $(YTAB).h $(name) p$(name) debug core gram.c $(name).1 \
- $(name).man p$(name).man p$(name).1 y.output $(name)qref \
- pxmalloc.c pvmtbl.c qhelp.c
-
- shar: ${SRC} ${DOCS}
- shar -c -m 64000 -f shar ${DOCS} ${SRC}
-
- sshar: ${SRC}
- shar -c -m 1000000 -f shar ${SRC}
-
- lint: sc.h sc.c lex.c gram.c interp.c cmds.c crypt.c range.c help.c \
- vi.c version.c xmalloc.c format.c vmtbl.c
- lint ${LINTFLAGS} ${CFLAGS} ${SIMPLE} sc.c lex.c gram.c interp.c \
- cmds.c crypt.c range.c help.c vi.c version.c xmalloc.c format.c \
- vmtbl.c -lcurses -lm
- make lintqref
-
- lintqref: help.c
- lint ${LINTFLAGS} ${CFLAGS} ${SIMPLE} -DQREF help.c
-
- lintpsc: psc.c vmtbl.c
- lint ${LINTFLAGS} ${CFLAGS} ${SIMPLE} -DPSC psc.c vmtbl.c
-
- inspect: sc.h sc.c lex.c gram.c interp.c cmds.c crypt.c
- /bruces/ianj/bin/i386/inspect -abv -t 8 sc.c lex.c gram.c interp.c \
- cmds.c crypt.c range.c xmalloc.c help.c vi.c
-
- print: sc.h gram.y sc.c lex.c interp.c cmds.c crypt.c
- prc sc.h gram.y sc.c lex.c interp.c cmds.c crypt.c | lpr
-
- $(name).1: sc.doc
- name=$(name) NAME=$(NAME) LIBDIR=$(LIBDIR) sh torev sc.doc > $(name).1
- # sed -e s/pname/$(name)/g -e s/PNAME/$(NAME)/g \
- # -e s%#LIBDIR#%$(LIBDIR)%g sc.doc > $(name).1
- # REVISION=`sed -e '/Revision/!D' -e 's/.*$Revision: 6.21 $(
- # sed -e s/pname/$(name)/g -e s/PNAME/$(NAME)/g \
- # -e s%#LIBDIR#%$(LIBDIR)%g \
- # -e 's/#REVISION#/$(REVISION)/' sc.doc > $(name).1
-
- $(name).man: $(name).1
- nroff -man $(name).1 > $(name).man
-
- laser: $(name).1
- itpf -x -Pim2 -man $(name).1
-
- p$(name).1: psc.doc
- name=$(name) NAME=$(NAME) LIBDIR=$(LIBDIR) sh torev psc.doc > p$(name).1
- # sed -e s/pname/$(name)/g -e s/PNAME/$(NAME)/g psc.doc > p$(name).1
-
- p$(name).man: p$(name).1
- nroff -man p$(name).1 > p$(name).man
-
- install: $(EXDIR)/$(name) $(EXDIR)/$(name)qref $(EXDIR)/p$(name) \
- $(LIBDIR)/tutorial \
- $(MANDIR)/$(name).$(MANEXT) $(MANDIR)/p$(name).$(MANEXT)
-
- $(EXDIR)/$(name): $(name)
- cp $(name) $(EXDIR)
- strip $(EXDIR)/$(name)
-
- $(EXDIR)/$(name)qref: $(name)qref
- cp $(name)qref $(EXDIR)
- strip $(EXDIR)/$(name)qref
-
- $(EXDIR)/p$(name): p$(name)
- cp p$(name) $(EXDIR)
- strip $(EXDIR)/p$(name)
-
- $(LIBDIR)/tutorial: tutorial.sc $(LIBDIR)
- cp tutorial.sc $(LIBDIR)/tutorial.$(name)
- chmod $(MANMODE) $(LIBDIR)/tutorial.$(name)
-
- $(LIBDIR):
- mkdir $(LIBDIR)
-
- $(MANDIR)/$(name).$(MANEXT): $(name).1
- cp $(name).1 $(MANDIR)/$(name).$(MANEXT)
- chmod $(MANMODE) $(MANDIR)/$(name).$(MANEXT)
-
- $(MANDIR)/p$(name).$(MANEXT): p$(name).1
- cp p$(name).1 $(MANDIR)/p$(name).$(MANEXT)
- chmod $(MANMODE) $(MANDIR)/p$(name).$(MANEXT)
-
- diffs: ${SRC}
- for i in ${DOCS} ${SRC} ;\
- do \
- rcsdiff -c -r6.18 $$i ;\
- done
-
- # THA 10/14/90 Added code to make a patchfile
- patchfile: ${SRC} ${DOCS}
- rm -f patchfile
- for i in ${SRC} ${DOCS} ;\
- do \
- diffc $$i /users/toma/sc/sc6.12/$$i >> patchfile ;\
- done
-
- files:
- @find $(DOCS) $(SRC) -print
-