⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefile.djc

📁 Reference Implementation of G.711 standard and other voice codecs
💻 DJC
字号:
# -----------------------------------------------------------------------------
#   Makefile for compiling and testing the UGST EID implementation with  
#   the MSDOS DJC port of the gcc compiler.
#   To compile for portability test, use:
#    make -f makefile.unx XXX=-DPORT_TEST
#   01.May.1994 - Implemented by <simao@cpqd.ansp.br>
#   01.Mar.1995 - Added running test file & calculating CRC tests <simao>
#   06.Oct.1997 - Included new EID programs
#   08.Feb.2001 - Included bs-stat.c
# -----------------------------------------------------------------------------
.SUFFIXES: .c .o 

# ------------------------------------------------
# Executables
# ------------------------------------------------
RM=rm -f
RUN= go32 # Define RUN if you need a loader (e.g. go32) to run the program
EIDDEMO= $(RUN) eiddemo -q
EID8K= $(RUN) eid8k
GEN_PATT= $(RUN) gen-patt
EID_XOR= $(RUN) eid-xor
EP_STATS= $(RUN) ep-stats

# ------------------------------------------------
# Choose an archiving utility: 
#	- public domain unzip, or [PC/Unix/VMS]
#	- shareware pkunzip [PC only]
# ------------------------------------------------
#UNZIP = pkunzip
UNZIP = unzip -o

# ------------------------------------------------
# Choose compiler/options. 
# ------------------------------------------------
CC = gcc
##CC_OPT = -DPORT_TEST -I../utl
CC_OPT = $(XXX) -I../utl

# ------------------------------------------------
# Choose an AWK; suggest use GNU version 
#                (available via anonymous ftp) 
# ------------------------------------------------
AWK = gawk
AWK_CMD = 'BEGIN{OFS="\t"};{print $$4,$$6,$$8,$$10,$$12,$$14,$$16,$$18}'

# ------------------------------------------------
# List of files (source and object)
# ------------------------------------------------
EID_MODULE = eid.c eid.h

# ------------------------------------------------
# Generic rules
# ------------------------------------------------
.c.o:
	$(CC) $(CC_OPT) -c $<

# ------------------------------------------------
# Targets
# ------------------------------------------------
all:: eiddemo eid8k gen-patt eid-xor ep-stats bs-stats

anyway: clean all

clean:
	$(RM) *.o

cleantest:
	$(RM) b*.ser p*.ser z_*.b?? ep?05g10.??? sta
	$(RM) zero.ser zero.src dummy.bs
	$(RM) *.crc zero-crc.txt

veryclean: clean cleantest
	$(RM) eiddemo eid8k ep-stats gen-patt eid-xor eiddemo.exe 
	$(RM) eid8k.exe ep-stats.exe gen-patt.exe eid-xor.exe 
	$(RM) bs-stats bs-stats.exe

# ------------------------------------------------
# Specific rules
# ------------------------------------------------
eiddemo: eiddemo.o eid.o
	$(CC) -o eiddemo eiddemo.o eid.o -lm

eid8k: eid8k.o eid.o eid_io.o
	$(CC) -o eid8k eid8k.o eid.o eid_io.o -lm

gen-patt: gen-patt.o eid.o eid_io.o softbit.o
	$(CC) -o gen-patt gen-patt.o eid.o eid_io.o softbit.o -lm

eid-xor: eid-xor.o softbit.o
	$(CC) -o eid-xor eid-xor.o softbit.o -lm

bs-stats: bs-stats.o softbit.o
	$(CC) -o bs-stats bs-stats.o softbit.o -lm

ep-stats: ep-stats.o softbit.o
	$(CC) -o ep-stats ep-stats.o softbit.o -lm

eid-int: eid-int.o softbit.o
	$(CC) -o eid-int eid-int.o softbit.o -lm

cvt-head: cvt-head.o softbit.o
	$(CC) -o cvt-head cvt-head.o softbit.o -lm

