include ../makehead
include ../makehead.static
DEPENDENCIES =
TOP = ..
ASN1_SRC_DIR = $(TOP)/asn1specs
COMPILERDIR = $(TOP)/compiler
SNACC = $(COMPILERDIR)/snacc
USEFUL_TYPES = $(ASN1_SRC_DIR)/asn-useful.asn1
CPPFLAGS += -I$(TOP) -Iinc $(bufFLAGS) $(compilerFLAGS)
RANLIB= /usr/bin/ranlib
HFILES.d = \
inc/asn-any.h \
inc/asn-bits.h \
inc/asn-bool.h \
inc/asn-config.h \
inc/asn-enum.h \
inc/asn-incl.h \
inc/asn-int.h \
inc/asn-len.h \
inc/asn-list.h \
inc/asn-null.h \
inc/asn-octs.h \
inc/asn-oid.h \
inc/asn-real.h \
inc/asn-tag.h \
inc/exp-buf.h \
inc/gen-buf.h \
inc/hash.h \
inc/min-buf.h \
inc/nibble-alloc.h \
inc/print.h \
inc/sbuf.h \
inc/str-stk.h \
\
inc/tbl-dec.h \
inc/tbl-enc.h \
inc/tbl-free.h \
inc/tbl-gen.h \
inc/tbl-dbg.h \
inc/tbl-gen-c-hdr.h \
inc/tbl-incl.h \
inc/tbl-print.h \
inc/tbl-util.h
HFILES = \
$(HFILES.d) \
inc/asn-useful.h \
inc/tbl.h
HFILES.shared = \
$(TOP)/snacc.h \
$(TOP)/config.h \
$(TOP)/policy.h
CFILES.d = \
src/asn-len.c \
src/asn-tag.c \
src/asn-int.c \
src/asn-bool.c \
src/asn-bits.c \
src/asn-octs.c \
src/asn-oid.c \
src/asn-real.c \
src/asn-null.c \
src/asn-list.c \
src/asn-enum.c \
src/str-stk.c \
src/nibble-alloc.c \
src/print.c \
src/asn-any.c \
src/hash.c \
src/exp-buf.c \
src/sbuf.c \
\
src/tbl-dec.c \
src/tbl-enc.c \
src/tbl-free.c \
src/tbl-gen.c \
src/tbl-dbg.c \
src/tbl-print.c \
src/tbl-util.c
CFILES = \
$(CFILES.d) \
src/asn-useful.c \
src/tbl.c
OFILES = \
$b/asn-len.o \
$b/asn-tag.o \
$b/asn-int.o \
$b/asn-bool.o \
$b/asn-bits.o \
$b/asn-octs.o \
$b/asn-oid.o \
$b/asn-real.o \
$b/asn-null.o \
$b/asn-list.o \
$b/asn-useful.o \
$b/asn-enum.o \
$b/str-stk.o \
$b/nibble-alloc.o \
$b/print.o \
$b/asn-any.o \
$b/hash.o \
$b/exp-buf.o \
$b/sbuf.o \
\
$b/tbl.o \
$b/tbl-dec.o \
$b/tbl-enc.o \
$b/tbl-free.o \
$b/tbl-gen.o \
$b/tbl-dbg.o \
$b/tbl-print.o \
$b/tbl-util.o
DISTFILES = \
README \
makefile \
$(HFILES.d) \
$(CFILES.d) \
boot/asn-useful.h \
boot/asn-useful.c \
tbl.h.patch \
boot/tbl.h \
boot/tbl.c
EXPORTLIBS = libasn1cebuf.a libasn1cmbuf.a libasn1csbuf.a libasn1ctbl.a
compilerLIB = libasn1cCebuf.a
LIBS = \
$(EXPORTLIBS) \
$(compilerLIB)
MAKEFLAGS.ebuf = bufFLAGS=-DUSE_EXP_BUF b=ebuf ebuf
MAKEFLAGS.Cebuf = bufFLAGS=-DUSE_EXP_BUF b=Cebuf Cebuf
MAKEFLAGS.mbuf = bufFLAGS=-DUSE_MIN_BUF b=mbuf mbuf
MAKEFLAGS.sbuf = bufFLAGS=-DUSE_SBUF b=sbuf sbuf
MAKEFLAGS.tbl = bufFLAGS="-DUSE_GEN_BUF -DTTBL" b=tbl tbl
.PHONY: ebuf Cebuf mbuf sbuf tbl
default:: ebuf-lib mbuf-lib sbuf-lib tbl-lib
@echo "C ASN.1 libraries made"
all:: default Cebuf-lib
b = dummy
$b:: $(CFILES)
$b::
test -d $@ || mkdir $@
$(RM) $@/*.c
-ln $(CFILES) $@
.PHONY: ofiles lib
.PHONY: ebuf-lib Cebuf-lib mbuf-lib sbuf-lib tbl-lib
ofiles: $(OFILES)
lib: libasn1c$b.a
ebuf-lib:
$(MAKE) $(MAKEFLAGS.ebuf) ofiles lib
Cebuf-lib:
$(MAKE) $(MAKEFLAGS.Cebuf) ofiles lib
mbuf-lib:
$(MAKE) $(MAKEFLAGS.mbuf) ofiles lib
sbuf-lib:
$(MAKE) $(MAKEFLAGS.sbuf) ofiles lib
tbl-lib:
$(MAKE) $(MAKEFLAGS.tbl) ofiles lib
libasn1cebuf.a \
libasn1cCebuf.a \
libasn1cmbuf.a \
libasn1csbuf.a \
libasn1ctbl.a: $(OFILES)
$(AR) rv $@ $?
$(RANLIB) $@
inc/asn-useful.h \
src/asn-useful.c::
$(RM) inc/asn-useful.h src/asn-useful.c
if [ -f $(SNACC) ]; then\
$(MAKE) stamp-useful;\
else\
$(RM) asn-useful.h asn-useful.c;\
ln boot/asn-useful.h boot/asn-useful.c .;\
fi
ln asn-useful.h inc
ln asn-useful.c src
stamp-useful: $(SNACC) $(USEFUL_TYPES) makefile
-mv asn-useful.h asn-useful.h.prev
-mv asn-useful.c asn-useful.c.prev
$(SNACC) -c -l 50 $(USEFUL_TYPES)
@if [ -f asn-useful.h.prev ]; then\
if [ `diff asn-useful.h.prev asn-useful.h | wc -l` -gt 4 ]; then\
$(RM) asn-useful.h.prev;\
else\
echo "asn-useful.h hasn't changed";\
mv asn-useful.h.prev asn-useful.h;\
fi;\
fi
@if [ -f asn-useful.c.prev ]; then\
if [ `diff asn-useful.c.prev asn-useful.c | wc -l` -gt 4 ]; then\
$(RM) asn-useful.c.prev;\
else\
echo "asn-useful.c hasn't changed";\
mv asn-useful.c.prev asn-useful.c;\
fi;\
fi
date > $@
boot/asn-useful.h \
boot/asn-useful.c: stamp-useful
$(RM) boot/asn-useful.h boot/asn-useful.c
cp -p asn-useful.h asn-useful.c boot
inc/tbl.h \
src/tbl.c::
$(RM) inc/tbl.h src/tbl.c
if [ -f $(SNACC) ]; then\
$(MAKE) stamp-tbl;\
else\
$(RM) tbl.h tbl.c;\
ln boot/tbl.h boot/tbl.c .;\
fi
ln tbl.h inc
ln tbl.c src
stamp-tbl: $(SNACC) $(USEFUL_TYPES) $(ASN1_SRC_DIR)/tbl.asn1 makefile
-mv tbl.h tbl.h.prev
-mv tbl.c tbl.c.prev
$(SNACC) -u $(USEFUL_TYPES) $(ASN1_SRC_DIR)/tbl.asn1
$(PATCH) < tbl.h.patch
echo ' cat tbl.c >> tbl.c.tmp
echo ' mv tbl.c.tmp tbl.c
@if [ -f tbl.h.prev ]; then\
if [ `diff tbl.h.prev tbl.h | wc -l` -gt 4 ]; then\
$(RM) tbl.h.prev;\
else\
echo "tbl.h hasn't changed";\
mv tbl.h.prev tbl.h;\
fi;\
fi
@if [ -f tbl.c.prev ]; then\
if [ `diff tbl.c.prev tbl.c | wc -l` -gt 4 ]; then\
$(RM) tbl.c.prev;\
else\
echo "tbl.c hasn't changed";\
mv tbl.c.prev tbl.c;\
fi;\
fi
date > $@
boot/tbl.h \
boot/tbl.c: stamp-tbl
$(RM) boot/tbl.h boot/tbl.c
cp -p tbl.h tbl.c boot
install-sh:
ln $(TOP)/install-sh $@
$(incdir)/snacc/c $(libdir):
$(TOP)/mkinstalldirs $@
install:: $(HFILES) ebuf-lib mbuf-lib sbuf-lib tbl-lib install-sh $(incdir)/snacc/c $(libdir)
install::
for h in $(HFILES) $(HFILES.shared); do $(INSTALL_DATA) $$h $(incdir)/snacc/c/; done
for l in $(EXPORTLIBS); do $(INSTALL_DATA) $$l $(libexecdir)/; $(RANLIB) -t $(libexecdir)/$$l; done
clean::
$(RM) *.o *~ *.prev .emacs* core
$(RM) stamp-useful stamp-tbl
$(RM) asn-useful.h inc/asn-useful.h
$(RM) asn-useful.c src/asn-useful.c
$(RM) tbl.h inc/tbl.h
$(RM) tbl.c src/tbl.c
$(RM) -r ebuf Cebuf mbuf sbuf tbl
$(RM) $(compilerLIB)
clobber::
$(RM) $(LIBS)
$(RM) install-sh
depend:: inc/asn-useful.h src/asn-useful.c
depend:: inc/tbl.h src/tbl.c
depend::
if [ x"$(DEPENDENCIES)" = x ]; then\
$(MAKE) $(MAKEFLAGS.ebuf) DEPENDENCIES=deps.ebuf depend;\
$(MAKE) $(MAKEFLAGS.Cebuf) DEPENDENCIES=deps.Cebuf depend;\
$(MAKE) $(MAKEFLAGS.mbuf) DEPENDENCIES=deps.mbuf depend;\
$(MAKE) $(MAKEFLAGS.sbuf) DEPENDENCIES=deps.sbuf depend;\
$(MAKE) $(MAKEFLAGS.tbl) DEPENDENCIES=deps.tbl depend;\
cp /dev/null dependencies;\
for dir in ebuf Cebuf mbuf sbuf tbl; do\
< deps.$$dir sed -e "s/^src/$$dir/;s/^[a-z-]*\.o:/$$dir\/&/" >> dependencies;\
$(RM) deps.$$dir;\
done;\
fi
include ../maketail