include ../../makehead
TOP = ../..
ASN1_SRC_DIR = $(TOP)/asn1specs
ASN1_C++_LIB_DIR = $(TOP)/c++-lib
BUILD_DIR = /Data_and_Apps/dmitchBuild
ASN1_C++_INC_DIR = $(ASN1_C++_LIB_DIR)/inc
ASN1_C++_LIB = -framework snaccRuntime -F/Data_and_Apps/dmitchBuild -lstdc++
COMPILERDIR = $(TOP)/compiler
SNACC = $(COMPILERDIR)/snacc
USEFUL_TYPES = $(ASN1_SRC_DIR)/asn-useful.asn1
SNACCFLAGS = -C $(SNACC_NOVOLAT) -u $(USEFUL_TYPES)
CC = $(CXX)
CPPFLAGS += -I$(TOP) -I$(ASN1_C++_INC_DIR) $(LENFLAG)
ASN1FILES = $(ASN1_SRC_DIR)/p-rec.asn1
ASN1HFILES = p-rec.h
ASN1CFILES = p-rec.cpp
CFILES = \
genber.C \
example.C
DISTFILES = \
README \
makefile \
$(CFILES) \
good-pr.ber
all:: genber def indef
$(ASN1HFILES) \
$(ASN1CFILES): $(SNACC) $(ASN1FILES)
$(REASON)
$(SNACC) $(SNACCFLAGS) $(ASN1FILES)
$(SNACC):
cd $(@D) && $(MAKE) $(@F)
def-obj \
indef-obj:
mkdir $@
def-obj/p-rec.o \
def-obj/example.o:
$(REASON)
$(MAKE) LENFLAG= `echo $(@D) | sed -e 's:/$$::'` $(@F)
mv $(@F) $@
indef-obj/p-rec.o \
indef-obj/example.o:
$(REASON)
$(MAKE) LENFLAG=-DUSE_INDEF_LEN `echo $(@D) | sed -e 's:/$$::'` $(@F)
mv $(@F) $@
genber: def-obj/p-rec.o genber.o
$(REASON)
$(CXX) $(LDFLAGS) -o $@ def-obj/p-rec.o genber.o $(ASN1_C++_LIB) $(LIBS)
def: def-obj/p-rec.o def-obj/example.o
$(REASON)
$(CXX) $(LDFLAGS) -o $@ def-obj/p-rec.o def-obj/example.o $(ASN1_C++_LIB) $(LIBS)
indef: indef-obj/p-rec.o indef-obj/example.o
$(REASON)
$(CXX) $(LDFLAGS) -o $@ indef-obj/p-rec.o indef-obj/example.o $(ASN1_C++_LIB) $(LIBS)
genber \
def \
indef:
.PHONY: check
check:: def indef
$(RM) foo.ber bar.ber
./indef good-pr.ber > foo.ber
./def foo.ber > bar.ber
@if cmp -s bar.ber good-pr.ber; then\
echo "+++ Passed simple encode/decode tests using p-rec.asn1.";\
else\
echo "--- Failed simple encode/decode tests using p-rec.asn1.";\
fi
$(RM) foo.ber bar.ber
clean::
$(RM) *.o *~ .emacs* core def indef genber pr.ber $(ASN1HFILES) $(ASN1CFILES)
$(RM) -r def-obj indef-obj
$(RM) foo.ber bar.ber
depend:: $(SNACC)
include ../../maketail
depend::
cp dependencies deps
for dir in def-obj indef-obj; do\
< dependencies sed -e 's:^\(.*\.o\):'"$$dir"'/\1:' >> deps;\
done
mv deps dependencies