# -----------------------------------------------------------------------------
# Dependencies
# -----------------------------------------------------------------------------
eid-xor.o:  eid-xor.c
eid.o:	    eid.c eid.h
eid8k.o:    eid8k.c eid_io.c eid.h eid_io.h 
eid_io.o:   eid_io.c eid_io.h
eiddemo.o:  eiddemo.c eid.h 
bs-stats.o: bs-stats.c
ep-stats.o: ep-stats.c
	$(CC) $(CC_OPT) -DRUN -c ep-stats.c
gen-patt.o: gen-patt.c eid_io.c eid.h eid_io.h 
softbit.o:  softbit.c softbit.h


# -----------------------------------------------------------------------------
# Test the implementation: "classic" and Bellcore model EID
# Note: there are no compliance test vectors associated with the EID module
# -----------------------------------------------------------------------------
test: test-zero test-8k test-xor test-patt test-bs
proc: proc-zero proc-8k proc-xor proc-patt 
comp: measure
measure: measure-zero measure-8k measure-xor measure-patt

# -----------------------------------------------------------------------------
# Test the implementation: "classic" EID
# -----------------------------------------------------------------------------
test-zero: proc-zero measure-zero

proc-zero: zero.ser
	$(RM) ber fer
	$(EIDDEMO) zero.ser b3g0f0g0.ser ber fer 0.001 0 0 0 
	$(RM) ber fer
	$(EIDDEMO) zero.ser b3g2f0g0.ser ber fer 0.001 0.01 0 0 
	$(RM) ber fer
	$(EIDDEMO) zero.ser b0g0f2g0.ser ber fer 0 0 0.01 0 
	$(RM) ber fer
	$(EIDDEMO) zero.ser b0g0f2g5.ser ber fer 0 0 0.01 .5 
	$(RM) ber fer

measure-zero:
	measure -crc  b3g2f0g0.ser  > xxx
	measure -crc  b3g0f0g0.ser >> xxx
	measure -crc  b0g0f2g0.ser >> xxx
	measure -crc  b0g0f2g5.ser >> xxx
	$(AWK) $(AWK_CMD) < xxx
	$(RM) xxx

# -----------------------------------------------------------------------------
# Test the implementation: Bellcore model EID
# -----------------------------------------------------------------------------

test-8k: proc-8k measure-8k

proc-8k:
	$(RM) sta
	$(EID8K) patr10-2.ser r 100 1 sta .01
	$(RM) sta
	$(EID8K) patf10-2.ser f 1000 1 sta .01
	$(RM) sta
	$(EID8K) patb1pct.ser b 1000 1 sta 1
	$(RM) sta
	$(EID8K) patb3pct.ser b 1000 1 sta 3
	$(RM) sta
	$(EID8K) patb5pct.ser b 1000 1 sta 5
	$(RM) sta

measure-8k:
	measure -crc patb1pct.ser > xxx
	measure -crc patb3pct.ser >> xxx
	measure -crc patb5pct.ser >> xxx
	measure -crc patf10-2.ser >> xxx
	measure -crc patr10-2.ser >> xxx
	$(AWK) $(AWK_CMD) < xxx
	$(RM) xxx

# -----------------------------------------------------------------------------
# Get error pattern from archive
# -----------------------------------------------------------------------------
zero.ser: zero-eid.zip
	$(UNZIP) zero-eid.zip zero.ser
	sb -over zero.ser

zero.src: zero-eid.zip
	$(UNZIP) zero-eid.zip zero.src

