home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
fchek284.zip
/
makefile.os2
< prev
next >
Wrap
Makefile
|
1996-03-31
|
21KB
|
598 lines
#=======================================================================
# UNIX version of Makefile for Fortran program checker, Version 2.8.4
#
# Current target list:
# TAGS
# all build ftnchek and its documentation files
# blurb.txt
# check run validation test suite
# clean remove unnecessary intermediate files
# clobber make clean, and remove ftnchek executable
# dcl2inc.doc ASCII form of documentation
# dcl2inc.ps PostScript form of documentation
# distclean remove everything that can be rebuilt
# docs documentation files
# fcl2vcg.doc ASCII form of documentation
# fcl2vcg.ps PostScript form of documentation
# fortran.c translate yacc code to C
# ftnchek ftnchek executable program
# ftnchek.1 UNIX manual page document
# ftnchek.doc ASCII form of documentation
# ftnchek.hlp VAX/VMS HELP library source
# ftnchek.ps PostScript form of documentation
# install install ftnchek and dcl2inc and their man pages
# install-exe install ftnchek and dcl2inc executables
# install-man install only man pages
# install-man-sgi install only man pages on SGI systems
# lint run lint on source code
# mostlyclean same as clean
# prog same as ftnchek
# realclean same as clobber
# spotless make distclean, then remove formatted
# documentation (do NOT do this if you don't
# have groff or nroff/troff to recreate the
# documentation!)
# TAGS emacs editor tags file
# tags ex and vi editor tags file
# uninstall undo an ftnchek installation
#
# Object file targets:
# ftnchek.o
# exprtype.o
# forlex.o
# fortran.o
# pgsymtab.o
# plsymtab.o
# project.o
# symtab.o
#
# Machine-specific convenience targets:
# DEC-ALPHA DEC Alpha OSF/1 and OpenVMS
# DJGPP IBM PC/DOS djgpp compiler
# GENERIC most UNIX systems
# HP HP 9000/7xx HP-UX 9.x
# IBM-RS6000 IBM RS/6000-xxx AIX 3.2
# LINUX Linux on 386
# LINUX-486 Linux on 486 and up
# MIPS-MIPS MIPS RC6280 RISCos 2.1.1
# OS2emx IBM OS/2 2.x, w. gcc/emx and emx.dll
# OS2noemx IBM OS/2 2.x, w. gcc/emx, doesn't need emx.dll
# SGI Silicon Graphics IRIX 4.x and 5.x
# SGI-INSTALL SGI special install for man page
# SOLARIS2.x Sun Solaris 2.x
# SOLARIS2.x-gcc Sun Solaris 2.x with GNU gcc
# SOLARIS2.x-apcc Sun Solaris 2.x with Apogee apcc
# STARDENT Stardent 15xx OS 2.2
# SUNOS5.x Sun SunOS 5.x (same as Solaris 2.x)
# SUNOS5.x-gcc Sun SunOS 5.x (same as Solaris 2.x) with
# GNU gcc
# SUNOS5.x-apcc Sun SunOS 5.x (same as Solaris 2.x)
# with Apogee apcc
# SUNOS4.0 Sun SunOS 4.0
# SUNOS4.1 Sun SunOS 4.1
# ULTRIX-MIPS DECstation ULTRIX 4.x
# UNIX most UNIX systems
#
# For each of these machine-specific targets, you can modify what is
# built by defining a value for TARGETS on the make command line
# (default: ftnchek).
#
# If you use the VCG_SUPPORT option, the fcl2vcg script and documentation
# should be installed using the target
# install-vcg for all systems except SGI
# sgi-install-vcg for SGI
#
# Copyright (C) 1991 by Robert K. Moniot.
# This program is free software. Permission is granted to
# modify it and/or redistribute it, retaining this notice.
# No guarantees accompany this software.
#
# Acknowledgements and thanks to Nelson H. F. Beebe of the University
# of Utah for improvements to this Makefile.
# [25-Apr-1994]
#=======================================================================
# These definitions should be customized for your local conventions
# if you want to do "make install" or "make uninstall"
BINDIR = /usr/local/bin
LIBDIR = /usr/local/lib/ftnchek
MANDIR = /usr/local/man
#NROFF = groff # if you have groff, but not nroff
NROFF = nroff
#STRIP = echo >/dev/null # if your system lacks strip
STRIP = strip
# The following is only used for targets ftnchek.doc and ftnchek.hlp
# which are not needed for unix platforms. It removes control chars
# and converts tabs to blanks.
#COL = /usr/5bin/col -bx # For BSD-like systems
COL = col -bx # For System V-like systems
# Editor tags file support
CTAGS = ctags
CTAGSFLAGS = -t
ETAGS = etags
# For "make check", we need new awk, either AT&T nawk or GNU gawk.
# However, IBM RS/6000 AIX calls it awk.
#NAWK = awk
#NAWK = gawk
NAWK = nawk
# These system utilities should be standard on all UNIX systems
# BINPATH is the path for the following binaries, in case
# they are installed on a non-UNIX system like OS/2 from the
# GNU {file,text,shell} utilities. For UNIX, BINPATH should be /bin/
# (with the trailing slash!), on systems where all the commands are
# in the path, it can be empty.
#
# BINPATH = /bin/
BINPATH =
CHMOD = $(BINPATH)chmod
CP = $(BINPATH)cp
MKDIR = $(BINPATH)mkdir
MV = $(BINPATH)mv
RM = $(BINPATH)rm -f
RMDIR = $(BINPATH)rmdir
SED = $(BINPATH)sed
#
# On OS/2, for some reason under GNU Make the SHELL must be commented out
# here. This may be specific to the tcsh and sh ports I use, however.
# SHELL =
SHELL = $(BINPATH)sh
#
TR = /usr/ucb/tr
FTNCHEK = ./ftnchek
MAN2PS = ./man2ps
# YACC =parser name, YSTEM=stem on tab.c, tab.h
# for yacc as the parser
YACC = yacc
YSTEM = y
# for GNU bison as the parser
#YACC = bison
#YSTEM = fortran
# OPTIONS is used to define various characteristics. Most commonly
# needed ones are given below; uncomment whichever you like.
# See ftnchek.h for others, with their defaults and explanations.
# To use the defaults for everything uncomment this:
OPTIONS =
# To make all table sizes 10x bigger than defaults uncomment this:
# OPTIONS = -DLARGE_MACHINE
# To allow the -vcg option uncomment this:
#OPTIONS = -DVCG_SUPPORT
# To prohibit underscores in variable names, inline comments
# starting with '!', the DO ... ENDDO loop forms and INCLUDE statements:
#OPTIONS = -DSTRICT_SYNTAX
# CFLAGS is used to define the operating system and options
# Other
CFLAGS = -DUNIX $(OPTIONS) -O -D_BSD
LDFLAGS =
YFLAGS = -d
# Object extension. By default this is .o, but can be set to .obj (or
# whatever). This is used for the symbolic target OS2noemx, and should
# be useful for VMS, or non-gcc C compilers on OS/2. This works for
# the UNIX targets as well.
OBJ = .o
# Here is another way which relies on GNU make (often installed as gmake).
# Maybe some other make utilities can handle that construct, too.
# On some systems, make _is_ GNU make, on some it is gmake.
# You may uncomment it in case you have GNU make:
# ifeq ($(OBJ),)
# OBJ = .o
# endif
#
# It checks whether an OBJ extension has been defined explicitly (by a
# symbolic target or an entry above), in which case it doesn't change it.
# If no OBJ extension has been defined it defaults to .o.
# implicit rule to allow for different extensions of object files (VAX,
# OS/2 linking with link386.exe, etc.)
%$(OBJ):
$(CC) -c $(CFLAGS) $(CPPFLAGS) $*.c -o $@
# fortran.o first because of possible remake if tokdefs.h changes (see below)
OBJS = fortran$(OBJ) exprtype$(OBJ) forlex$(OBJ) ftnchek$(OBJ) \
pgsymtab$(OBJ) plsymtab$(OBJ) project$(OBJ) symtab$(OBJ)
SRCS = exprtype.c forlex.c fortran.c ftnchek.c \
ftnchek.h intrins.h iokeywds.h keywords.h newarge.c \
newargh.c newcome.c newcomh.c pgsymtab.c plsymtab.c \
project.c shell_mung.c symtab.c symtab.h tokdefs.h \
y.tab.h
# executable file extension. Needed, e.g. when linking under OS/2 with
# link386.exe, as done with the symbolic target 'OS2noemx'.
# The symbolic target 'OS2emx' calls emxbind which explicitly makes an
# executable file from the 'a.out' type result.
# The default extension for EXE is empty, on OS/2 it is .exe, given in
# the sybolic targets explicitly.
EXE =
#=======================================================================
prog: $(FTNCHEK)
all: prog docs
check:
cd test; $(MAKE) NAWK="$(NAWK)" -i -s check
lint:
lint $(LINTFLAGS) $(OBJS:$(OBJ)=.c) -lm
# Remove intermediate files that are not required after the program is
# built.
clean mostlyclean:
-$(RM) *$(OBJ)
-$(RM) \#*
-$(RM) a.out
-$(RM) *~
-$(RM) core
# Remove almost everything that make can rebuild
clobber realclean: clean
-$(RM) fortran.c
-$(RM) ftnchek$(EXE)
# dcl2inc.doc is ascii text form of documentation. It should not matter
# whether dcl2inc.1 or dcl2inc.man is used here.
dcl2inc.doc: dcl2inc.man
$(NROFF) -man dcl2inc.man | $(COL) >dcl2inc.doc
dcl2inc.ps: dcl2inc.man
$(MAN2PS) <dcl2inc.man >dcl2inc.ps
# fcl2vcg.doc is ascii text form of documentation. It should not matter
# whether fcl2vcg.1 or fcl2vcg.man is used here.
fcl2vcg.doc: fcl2vcg.man
$(NROFF) -man fcl2vcg.man | $(COL) >fcl2vcg.doc
fcl2vcg.ps: fcl2vcg.man
$(MAN2PS) <fcl2vcg.man >fcl2vcg.ps
# Remove everything that make can rebuild, preparatory to making a
# distribution version. We intentionally do NOT remove .ps and .doc
# files, because some UNIX systems lack nroff/troff/groff.
distclean: realclean
-$(RM) *.dcl
-$(RM) cscope.out
-$(RM) tags
-$(RM) TAGS
-$(RM) ftnchek.1
docs: blurb.txt dcl2inc.doc dcl2inc.ps fcl2vcg.doc fcl2vcg.ps ftnchek.doc \
ftnchek.hlp ftnchek.ps
$(FTNCHEK): $(OBJS)
$(CC) $(CFLAGS) $(LDFLAGS) -o $(FTNCHEK)$(EXE) $(OBJS) -lm
# Documentation targets: If you make changes to the documentation,
# you should edit only ftnchek.man and then re-make these targets.
# If ftnchek.1 fails to make, ftnchek.man is usable directly except
# that some troff-like processors may not give satisfactory results.
#
# Following sed script trims out the if-else machinery contained in
# ftnchek.man to produce a clean nroff document. The lines of the
# script correspond to the following actions:
# 1. remove text between lines of form ``.if \nh \{'' or .ie \nh \{''
# and lines of form ``\}'' (these are the help-related additions)
# 2. remove lines of form ``.if !\nh \{'' (these preface man text)
# Also remove ``.if !\nb \{'' which are for blurb.
# 3. remove lines of form ``.el \{'' (start of the else sections of
# the .if's of step 1)
# 4. remove lines of form ``\}'' (closures of step 3 lines)
# 5. remove lines of form ``.ie \nh text'' (one-liner help text)
# 6. change lines of form ``.el \nh text'' to ``text'' (these are
# one-liner man text)
# 7. change lines of form ``.if !\nh text'' to ``text'' (ditto)
ftnchek.1: ftnchek.man
$(SED) -e '/^\.i[fe] \\nh \\{/,/^\\}$$/d' \
-e '/^\.if !\\n[bh] \\{/d' \
-e '/^\.el \\{/d' \
-e '/^\\}/d' \
-e '/^\.i[fe] \\nh /d' \
-e 's/^\.el *\(.*\)$$/\1/' \
-e 's/^\.if !\\nh *\(.*\)$$/\1/' \
< ftnchek.man > ftnchek.1
# ftnchek.doc is ascii text form of documentation. It should not matter
# whether ftnchek.1 or ftnchek.man is used here.
ftnchek.doc: ftnchek.man
$(NROFF) -man ftnchek.man | $(COL) >ftnchek.doc
# ftnchek.ps is PostScript form of documentation.
ftnchek.ps: ftnchek.man
@make ftnchek.1
$(MAN2PS) <ftnchek.1 >ftnchek.ps
# blurb.txt is an ascii file for informational mailings.
blurb.txt: ftnchek.man
$(NROFF) -man -rb1 ftnchek.man | $(COL) >blurb.txt
# ftnchek.hlp is a VMS HELP library source document:
# create ftnchek.hlb with $ LIBR/CREATE/HELP FTNCHEK.HLB FTNCHEK.HLP
# The leading and trailing newlines in ftnchek.hlp should be removed.
ftnchek.hlp: ftnchek.man
$(SED) -e '1d' ftnchek.man | \
$(NROFF) -man -rh1 | $(COL) | \
$(SED) -e 's/^-\([a-zA-Z][a-zA-Z]*\)/\/\1/' \
-e 's/\([^a-zA-Z]\)-\([a-zA-Z][a-zA-Z]*\)/\1\/\2/g' \
>ftnchek.hlp
#
# N.B. tokdefs.h is copy of y.tab.h used to avoid remaking stuff when
# grammar changes but not tokens.
# The following copies y.tab.h to tokdefs.h if changed, then aborts make,
# since dependencies may have changed.
fortran.c: fortran.y
$(YACC) $(YFLAGS) fortran.y
$(MV) $(YSTEM).tab.c fortran.c
@if cmp -s $(YSTEM).tab.h tokdefs.h ; then true ; else \
echo; echo tokdefs.h changed -- repeat make ; \
$(CP) $(YSTEM).tab.h tokdefs.h; \
false ; \
fi
# Install program and documentation on system
install: install-exe install-man
install-exe: ftnchek
$(CP) ftnchek $(BINDIR)
-$(STRIP) $(BINDIR)/ftnchek
$(CHMOD) 755 $(BINDIR)/ftnchek
-$(MKDIR) $(LIBDIR)
$(CP) dcl2inc.awk $(LIBDIR)/dcl2inc.awk
$(CHMOD) 644 $(LIBDIR)/dcl2inc.awk
$(SED) -e 's@^LIBDIR=.*$$@LIBDIR=$(LIBDIR)@' -e 's/nawk/$(NAWK)/' \
<dcl2inc.sh >$(BINDIR)/dcl2inc
$(CHMOD) 755 $(BINDIR)/dcl2inc
# Install the fcl2vcg script and its documentation only if vcg is used
install-vcg: install-vcg-exe install-vcg-man
install-vcg-exe:
$(CP) fcl2vcg.sh $(BINDIR)/fcl2vcg
$(CHMOD) 755 $(BINDIR)/fcl2vcg
install-vcg-man:
$(CP) fcl2vcg.man $(MANDIR)/man1/fcl2vcg.1
-$(RM) $(MANDIR)/cat1/fcl2vcg.1
$(CHMOD) 644 $(MANDIR)/man1/fcl2vcg.1
# Install man pages, taking care to remove old formatted ones, because
# many man implentations fail to compare time stamps of raw and
# formatted files, and will show out-of-date formatted files.
install-man: ftnchek.1
$(CP) dcl2inc.man $(MANDIR)/man1/dcl2inc.1
-$(RM) $(MANDIR)/cat1/dcl2inc.1
$(CHMOD) 644 $(MANDIR)/man1/dcl2inc.1
$(CP) ftnchek.1 $(MANDIR)/man1/ftnchek.1
-$(RM) $(MANDIR)/cat1/ftnchek.1
$(CHMOD) 644 $(MANDIR)/man1/ftnchek.1
# Remove everything that the install target installed.
uninstall:
-$(RM) $(BINDIR)/dcl2inc
-$(RM) $(BINDIR)/fcl2vcg
-$(RM) $(BINDIR)/ftnchek
-$(RM) $(LIBDIR)/dcl2inc.awk
-$(RM) $(MANDIR)/cat1/dcl2inc.1
-$(RM) $(MANDIR)/cat1/ftnchek.1
-$(RM) $(MANDIR)/ftnchek.z # SGI
-$(RM) $(MANDIR)/man1/dcl2inc.1
-$(RM) $(MANDIR)/man1/fcl2vcg.1
-$(RM) $(MANDIR)/man1/ftnchek.1
-$(RMDIR) $(LIBDIR)
# WARNING: do NOT execute this target, unless you have nroff/troff or groff
# to recreate the formatted documentation files.
spotless: distclean
$(RM) blurb.txt
$(RM) dcl2inc.doc
$(RM) dcl2inc.ps
$(RM) fcl2vcg.doc
$(RM) fcl2vcg.ps
$(RM) ftnchek.doc
$(RM) ftnchek.hlp
$(RM) ftnchek.ps
# ex and vi editor tags file
tags: $(SRCS)
$(CTAGS) $(CTAGSFLAGS) *.[ch]
# emacs editor tags file
TAGS: $(SRCS)
$(ETAGS) *.[ch]
#=======================================================================
# Object file dependencies on include files
ftnchek$(OBJ): ftnchek.h
exprtype$(OBJ): ftnchek.h symtab.h tokdefs.h
forlex$(OBJ): ftnchek.h keywords.h symtab.h tokdefs.h
fortran$(OBJ): ftnchek.h symtab.h fortran.c
pgsymtab$(OBJ): ftnchek.h symtab.h
plsymtab$(OBJ): ftnchek.h symtab.h
project$(OBJ): ftnchek.h symtab.h
symtab$(OBJ): ftnchek.h iokeywds.h intrins.h symtab.h tokdefs.h
#=======================================================================
# Machine specific targets to build ftnchek with suitable compile options.
# Use 'MAKE_OPTIONS= "YACC=/usr/local/gnu/bin/bison" "YSTEM=fortran"'
# to select GNU bison parser, if you have touched fortran.y.
TARGETS = ftnchek
# On DEC Alpha systems, compilers default to fast non-IEEE-754-conformant
# arithmetic that is incapable of handling denormalized numbers,
# Infinity, and NaN. ftnchek can die on at least test/complex.f if IEEE
# 754 behavior is not restored with -ieee_with_inexact. The -Olimit
# value increases the optimizer table sizes.
DEC-ALPHA:
$(MAKE) "CFLAGS= -DUNIX -DLARGE_MACHINE $(OPTIONS) -O -D_BSD" \
"CC = c89 -ieee_with_inexact -Olimit 1000" \
"OBJ= .o" "EXE= " \
$(MAKE_OPTIONS) $(TARGETS)
# target for djgpp on IBM PC by Judah Milgram, U. Maryand College Park
DJGPP:
$(MAKE) 'CFLAGS= $(OPTIONS) -DLARGE_MACHINE -O' \
'OBJ = .o' 'EXE = ' \
$(MAKE_OPTIONS) $(TARGETS)
coff2exe ftnchek
del ftnchek
GENERIC LINUX STARDENT UNIX:
$(MAKE) "OBJ= .o" "EXE= " \
$(MAKE_OPTIONS) $(TARGETS)
# Add compiler flag to eliminate optimizer table overflow
HP:
$(MAKE) "CFLAGS= -DUNIX -DLARGE_MACHINE $(OPTIONS) -O -D_BSD +Obb700" \
"OBJ= .o" "EXE= " \
$(MAKE_OPTIONS) $(TARGETS)
IBM-RS6000:
$(MAKE) "CFLAGS= -DUNIX -DLARGE_MACHINE $(OPTIONS) \
-DAIXC -DRAND_NO_ARG -O -D_BSD" \
"OBJ= .o" "EXE= " \
"CC = c89 -D_POSIX_SOURCE" $(MAKE_OPTIONS) \
$(TARGETS)
LINUX-486:
$(MAKE) "CFLAGS= -DUNIX -DLARGE_MACHINE $(OPTIONS) -O -D_BSD -m486" \
"OBJ= .o" "EXE= " \
$(MAKE_OPTIONS) $(TARGETS)
# MIPS RC6280 (and other models) RISCos 2.1.1AC (and EP/IX)
MIPS-MIPS:
$(MAKE) "CFLAGS= -DUNIX $(OPTIONS) -DLARGE_MACHINE -O -D_BSD -Olimit 1000 -systype bsd43" \
"OBJ= .o" "EXE= " \
$(MAKE_OPTIONS) $(TARGETS)
# Under some shells, the SHELL variable declared above must be commented
# out for this to work properly with certain make ports to OS/2:
# Target for IBM OS/2 2.x and later, using gcc / emx, by Stefan A. Deutscher
# sad@utk.edu. The options to emxbind can all be ommited here, they are
# for emx09b. The executable built here requires emx.dll (version 09b,
# emxfix03 or later) to be in the LIBPATH. This helps reduce the memory
# footprint and is recommended in case other emx/gcc compiled programmes
# are being used anyway.
OS2emx:
$(MAKE) 'CFLAGS= -DUNIX -DLARGE_MACHINE -O -s -D_BSD'\
'CC = gcc' 'LDFLAGS = -s' 'OBJ = .o' 'EXE = .exe' \
$(MAKE_OPTIONS) $(TARGETS)
# echo $(FTNCHEK) created. Building now $(FTNCHEK).exe:
# emxbind -bs -w $(FTNCHEK)
# rm $(FTNCHEK)
# echo $(FTNCHEK).exe created.
# Target for IBM OS/2 2.x and later, using gcc / emx, by Stefan A. Deutscher
# sad@utk.edu. The options to emxbind can all be ommited here, they are
# for emx09b. This target requires the IBM Linker link386.exe to be installed
# in the system (selective install). The executable built here does not
# need any dynamic link libraries from the emx distribution and can run
# as a standalone programme, hence it is moved here to ftnchekS.exe.
OS2noemx:
$(MAKE) 'CFLAGS= -DUNIX -DLARGE_MACHINE -O -s -Zomf -Zsys -D_BSD'\
'CC = gcc'
'LDFLAGS = -s -Zstack 64 $(FTNCHEK).def' \
'OBJ = .obj' 'EXE = .exe' \
$(MAKE_OPTIONS) $(TARGETS)
mv $(FTNCHEK).exe $(FTNCHEK)S.exe
# 'LDFLAGS = -s -Zstack 256 $(FTNCHEK).def' \
# SGI target improved by Mark Hanning-Lee of JPL. Use -O2 for full
# optimization. 4.0.x users can even use -O3, but 5.2 complains about
# using -O3 with the -c option.
# Warning: do not split this quoted string across a line boundary; SGI
# IRIX 4.0.x make incorrectly preserves the newline, causing
# compilation commands to fail. Irix 5.x make handles the newline OK.
SGIFLAGS="CFLAGS= -DUNIX -DLARGE_MACHINE $(OPTIONS) -DVMS_IO -DVMS_TAB -O2 -D_BSD" "OBJ= .o" "EXE= "
SGI:
$(MAKE) $(SGIFLAGS) $(MAKE_OPTIONS) $(TARGETS)
# IRIX uses pre-formatted, packed man pages and nroff is not bundled with it.
# Only execute this target if your IRIX has nroff.
SGI-INSTALL: install-exe install-man-sgi
install-man-sgi:
$(NROFF) -man dcl2inc.man > dcl2inc.cat ; \
if pack dcl2inc.cat ; \
then \
$(MV) dcl2inc.cat.z $(MANDIR)/dcl2inc.z ; \
$(CHMOD) 644 $(MANDIR)/dcl2inc.z ; \
fi
$(NROFF) -man ftnchek.man > ftnchek.cat ; \
if pack ftnchek.cat ; \
then \
$(MV) ftnchek.cat.z $(MANDIR)/ftnchek.z ; \
$(CHMOD) 644 $(MANDIR)/ftnchek.z ; \
fi
sgi-install-vcg: install-vcg-exe install-vcg-man-sgi
install-vcg-man-sgi:
$(NROFF) -man fcl2vcg.man > fcl2vcg.cat ; \
if pack fcl2vcg.cat ; \
then \
$(MV) fcl2vcg.cat.z $(MANDIR)/fcl2vcg.z ; \
$(CHMOD) 644 $(MANDIR)/fcl2vcg.z ; \
fi
SOLARIS2.x SUNOS5.x:
$(MAKE) "CFLAGS= -DUNIX -DLARGE_MACHINE $(OPTIONS) -xO4 -D_BSD" \
"OBJ= .o" "EXE= " \
$(MAKE_OPTIONS) $(TARGETS)
SOLARIS2.x-gcc SUNOS5.x-gcc:
$(MAKE) "CFLAGS= -DUNIX -DLARGE_MACHINE $(OPTIONS) -O2 -D_BSD" \
"OBJ= .o" "EXE= " \
$(MAKE_OPTIONS) CC=gcc $(TARGETS)
SOLARIS2.x-apcc SUNOS5.x-apcc:
$(MAKE) "CFLAGS= -DUNIX -DLARGE_MACHINE $(OPTIONS) -O5 -D_BSD" \
"OBJ= .o" "EXE= " \
$(MAKE_OPTIONS) CC=apcc $(TARGETS)
SUNOS4.0:
$(MAKE) "CFLAGS= -DUNIX -DLARGE_MACHINE $(OPTIONS) -O -D_BSD" \
"OBJ= .o" "EXE= " \
$(MAKE_OPTIONS) $(TARGETS)
# NB: ftnchek 2.8 fails with -O4 on SunOS 4.1.3, but -O3 is okay
# The failure occurs from bad code generation for forlex.c with cc
# version RELEASE SC1.0 1Mar1991 (from "showrev cc").
SUNOS4.1:
$(MAKE) "CFLAGS= -DUNIX -DLARGE_MACHINE $(OPTIONS) -O3 -D_BSD" \
"OBJ= .o" "EXE= " \
$(MAKE_OPTIONS) $(TARGETS)
ULTRIX-MIPS:
$(MAKE) "CFLAGS= -DUNIX $(OPTIONS) -DLARGE_MACHINE -Olimit 2000 -O -D_BSD"\
"OBJ= .o" "EXE= " \
$(MAKE_OPTIONS) $(TARGETS)