87 lines
2.7 KiB
Makefile
87 lines
2.7 KiB
Makefile
#!/usr/sbin/smake
|
|
#
|
|
# Makefile for irix/cmd/bison
|
|
#
|
|
|
|
# Via a small amount of artifice in this Makefile we've managed to use the
|
|
# virgin bison sources with only a single small change in files.c to support
|
|
# finding bison.simple and bison.hairy relative to $ROOT. If any non-SGI-
|
|
# specific changes are needed in the bison sources please communicate them
|
|
# immediately to the current bison maintainer so we can more easily upgrade
|
|
# to future releases. The README file in the sources describes where to send
|
|
# bug reports.
|
|
#
|
|
SRCDIR=bison-1.25
|
|
|
|
# We use /usr/lib for SHARELIBDIR instead of /usr/share/lib because using the
|
|
# later introduces some conflict with the spec/idb nightmare that insists that
|
|
# we don't have /usr/share and non-share files coming out of the same
|
|
# subsystems. Since the only thing we put in SHARELIBDIR are the bison.simple
|
|
# and bison.hairy templates and since bison is currently the only such problem
|
|
# child, we just toss them into /usr/lib ...
|
|
#
|
|
BINDIR=/usr/bin
|
|
SHARELIBDIR=/usr/lib
|
|
SHARESRCDIR=/usr/share/src/gnutools/bison
|
|
CAT1DIR=/usr/share/catman/p_man/cat1
|
|
|
|
# We have to pass the datadir definition down to the bison Makefile because
|
|
# it doesn't follow the autoconfigure rules. The datadir definition
|
|
# is used by bison to find bison.simple and bison.hairy. All the other
|
|
# destination directory configuration is unimportant since we do the
|
|
# installations here.
|
|
#
|
|
CONFIGUREFLAGS=--datadir=$(SHARELIBDIR)
|
|
LWOFF=,1009
|
|
MAKEFLAGS=datadir=$(SHARELIBDIR) CC=$(CC) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"
|
|
|
|
include $(ROOT)/usr/include/make/commondefs
|
|
|
|
default: touchconfig build/bison.z
|
|
cd build; \
|
|
$(MAKE) $(MAKEFLAGS) bison
|
|
|
|
TMP=tmp$$$$
|
|
build/bison.1: touchconfig
|
|
build/bison.z: build/bison.1
|
|
neqn $> | tbl | nroff -man > $(TMP); \
|
|
pack -f $(TMP); \
|
|
mv $(TMP).z $@
|
|
|
|
# We do the ``touch configure'' in the following rule to make sure that
|
|
# configure has a later date than configure.in. If configure.in were to
|
|
# appear newer, then the build/Makefile would attempt to rebuild
|
|
# configure from it via the GNU autoconf untility ...
|
|
touchconfig:
|
|
rm -rf build
|
|
$(TLINK) $(SRCDIR) build
|
|
cd build; \
|
|
touch configure; \
|
|
CC=$(CC) ./configure $(CONFIGUREFLAGS); \
|
|
$(MAKE) $(MAKEFLAGS) clean
|
|
touch touchconfig
|
|
|
|
COMMONPREF=x
|
|
include $(COMMONRULES)
|
|
|
|
headers: touchconfig
|
|
cd build; \
|
|
$(INSTALL) -F $(SHARELIBDIR) -m 444 bison.simple bison.hairy
|
|
|
|
install: default headers
|
|
cd build; \
|
|
$(INSTALL) -F $(BINDIR) bison; \
|
|
$(INSTALL) -F $(CAT1DIR) -m 444 bison.z
|
|
rm -rf dist
|
|
$(TLINK) $(SRCDIR) dist
|
|
cd dist; \
|
|
$(INSTALL) -F $(SHARESRCDIR) -m 444 \
|
|
`find . -type l -print | sed 's;\./;;'`
|
|
|
|
clean: $(COMMONPREF)$@ touchconfig
|
|
cd build; $(MAKE) $(MAKEFLAGS) clean
|
|
rm -f build/bison.z
|
|
|
|
clobber: $(COMMONPREF)$@
|
|
rm -rf touchconfig build dist
|