# -----------------------------------------------------------------------------
# Test the generic error pattern generation program
# Run with:
#	make FMT=-g192 test-patt  --> for patterns in 16-bit G.192 format
#	make FMT=-byte test-patt  --> for patterns in G.192 byte format
#	make FMT=-bit  test-patt  --> for patterns in compact bit format
# -----------------------------------------------------------------------------
test-patt: proc-patt measure-patt
proc-patt:
	$(RM) sta
	$(GEN_PATT) -g192 $(FMT) patr10-2.ser r 10000 1 sta .01
	$(RM) sta
	$(GEN_PATT) -g192 $(FMT) patf10-2.ser f 10000 1 sta .01
	$(RM) sta
	$(GEN_PATT) -g192 $(FMT) patb1pct.ser b 10000 1 sta .01
	$(RM) sta
	$(GEN_PATT) -g192 $(FMT) patb3pct.ser b 10000 1 sta .03
	$(RM) sta
	$(GEN_PATT) -g192 $(FMT) patb5pct.ser b 10000 1 sta .05
	$(RM) sta

measure-patt:
	measure -crc patb1pct.ser > xxx
	measure -crc patb3pct.ser >> xxx
	measure -crc patb5pct.ser >> xxx
	measure -crc patf10-2.ser >> xxx
	measure -crc patr10-2.ser >> xxx
	$(AWK) $(AWK_CMD) < xxx
	$(RM) xxx

# -----------------------------------------------------------------------------
# Test the error insertion program
# -----------------------------------------------------------------------------
test-xor: proc-xor measure-xor

epr05g10.192:
	$(RM) -f sta
	$(GEN_PATT) -g192 -ber -rate 0.05 -gamma 0.10 epr05g10.192 r 10000 1
	$(RM) -f sta
	$(GEN_PATT) -byte -ber -rate 0.05 -gamma 0.10 epr05g10.byt r 10000 1
	$(RM) -f sta
	$(GEN_PATT) -bit  -ber -rate 0.05 -gamma 0.10 epr05g10.bit r 10000 1
	$(RM) -f sta
	$(GEN_PATT) -g192 -fer -rate 0.05 -gamma 0.10 epf05g10.192 f 10000 1
	$(RM) -f sta
	$(GEN_PATT) -byte -fer -rate 0.05 -gamma 0.10 epf05g10.byt f 10000 1
	$(RM) -f sta
	$(GEN_PATT) -bit  -fer -rate 0.05 -gamma 0.10 epf05g10.bit f 10000 1
	$(RM) -f sta

proc-xor: epr05g10.192 zero.src
	$(EID_XOR) -ber -bs bit -ep g192 zero.src epr05g10.192 z_r05g10.bg1
	$(EID_XOR) -ber -bs bit -ep byte zero.src epr05g10.byt z_r05g10.bby
	$(EID_XOR) -ber -bs bit -ep bit  zero.src epr05g10.bit z_r05g10.bbi
	$(EID_XOR) -fer -bs bit -ep g192 zero.src epf05g10.192 z_f05g10.bg1
	$(EID_XOR) -fer -bs bit -ep byte zero.src epf05g10.byt z_f05g10.bby
	$(EID_XOR) -fer -bs bit -ep bit  zero.src epf05g10.bit z_f05g10.bbi

measure-xor:
	measure -crc z_r05g10.bg1 >  xxx
	measure -crc z_r05g10.bby >> xxx
	measure -crc z_r05g10.bbi >> xxx
	measure -crc z_f05g10.bg1 >> xxx
	measure -crc z_f05g10.bby >> xxx
	measure -crc z_f05g10.bbi >> xxx
	$(AWK) $(AWK_CMD) < xxx
	$(RM) xxx

# -----------------------------------------------------------------------------
# Test the bitstream statistics program
# -----------------------------------------------------------------------------
test-bs: dummy.bs
	$(RUN) bs-stats dummy.bs -

dummy.bs: zero-eid.zip
	$(UNZIP) zero-eid.zip dummy.bs
	sb -over -if little dummy.bs

gen-dummy.bs: ascii-bs.awk ascii-fr.ref
	gawk -f ascii-bs.awk ascii-fr.ref > x.x
	asc2bin -h x.x dummy.bs
	$(RM) x.x

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -